Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Insert podataka bez transakciskog loga

[es] :: MS SQL :: Insert podataka bez transakciskog loga

[ Pregleda: 1896 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

adopilot
Admir Hodžić
It menager
Sarajevo BiH

Član broj: 123492
Poruke: 134
217.199.133.*

Sajt: nemam ja to


Profil

icon Insert podataka bez transakciskog loga10.03.2009. u 15:43 - pre 184 meseci
Poštovani !

Radim neke noćne servise koji trebaju da prekopaju baze od početka do kraja i da to normalizuju podatke.
Kada pustim komletnu bazu on to vrti oko sat vremena i ona mu najvjerovatnije nestane prostora za log te pukne.
Poruka izgleda ovako

Code:

The transaction log for database 'Robot_REPL' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases


Skripta za punjenje izgleda ovako

Code:

    insert into PoDanima
        SELECT
            s.art_id
            ,d.datum    
            ,d.par_id
            ,d.mot_id
            ,d.skl_id
            ,dk.Mal_Vel
            ,SUM(dk.ap_sign*s.kol) kol
            ,sum(AP_sign*s.kol*s.nc) nci
            ,sum(
                AP_sign*(((s.kol*s.vpc)-iz_rbi1-iz_rbi2-iz_rbi3)-(s.kol*s.nc))
                 ) Netto_mari
            ,sum(AP_sign*((s.kol*s.vpc)-iz_rbi1-iz_rbi2-iz_rbi3)) pr_vr
            ,d.kom_ob
        FROM
            DOC d
            inner join SDO s on (d.id = s.doc_id)
            inner join dokumenti dk on (d.tip=dk.tip)
        WHERE
            (dk.prodaja=1) 
            
        GROUP BY
            s.art_id, d.datum, d.par_id, d.mot_id, d.skl_id, dk.Mal_Vel, d.kom_ob;


Postoji li šansa da ovu transakciju izvršim bez loga kako bi prošla od jednom.

Za početak sam napravio ograničenje po mijesecima pa ću napraviti SP koji će ise izvršavati u vremenskom periodu a njega će vrtiti neki Cursor.

Da li ima neko elegantnije riješenje kada su ovakva greška javlja, ili je moj prostor za LOG mal jer kada uradim smanjenje baze na particiji za log mi ostane slobodnih 18 GB.

Unaprijed zahvalan Admir.


S poštovanjem
 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
79.101.97.*



+1 Profil

icon Re: Insert podataka bez transakciskog loga12.03.2009. u 15:06 - pre 184 meseci
Ukoliko je moguce, mozes da stavis bazu u simple recovery mod, i radis, kao sto si rekao, dio po dio, u mjesecima npr. U tom slucaju log bi se sam praznio nakon sto uradi upit po upit...
 
Odgovor na temu

adopilot
Admir Hodžić
It menager
Sarajevo BiH

Član broj: 123492
Poruke: 134
80.65.163.*

Sajt: nemam ja to


Profil

icon Re: Insert podataka bez transakciskog loga13.03.2009. u 16:07 - pre 184 meseci
Stavio sam recovery_model_desc na 'SIMPLE'
I napravio kursor koji okida mjesec po mijesec, i sada je prošlo.




Malo sam čeprkao po ovim drugim noćnim režimima i data rudarenju pa vidm da se negdije koristi bcp.exe
Konzolna aplikacija za bulk insert podataka.
Znači hodogram je slijedeći
Prvo Vrte Query koji izbaci podatke iz SQL-a u jednu txt datoteku na disk
a onda kroz command prompt zovu ovu konzolnu aplikaciju da iste podatke vrate u SQL tablicu BLUK insertom.
Eh sada mi je nekako glup hodogram
Da podtke izbacujem iz SQL-ove baze u neki CSV pa onda da te iste podatke vraćam u istu BAZU.
Šta vi mislite o tome ?

Da li se ovo može riješiti kroz Integration Services da ne maltretiram log svaku bnoć

Jer kako smo mi firma kao koja radi u PDV sistemu gdije se podatci vrte u rasponu jedne PDV-prijave (mjesec + 10 dana) onda ja svaku noć moram
da se vračam do zadnjeg datuma podnesene PDV prijave pa na novo da generišem podatke.Jer je moguće da je u tom vremenskom raspnu nešto
nakandno ispravljeno dodano ili prepravljeno. A dao Bog da prosječno u mijesecu imamo oko 1,5 milijona rekorda koji se moraju posložiti.
Sada je pitanje koliko je to zamorno za SQL i sam server da radi svaku noć.



S poštovanjem
 
Odgovor na temu

Koce
DBA
Serbia, Belgrade

Član broj: 59217
Poruke: 144
79.101.97.*



+1 Profil

icon Re: Insert podataka bez transakciskog loga16.03.2009. u 09:43 - pre 183 meseci
pa meni nije jasno zasto to uopste izbacujes u txt fajl?
ako vec ne mozes da, iz bilo kog razloga, to stavis u tu istu bazu ili #tabelu, ti kreiraj sam pomocnu bazu u koju ces smijestati te podatke. Naravno da je mnogo brze raditi u okviru sql neko txt-sql, pa makar i kao bulk copy? I uz to mozes da i indexiras tu pom tabelu, bazu i koristis brojne prednosti koje txt nema....
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Insert podataka bez transakciskog loga16.03.2009. u 10:03 - pre 183 meseci
Da, uopste nema logike u tome sto radite. Cak ti ni integration services ne treba za to jer bulk selet + bulk insert moze da se spoji u jedan SQL statement koji mozes da automatizujes. Kakvo je obrazlozenje kljucnih ljudi koji su to osmislili?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

adopilot
Admir Hodžić
It menager
Sarajevo BiH

Član broj: 123492
Poruke: 134
80.65.163.*

Sajt: nemam ja to


Profil

icon Re: Insert podataka bez transakciskog loga16.03.2009. u 12:13 - pre 183 meseci
Na početku sam spomenuo da se u tim ogromnim transakcijama Transction Log
prepuni na particiji diska i da on jednostavno neće da ide dalje.

Onda smo te tranaskcije pokušali izvesti bez transakciskog LOG-a
I tako je sva ta priča krenula.

S poštovanjem
 
Odgovor na temu

adopilot
Admir Hodžić
It menager
Sarajevo BiH

Član broj: 123492
Poruke: 134
80.65.163.*

Sajt: nemam ja to


Profil

icon Re: Insert podataka bez transakciskog loga16.03.2009. u 12:19 - pre 183 meseci
E evo sada kada sam opet pročitao kompletan post:

Moje suštinsko pitanje na postu je glasilo
Citat:

Postoji li šansa da ovu transakciju izvršim bez loga kako bi prošla od jednom.


Vi ste se dohvatili toga ali nažalost nisam dobio odgovor:
Citat:

bulk selet + bulk insert moze da se spoji u jedan SQL statement koji mozes da automatizujes


Ili možda i jesam ?

Da li treba samo dodati rezervisanu rtiječ BLUK ispred selecta i i inserta da bi zaobišli transakcije sa logom.

Ili su upiti još koplikovaniji.

Kada smo kod transakciski logaova
Postoji li šansa brisanja bez podatak bez istih
ali da ne radim truncate table jer hoću da izbrišem samo podatke tekućeg mijeseca.

U svakom slučaju najiskrenije Hvala vam
na po kozna koji put ukazanoj pomoći i strpljenu u mojim glupim problemima
Admir
S poštovanjem
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Insert podataka bez transakciskog loga16.03.2009. u 13:16 - pre 183 meseci
Ja sam vise odgovorio na tvoje pitanje dal mozes da iskoristis integration services da zaobidjes export u txt i import nazad, a odgovor je da ti ne treba ni IS ako su baze direktno vidljive i samo pretaces iz jedne u drugu, to moze i distribuirani select/insert

sto se tice samog transaction loga, njegov rast za insert/update/delete ne mozes da izbegnes u okviru implicitne ili eksplicitne transakcije (osim ako nema neki set za koji ne znam), tako da je odgovor na to pitanje NE. Ono sto simple recovery radi je da jednostavno truncuje log posle svake transakcije pa kad podelis operaciju na vise segmenata/transakcija svaki segment iskoristi isti deo log fila umesto da ga dalje naduva, na sto vise segmenata podelis za toliko ces smanjiti neophodan prostor za log file.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
91.148.81.*

ICQ: 20785904


+4 Profil

icon Re: Insert podataka bez transakciskog loga23.03.2009. u 22:10 - pre 183 meseci
a jel bi moglo hipoteticki da se umesto nekog normalnog fajla, podmetne neki device ili neki fajl koji bi prosto gutao binarne podatke. pretpostavljam da windows ima neki entitet, u koji se mogu upisivati podaci, al da taj entitet bude memorijski ogranicen ( i da prilikom overflow-a ne izbacuje exception-e)... kolko se secam, linux ima neke fore da se sa odredjenim portovima radi kao sa fajlovima...

Kako uopste sql server radi, jel mu transakcioni log sluzi i za commit, ili samo za rollback?
 
Odgovor na temu

[es] :: MS SQL :: Insert podataka bez transakciskog loga

[ Pregleda: 1896 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.