テーブル/インデックススキャンをキャプチャするためにSQL Server Profiler(2008)でトレースを実行しています。大きなテーブルでスキャンしているかどうかを知る必要がある追加された列をEventClass(scan:started/stopped)、dbname、objectid、starttime、spid、indexidに最小化しました。スキャン:SQL Serverプロファイラトレースで開始され、不正なインデックスIDが生成される
捕捉された結果には、いくつかのオブジェクトIDがヌルである(すなわち、問題のデータベース/私がフィルタリングしたデータベースに存在しない)という問題があり、第2の問題は、 、例えば一部の表にはクラスター化された索引が1つしかなく、トレースによって提供される索引IDは8に指定され、もう1つは122ですが、表には20未満の索引があります。
nullオブジェクトIDが内部仮想テーブルである可能性があると私は思っていましたが、そのままでもかまいませんが、標準のユーザーテーブルの間違ったインデックスIDによってパフォーマンスのトラブルシューティングが崩れてしまいます。任意のヒントを事前に
おかげで、
ナマン
おかげで
user_scans
を参照してください、我々はそれをキャプチャする前に、メタデータ・キャッシュをフラッシュされるため、エントリに一部のデータが欠落する危険がありませんか?これは非常に利用頻度の高い環境で、アクティブなユーザーは約500人です – Naman@Naman - 正直言ってわかりません。これは集計されたデータなので、自動的にフラッシュされる可能性は低いと思っていました。私が知っている限り、サーバーの再起動または手動フラッシュはこれらの数字をクリアします。これが本物の問題だと感じる場合は、定期的にデータのスナップショットを取る予定のタスクを設定することができます。 –