Welche Richtlinien sollten für die Pflege von Volltextindizes beachtet werden?
Soll ich den Volltextkatalog neu erstellen oder neu organisieren (siehe BOL )? Was ist eine angemessene Wartungskadenz? Welche Heuristiken (ähnlich den Fragmentierungsschwellen von 10% und 30%) könnten verwendet werden, um zu bestimmen, wann eine Wartung erforderlich ist?
(Alles, was unten steht, ist lediglich eine zusätzliche Information, die auf die Frage eingeht und zeigt, worüber ich bisher nachgedacht habe.)
Extra Info: meine ersten Nachforschungen
Es gibt viele Ressourcen zur Pflege von B-Tree-Indizes (z. B. diese Frage , Ola Hallengrens Skripte und zahlreiche Blog-Beiträge zu diesem Thema von anderen Websites). Ich habe jedoch festgestellt, dass keine dieser Ressourcen Empfehlungen oder Skripte zur Pflege von Volltextindizes enthält.
Es gibt eine Microsoft-Dokumentation , in der erwähnt wird, dass das Defragmentieren des B-Tree-Index der Basistabelle und das anschließende Durchführen einer REORGANIZE-Operation für den Volltextkatalog die Leistung verbessern kann, spezifischere Empfehlungen jedoch nicht berührt.
Ich habe diese Frage auch gefunden , sie konzentriert sich jedoch in erster Linie auf die Änderungsnachverfolgung (wie Datenaktualisierungen der zugrunde liegenden Tabelle in den Volltextindex übertragen werden) und nicht auf die Art der regelmäßig geplanten Wartung, die die Effizienz des Index maximieren könnte.
Zusätzliche Informationen: grundlegende Leistungstests
Diese SQL-Geige enthält Code, mit dem ein Volltextindex mit AUTO
Änderungsnachverfolgung erstellt und sowohl die Größe als auch die Abfrageleistung des Index überprüft werden kann, wenn Daten in der Tabelle geändert werden. Wenn ich die Skriptlogik auf einer Kopie meiner Produktionsdaten ausführe (im Gegensatz zu den künstlich hergestellten Daten in der Geige), ist hier eine Zusammenfassung der Ergebnisse, die ich nach jedem Datenänderungsschritt sehe:
Auch wenn die Update-Anweisungen in diesem Skript ziemlich technisch sind, scheinen diese Daten zu zeigen, dass durch regelmäßige Wartung viel gewonnen werden kann.
Zusatzinfo: Erste Ideen
Ich denke darüber nach, eine nächtliche oder wöchentliche Aufgabe zu erstellen. Es scheint, dass diese Aufgabe entweder ein REBUILD oder ein REORGANIZE durchführen könnte.
Da die Volltextindizes sehr groß sein können (Dutzende oder Hunderte von Millionen Zeilen), möchte ich feststellen können, ob die Indizes innerhalb des Katalogs so fragmentiert sind, dass ein REBUILD / REORGANIZE gerechtfertigt ist. Ich bin mir ein bisschen unklar, welche Heuristiken dafür Sinn machen könnten.