Volltext: Viele FT_MASTER_MERGE warten im Status SUSPENDED, nachdem mehrere Volltextindizes erstellt wurden (Server hängt).

9

Wir haben einen Test unter SQL Server 2014 durchgeführt, bei dem 10 Datenbanken, 100 verschiedene Schemas in jeder Datenbank, 10 kleine Tabellen (~ 50 Zeilen) in jedem Schema (also insgesamt 10 KB Tabellen) vorhanden waren, und wir haben Volltextindizes für alle diese erstellt Tabellen in all diesen Datenbanken gleichzeitig.

In einigen Minuten stellten wir fest, dass SQL Server angehalten wurde, um alle Verbindungen (außer ADMIN:.Verbindungen) zu akzeptieren . Wenn wir den Server neu starten, können wir eine Verbindung herstellen, aber in einiger Zeit hängt er wieder. Nach einigen Nachforschungen stellten wir fest, dass dies durch den Verbrauch aller funktionierenden Threads verursacht wird, dm_os_tasksund dm_os_waiting_taskszeigten uns, dass FT_MASTER_MERGEim SUSPENDEDZustand viele Wartezeiten bestehen . Wir haben gegoogelt, dass "Volltext auf Master-Merge-Vorgang wartet", aber keine aktuellen Informationen mehr gefunden.

Wir haben verschiedene Volltextkatalogkonfigurationen ausprobiert: einen Katalog pro Datenbank, einen Katalog pro Schema, einen Katalog pro Index. Auf jeden Fall hängt der Server mit all diesen angehaltenen Aufgaben.

Was ist die Hauptursache für die Wartezeiten, wie kann dies behoben / gemildert werden?

Und wie wird Volltext für eine so große Anzahl von Tabellen empfohlen?

Alexey F.
quelle

Antworten:

3

Sie müssen die Operationen verschieben, anstatt alles auf einmal zu tun. Das Verbindungselement spricht nicht über das Akzeptieren neuer Verbindungen. Aufgrund dieser Wartezeit werden jedoch (in Ihrem Fall) keine Threads freigegeben und neue Verbindungen sind nicht möglich.

Ref:

Dies ist ein bekanntes Problem mit SQL Server. Vom Verbindungselement:

Dies wird durch die Art und Weise verursacht, wie unser aktueller Job Scheduler eingerichtet ist, was dazu führt, dass mehrere Master-Merge-Vorgänge in die Warteschlange gestellt, aber nie signalisiert werden. Dies ist nur dann der Fall, wenn mehrere Indizierungs- / Reorganisationsvorgänge gleichzeitig aufgerufen werden. Der Indizierungsvorgang wird einwandfrei abgeschlossen und die Ergebnisse können abgefragt werden. Es ist nur die Master-Zusammenführung, die eine Zeitüberschreitung aufweist und für einen späteren Zeitraum neu geplant wird.

Aufgrund der Komplexität des Fixes haben wir uns entschlossen, bis zur nächsten Hauptversion zu warten, bevor wir es testen. Im Moment wird empfohlen, die Indexpopulationen zu verschieben, um solche Timeout-Probleme nicht zu verursachen . Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben.

SqlWorldWide
quelle