Früher gab es für mich nicht schlüssige Debatten / Diskussionen darüber, ob (immer) Clustered-Indizes aktiviert / vermieden werden sollten.
Nun, ich habe verstanden, dass sie manchmal mit richtigen + spezifischen Zwecken und Kontexten verwendet werden sollen.
Clustered Index-Anforderung für SQL Azure-Datenbank :
"SQL Azure unterstützt keine Tabellen ohne Clustered-Indizes. Eine Tabelle muss einen Clustered-Index haben. Wenn eine Tabelle ohne Clustered-Einschränkung erstellt wird, muss ein Clustered-Index erstellt werden, bevor ein Einfügevorgang für die Tabelle zulässig ist."
passt nicht in die vorherigen Schlussfolgerungen, Begründungen und Erklärungen.
Was ist der Grund, den ich in früheren Erklärungen übersehen habe, um ausnahmslos die Allgegenwart von Clustered-Indizes zu erzwingen?
quelle
Antworten:
In SQL Azure lesen :
Clustered Keys sind erforderlich, damit die drei Replikate Ihrer Daten synchron gehalten werden können. Ohne Schlüssel ist es unmöglich zu wissen, welche Zeilen aktualisiert wurden. Heaps (Tabellen ohne Clustered-Index) haben nur physische 'Schlüssel' (Datei-ID: Seiten-ID: Steckplatz). Da Ihre drei Replikate der logischen Datenbank die physische Datenbank mit anderen logischen Datenbanken teilen, hat die physische Adresse auf einem Server auf dem anderen Server keine Bedeutung Replikate, daher konnten Haufen möglicherweise nicht repliziert werden.
quelle
Azure ist ein verteiltes, Cloud-basiertes System auf Remoteservern. Die Daten werden wahrscheinlich auf mehreren Laufwerken / Servern gespeichert, und es wäre äußerst ineffizient, dies auf einem Heap zu tun (da das System wissen muss, welcher Computer überprüft werden soll, und dies ohne Clustered-Index ein ressourcenintensiver Vorgang ist). .
Der Clustered-Index bietet eine Suche nach allen Zeilen und allen anderen Indizes in der Tabelle. Ohne einen Index wäre jede Operation in Azure ein Tabellenscan auf mehreren Computern.
quelle