Trace-Flag und welche müssen ausgeschaltet werden und warum

8

In SQL Server gibt es so viele Trace-Flags. Warum einige von ihnen ausgeschaltet werden müssen. Einige, bei denen ich das Trace-Flag 8017 gesehen habe, müssen ausgeschaltet werden. Ich möchte also wissen, welches Trace-Flag deaktiviert werden muss und warum?

IT-Forscher
quelle

Antworten:

7

Alle sollten ausgeschaltet sein, bis Sie wissen, warum sie implementiert werden sollten. Wenn Sie nun einen Server mit einigen aktivierten Ablaufverfolgungsflags erben, schalten Sie diese nicht einfach aus, wenn Sie nicht wissen, warum sie vorhanden sind.

Auf einem neuen Server muss zuerst das Wissen und dann das Ablaufverfolgungsflag aktiviert sein. Lassen Sie auf einem alten Server das Wissen unverändert und treffen Sie eine Entscheidung.

Raadee
quelle
10

Der Database Upgrade Advisor kann melden, dass das Ablaufverfolgungsflag 8017 während des Aktualisierungsvorgangs deaktiviert und anschließend wieder aktiviert werden muss.

Das Ablaufverfolgungsflag 8017 steuert, ob SQL Server Scheduler für alle logischen Prozessoren erstellt, einschließlich derer, die für SQL Server nicht verfügbar sind (gemäß der Affinitätsmaske).

Durch Aktivieren des Flags werden diese "Offline" -Planer nicht erstellt, wodurch einige Ressourcen gespart werden. Dies bedeutet auch, dass Sie keine Prozessoren für SQL Server dynamisch hinzufügen können, indem Sie die Affinitätsmaske ändern. Sie müssten die Affinitätsmaske ändern und dann die Instanz neu starten.

Wenn Sie nicht verstehen, warum das Ablaufverfolgungsflag vorhanden ist, entfernen Sie es nicht. Irgendwo in Ihrer Organisation sollte eine Dokumentation vorhanden sein, aus der hervorgeht, wann und warum sie hinzugefügt wurde (und von wem). Wenn nicht, gibt es einen Prozess, den Sie beheben sollten :)

Paul White 9
quelle
2
In meiner 2008 Express-Testdatenbank war sie standardmäßig nach der Installation aktiviert.
eckes
Ja, meine ist standardmäßig auch da (AFAICT). Wo erklären die Dokumente, warum es möglicherweise existiert, wenn ich es nie explizit hinzugefügt habe?
Binki
2

Um mehr zu Raadee und Paul White hinzuzufügen (bestätigen Sie auch den bereits angegebenen Kommentar von eckes ), ist TF 8017 seit 2005 standardmäßig in allen SQL Server Express Edition- Versionen aktiviert. Dies ist wahrscheinlich eine Möglichkeit, die Anzahl der CPUs ( Sockets und / oder Kerne zu drosseln ) ) wird von der SQL Server Edition nicht unterstützt.

Getestet am:

  • SQL Server 2014 Express Edition mit 1 und 2 Sockets, Ablaufverfolgungsflag ist aktiviert
  • SQL Server 2016 Express Edition mit 1 Socket und Ablaufverfolgungsflag ist aktiviert
  • SQL Server 2016 Standard Edition , Ablaufverfolgungsflag ist deaktiviert

CPU-Grenzwerte werden in verschiedenen Microsoft-Dokumenten beschrieben, z. B. unter Kapazitätsbeschränkungen nach Edition von SQL Server berechnen .

In Ressourcen von Drittanbietern ist TF 8017 in der Trace Flag-Liste von Steinar Anderson dokumentiert , die übrigens auf diese Frage verweist.

Marcin S.
quelle