Inspiriert von diesem Beitrag: https://twitter.com/#!/SQLChicken/status/102930436795285505
Heaps: Werden sie als Indexstruktur oder als Tabellenstruktur ohne Index betrachtet?
Inspiriert von diesem Beitrag: https://twitter.com/#!/SQLChicken/status/102930436795285505
Heaps: Werden sie als Indexstruktur oder als Tabellenstruktur ohne Index betrachtet?
Antworten:
Von MSDN - Tabellen- und Indexorganisation :
"SQL Server-Tabellen verwenden eine von zwei Methoden, um ihre Datenseiten innerhalb einer Partition zu organisieren:
Die Datenzeilen werden in der Reihenfolge gespeichert, die auf dem gruppierten Indexschlüssel basiert. Der Clustered-Index ist als B-Tree-Indexstruktur implementiert, die das schnelle Abrufen der Zeilen anhand ihrer Clustered-Indexschlüsselwerte unterstützt. Die Seiten in jeder Indexebene, einschließlich der Datenseiten in der Blattebene, sind in einer doppelt verknüpften Liste verknüpft. Die Navigation von einer Ebene zur anderen erfolgt jedoch mithilfe von Schlüsselwerten.
Die Datenzeilen werden nicht in einer bestimmten Reihenfolge gespeichert, und es gibt keine bestimmte Reihenfolge für die Reihenfolge der Datenseiten. Die Datenseiten sind nicht in einer verknüpften Liste verlinkt. "
Heaps - SQL Server-Optimierung :
"Eine Heap-Tabelle ist per Definition eine Tabelle ohne Clustered-Indizes. Verschiedene Seiten der Heap-basierten Tabelle belegen verschiedene nicht zusammenhängende Bereiche auf einer Festplatte und sind in keiner Weise miteinander verknüpft."
Im Gegensatz zu - Clustered Index Structures : "In SQL Server werden Indizes als B-Bäume organisiert. Jede Seite in einem Index-B-Baum wird als Indexknoten bezeichnet. Der oberste Knoten des B-Baums wird als Stammknoten bezeichnet untere Ebene von Knoten in dem Index die Blattknoten bezeichnet wird. Jede Indexstufe zwischen der Wurzel und dem Blattknoten wird als Zwischenstufen kollektiv bekannt. in einem Cluster - Index, die Blattknoten die Datenseiten der zugrundeliegenden Tabelle enthalten . die Wurzel und Zwischenstufenknoten enthalten Indexseiten mit Indexzeilen.Jede Indexzeile enthält einen Schlüsselwert und einen Zeiger entweder auf eine Zwischenstufenseite im B-Baum oder auf eine Datenzeile in der Blattebene des Index der Index wird in einer doppelt verknüpften Liste verlinkt. "
Weitere Referenzen:
Ein Index impliziert, dass eine Datenreihenfolge für die Zeilen besteht. Da ein Heap nicht mit einer solchen Reihenfolge erstellt wird und auch keine Reihenfolge beibehält, ist dies nur eine Methode zum Speichern von Tabellendaten.
Es gibt ein paar Beispiele (z. B. dm_db_index_physical_stats ), in denen Sie zur Angabe eines Heaps eine Index-ID von 0 eingeben müssen. Dies scheint im Widerspruch zu dem zu stehen, was ich gerade gesagt habe Verwendung; nichts mehr.
Tabellenstruktur ohne Clustered-Index.