私は長い間検索してきましたが、それでも私の問題に対する答えが見つかりません。
私たちのDynamics AXは、クエリヒントOPTION(FAST x)でクエリを生成しています。これにより、不適切な実行プランが使用される場合があります。開発者は、それはデフォルトであり、変更するのが難しいと言います(潜在的にすべてのフォームで修正する必要があります)。
したがって、トレースフラグを使用してこれらのヒントを上書きする方法を探していました。SQL Serverに一部のクエリヒント、特にOPTION句のヒントを無視させると主張されている素敵なトレースフラグ8722を見つけました。
ただし、これは私の場合は機能しません。トレースフラグ8602(インデックスヒントを無効にする)も有効にしようとしましたが、クエリはまだFAST xヒントを使用して実行されています(実際にOPTION句を削除する場合よりもはるかに遅くなります)。
プランキャッシュもクリアしようとしましたが、役に立ちませんでした。
何か案は?何か不足していますか?
PS私はトレースフラグをグローバルに有効にしました。これはSQL Server 2012 Developerエディションです
1
どのようにしてトレースフラグをオンにしましたか?サーバーの起動またはdbcc traceonを使用してオンにしましたか?dbcc traceonは接続ごとのトレースフラグであるため、1つのクライアント接続でこのフラグをオンにしても、他のサーバー接続には影響しません。サーバー全体で有効にするには、起動コマンドラインに-T <traceflagnumber>を追加する必要があります。dbcc traceon(flag1、flag2、...、-1)を使用してサーバー全体に適用できると思いますが、私は試したことはありません。
—
Mike