Freitag, 30. August 2013

Optimierung von ORDER BY durch richtige Indexierung

Mich erreichte heute die Email eines Bekannten, in der ich gebeten wurde, einen von ihm erstellten Index zu überprüfen. Die Analyse der Ausführungspläne hat gezeigt, dass SORT-Operationen bis zu 40% der Kosten des Ausführungsplans ausgemacht haben. Teure SORT-Operationen können einen eigentlich idealen Ausführungsplan schnell zunichte machen. Mit einer geeigneten Indexierung kann man solche Engpässe jedoch vermeiden. Der nachfolgende Artikel zeigt exemplarisch, wie durch geeignete Indexierung eine SORT-Operation vollständig aus dem Ausführungsplan eliminiert werden kann.

Mittwoch, 21. August 2013

Interne Verwaltung von Forwarded Records

Häufig lese ich oder höre in Gesprächen, dass FORWARDED RECORDS auf jeder Datenseite, auf der sie einmal gespeichert wurden, weitere Pointer zum neuen Speicherort hinterlassen. Diese Aussage ist nicht zutreffend. Änderungen werden nur auf der Datenseite hinterlegt, auf der ein Datensatz initial gespeichert wird. Dieser Artikel zeigt die Zusammenhänge zwischen HEAP und FORWARDED RECORDS

Dienstag, 20. August 2013

Umwandlung von Clustered Index in HEAP intern

Durch eine Frage im Microsoft Technet Forum habe ich bemerkt, dass sehr häuft die Vermutung geäußert wird, dass beim Löschen eines Clustered Index die Relation selbst vollständig neu aufgebaut wird. Diese Vermutung ist falsch und der nachfolgende Artikel zeigt, welche Operationen Microsoft SQL Server beim Löschen eines Clustered Index intern durchführt.

Freitag, 9. August 2013

fn_dblog() – DML-Geheimnisse des Transaktionsprotokolls entschlüsseln

Die – nicht dokumentierte und nicht von Microsoft unterstützte – Funktion sys.fn_dblog() zeigt Inhalte des “aktiven” Transaktionsprotokolls einer Datenbank und ist eine wahre Schatztruhe, wenn man die “Geheimnisse” dieser Funktion entschlüsselt. Dieser Artikel beschreibt detailliert die Informationen, die beim Absetzen von DML (Data Manipulation Language) im Transaktionsprotokoll gespeichert werden und wie man sie “sichtbar” machen kann. Alle Beispiele wurden mit Microsoft SQL Server 2012 durchgeführt.