6. Grundlagen
• Trennung von mdf/ndf‘s und ldf !
• Protokoll Dateien können endlos wachsen
und nicht von selbst schrumpfen.
• Vielen Admins sind sie ein Ärgernis.
7. Das Transaktion Protokoll
• Während die Datenbank Dateien (mdf & ndf‘s)
aus 8 KB Seiten aufgebaut sind, besteht das
Transaktion Protokoll (ldf) aus sogenannten
VLF (Virtuell Log Files). Diese haben KEINE
einheitliche Größe.
• In den VLF werden „Log Records“ gespeichert.
8. Status eines VLF
• Active (aktiver Teil…)
– Mindestens ein „aktiver“ Log Record
ist Teil des VLF
• Recoverable
– Wartet auf das nächste Backup
• Reusable
– Kann überschrieben werden
• Unused
– Wurde noch nie genutzt
9. Log Buffer
• Ein „neuer“ Buffer !
• Log Records werden erst im Log Buffer
gesammelt und dann in einem Rutsch
geschrieben (Performance, Performance…)
10. VLF
• Virtuelle Files in der ldf
• Autogrowth
• Wie viele VLFs hat mein Log File?
– DBCC loginfo;
19. Habe ich ein Problem?
• sys.dm_os_wait_stats
– WRITELOG
• Perfmon
– Average Disk sec/Read & …/Write
• Limits des Log Managers
20. Log File Latenz / In-flight
• Vor SQL 2008 : 480 KB
• Ab SQL 2008 : 3840 KB
• 32 Bit : 8 ausstehende IO‘s
• 64 Bit : 32 ausstehende IO‘s
21. Beispiel in-flight Latenz
Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
22. Beispiel in-flight Latenz
Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
23. Ein Blick ins Log
• sys.fn_dblog
• DBCC TRACEON(2537)
• DBCC TRACEOFF(2537)
24. Decode it…
2 Byte : Status Bits
2 Bytes: Offset to find number of columns
X Bytes: Fixed Length Columns
2 Bytes: Total Number of Columns in the data row
1 Bit per column, Rounded up: Nullability Bitmap
2 Bytes: Number of Variable Length Columns within
the data row
2 Bytes per variable length column :
Row Offset marking the end of each variable length
column
X Bytes: Variable Length Columns
Quelle: http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/