Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

December 4, 2007 / by Zsolt Soczó

SQL Server mítoszok

Eszembe jutott három mítosz, amely gyakran rosszul van implantálva az emberek agyába (sokáig belém is).

1. A tábla típusú változók memóriában laknak. NEM, NEM, NEM. Sajnos sokáig én is terjesztettem ezt, annak ellenére, hogy állandóan ott volt a fejemben, hogy ha nagy a tábla, akkor page-elni fog a szerver, amit utál? Nem, a tábla típusú változó nem más, mint speciális temp tábla.
Bővebben itt. Érdemes figyelni (és kihasználni) a tranzakcionális különbségeket és a recompiling viselkedés különbözőségét (2005-től mondjuk már nem akkora gáz az újrafordítás az utasítás-szintű újrafordítás miatt).

2. A BACKUP DATABASE (full backup) truncate-olja a logot. NEM, NEM, NEM. Ez még valahol logikus is lenne amúgy, hisz minek a log, ha úgyis van full backup, csak az utána következő log lehet érdekes. Nos, itt paranoiás módon álltak a kérdéshez. Ha esetleg elveszne az utolsó full backup, de még megvan az utolsó előtti, és a tranzakciót se csonkolták, akkor a kettőből összerakható a teljes kép.

3. A TRUNCATE TABLE gyors, de nem visszagörgethető, mert nem logolt művelet. CSUDÁKAT, NEM! Nem nem logolt, minimálisan logolt. Csak azt rakják be a logba, hogy mely lapokat érintett a művelet, és nem soronként logolnak, így sokkal gyorsabb, mint a delete. De logol, és visszagörgethető. Tessék kipróbálni.

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.