DBA が SQL Server 2000 で実行時間の長いクエリの実行計画を覗く方法はありますか? fn_get_sql() を使用して実行中の SQL を取得する方法を知っています。はい、理論的には、新しい接続を開いて環境フラグを同じに設定すると、SQL に対して同じ計画が生成されるはずです。ただし、私はデータ ウェアハウス環境にいて、このクエリはその間にデータをロードして 12 時間実行されているため、新しい計画が古い計画と一致するという保証はありません。サーバーが何をしているかを正確に知りたいだけです。
いいえ、計画を確認して、インデックスと結合のヒントを使用してより適切に実行できることが確実にわからない限り、現在実行中のステートメントを強制終了するつもりはありません。
更新: 私はとても近いと感じていますが、それでもできると思います. 2K5以降なら確実にできます。syscacheobjects 仮想テーブルを見ると、キャッシュされたプランごとにオブジェクト ID があります。これらの ID で sp_OA* メソッドを呼び出すことはできますが、オブジェクト モデル (独自仕様) の知識がなければ、どこにもたどり着けません。