Ich habe lange gesucht und immer noch keine Antwort auf mein Problem gefunden.
Unsere Dynamics AX generiert Abfragen mit dem Abfragehinweis OPTION (FAST x), wodurch manchmal die Verwendung eines fehlerhaften Ausführungsplans erzwungen wird. Die Entwickler sagen, es ist standardmäßig und schwer zu ändern (muss möglicherweise auf allen Formularen behoben werden).
Ich war also auf der Suche nach einer Möglichkeit, diese Hinweise mithilfe von Ablaufverfolgungsflags zu überschreiben. Ich habe das schöne Trace-Flag 8722 gefunden, mit dem SQL Server einige Abfragehinweise ignorieren soll, insbesondere die in der OPTION-Klausel.
Dies funktioniert jedoch in meinem Fall nicht. Ich habe versucht, auch das Ablaufverfolgungsflag 8602 zu aktivieren (Indexhinweise deaktivieren), aber meine Abfrage wird weiterhin mit dem FAST x-Hinweis ausgeführt (er ist viel langsamer als beim tatsächlichen Entfernen der OPTION-Klausel).
Ich habe auch versucht, den Plan-Cache zu leeren, ohne Erfolg.
Irgendwelche Ideen? Vermisse ich etwas
PS Ich habe die Trace-Flags global aktiviert. Dies ist die SQL Server 2012 Developer Edition
quelle
Antworten:
Soweit ich weiß, wurden die Trace-Flags 8722, 8755 und 8602 nie offiziell dokumentiert. Das letzte Mal, dass ich mich daran erinnere, dass sie wirksam waren, war in SQL Server 2000, daher ist es nicht verwunderlich, dass Sie feststellen, dass sie in SQL Server 2012 ignoriert werden.
Bei bestimmten Abfragemustern ist es häufig möglich, den
FAST n
Hinweis mithilfe von Planleitfäden zu entfernen . Trotzdem ist es am besten, die AX-Entwickler dazu zu bringen, das Problem auf der Anwendungsseite zu beheben.quelle