Σε προηγούμενο άρθρο μου στο οποίο έγραφα για το τι είναι το Log Sequence Number (LSN) αναφέρθηκα σε δύο στοιχεία του transaction log. Τα στοιχεία αυτά ήταν το Log Block και το Log Record.
Αυτά τα δύο μαζί βοηθάνε στην ανάγνωση του transaction log και οι έμπειροι με το SQL Server μπορούν γρήγορα να καταλάβουν το transaction log.
Όπως έχω γράψει και σε παλαιότερα άρθρα μου αλλά και σε sessions (SQL Nights) το transaction log αποτελείται από Virtual Log Files (VLF).
Log Block
Το κάθε VLF χωρίζεται σε Log Blocks και μπορεί περιέχει ένα ή περισσότερα Log Blocks
Το κάθε Log Block έχει μέγεθος που είναι πολλαπλάσιο των 512 bytes αλλά δεν μπορεί να ξεπεράσει τα 60ΚΒ.
To κάθε Log Block είναι μια συλλογή από log records που έχουν γραφτεί στο δίσκο μαζί δηλαδή με την ίδια ενέργεια.
Για την ευκολία στην κατανόηση του αντιστοιχίστε το με τη δομή ενός page που έχουμε στα data files το οποίο περιέχει header (metadata), body (records) και slot arrays (offsets).
Log Record
Το Log Record είναι μια μεμονωμένη εγγραφή ενέργειας που έχει γίνει στο SQL Engine.
Είναι η μικρότερη μονάδα του transaction log.
Σημείωση
Κρατήστε την πληροφορία αυτή καθώς σε επόμενα άρθρα μου θα μας χρειαστεί.
//antonch