特定のクエリの実際のクエリプランをキャプチャしました。
その後、いくつかの変更(統計の更新を含む)を行い、その特定のクエリを再実行しました。現在、実際のクエリプランは異なります(これは理にかなっています)。
クエリの実行速度が大幅に向上しました。他の変更(IO設定、VM設定の変更、SQLインスタンスの再起動など)もパフォーマンスの向上を引き起こしている可能性があるため、新しい実行プランがこれと関係があるかどうか知りたいです。これをテストするためにもう一度クエリを実行し、SQL Serverに古い実行プランを強制的に使用させます。
質問:ユーザー指定の実行プランでクエリを再実行する方法、またはそのようなプランから直接クエリを実行する方法はありますか?
これが私がこれを理解しようとしたものです:
- 私はオフィスで入手できる本(Professional SQL Server 2012の内部とトラブルシューティング、Microsoft SQL Server 2012のクエリ)を検索しました。
- Google検索、たとえば「特定のクエリプランに基づいてクエリを実行」
- DBA.SEは、「クエリプランの実行」や「実行プランの再実行」などの検索を行います。
- そして最後に、以前に私の質問に何度も回答した質問です。「質問を投稿する」をクリックする前に、「すでに質問の回答がある可能性がある質問」を注意深く確認してください:-)
つまり、これは可能ですか?もしそうなら:どのように?
私は以下を使用して、私の開発システムとテストシステムで長時間実行されているクエリと短時間実行されているクエリをチェックしました。その後、既存のプラン、バッファ、キャッシュをクリアし、トレースをオンにしてクエリを実行します。dbcc drop / free関数を使用して、セッション、キャッシュ、バッファなどをクリアし、トレースをオフまたはオフに設定します。無関係ですが役立つのは、テーブル内のデータの扱いを確認することです。S2K12を使用していることがわかりましたので、これらの参照は一致する必要があります。SQL Serverの以前のバージョンでは、動作が異なる場合があります。お役に立てれば。DBCC FREESYSTEMCACHE、DROPCLEANBUFFERS、Trace On、show_statisticsなど
—
Ray Porrata '26