2009-08-21 4 views

Antwort

2

Es ist immer sicher, technisch zu löschen, aber ob es in einer Design/Architektur/Performance-Perspektive sinnvoll ist, können wir nicht sagen.

Die Daten werden in der Reihenfolge auf der Festplatte bleiben, bis Update/Inserts passieren, aber bitte verlassen Sie sich überhaupt nicht darauf. Die Ausgabe ist nur gewährleistet, wenn Sie eine ORDER BY im äußersten SELECT

+0

dank verwenden. Ich teste eine Kopie einer Produktionsdatenbank. Ich möchte alle Indizes in der aktuellen Datenbank löschen (eine nicht indizierte Basislinie erstellen) und mein eigenes Indexskript erneut anwenden, bis ich die leistungsstärksten Indizes gefunden habe. – djangofan

3

Wenn es sicher ist, es zu löschen (solange die Datenintegrität betroffen ist und der Index nicht UNIQUE ist).

Wenn Sie einen CLUSTERED Index löschen, wird die Tabelle Heap organisiert (i. E. Die Tabellenzeilen sind nicht Teil eines B-Tree mehr), und alle anderen Indizes werden anstelle der index value + uniquifier-RID s beziehen umgebaut.

Beachten Sie, dass die Tabelle anfänglich nicht "bestellt" wird. Wenn Sie diese Abfrage ausführen:

SELECT * 
FROM mytable 

werden die Zeilen nicht in den Index kommen, um garantiert, wenn Sie ORDER BY-Klausel verwenden.

Verwandte Themen