Citat:
Taranto:
Interesuje me jos jedna stvar, probao sam i shrink baze i smanjio sam je za jedno 20%, da li je to stetno po podatke??? Mislim koliko je dobro praktikovati tu opciju?
Ako ti je baza indeksirana i ako radiš defragmentaciju indeksa što je neophodno kako bi održao performanse SELECT upita onda nikako netreba shrinkovati bazu jer to ponovo stvara fragmentaciju indeksa tako da se anulira poboljašanje sa DBCC DBREINDEX ili DBCC INDEXDEFRAG.
Citat:
Taranto:
I druga stvar kad smo vec kod loga, koja je osnovna uloga loga? ako je, bar kako ja mislim, da mozes vratiti neke transakcije unazad, interesujeme kako bi to moglo da se uradi?
U logu se dešava rollback neizvršenih transakcija i rollforward izvršenih transakcija ali kada dodje do recovery baze (kada radiš RESTORE ili kada restartuješ SQL Server) ali to sve radi SQL Server ti nemaš kontrolu nad time. Postoje alati koji omogućavaju da se radi sa transakcijama u logu recimo Log Explorer od Lumigenta.
Inače što se tiče uloge loga, najkraće rečeno kada korisnik promeni podatke onda se ta transakcija najpre upisuje u log i tek kad je ona upisana u log onda se smatra da se ona desila (bilo da je commited ili rollbacked), u toku rada SQL Server "ispaljuje" dogadjaj koji se zove checkpoint (a može i user da ga izvrši komandom CHECKPOINT iz QA) i tada se izmenjene stranice-podaci (dirty pages) iz memorije upisuju u data pages same baze tj. .mdf odnosno .ndf fajl.
Na taj način se dobija na performansama i na konzistentnosti podataka u bazi.
Ima tu još mnogo što šta da se kaže ali ovo je u najkraćim crtama. Nadam se da sam bio jasan.