3

Ok、

私が気が狂っているかどうかはわかりませんが、パフォーマンスを改善するために必要なインデックスを示すために、推定実行計画を使用していませんでしたか? 以前の仕事ではこれを使用していましたが、今ではチューニング アドバイザーを使用する必要があるようです。チューニングアドバイザーは気にしませんが、以前の方法はとても簡単でした!

ありがとう

4

1 に答える 1

7

SSMS2008とSSMS2012の両方で、これが推定計画と実際の計画の両方で正常に機能していることを確認してください。

これは、推定実行プランと実際の実行プランの両方で欠落しているインデックスが表示されることを示す簡単な例です。

USE tempdb;
GO

CREATE TABLE dbo.smorg(blamp INT);
GO

INSERT dbo.smorg(blamp) SELECT n FROM
(
  SELECT ROW_NUMBER() OVER (ORDER BY c1.object_id)
  FROM sys.all_objects AS c1, sys.all_objects AS c2

) AS x(n);
GO

次に、これを強調表示して推定実行プランを選択するか、実際の実行プランをオンにして[実行]をクリックします。

SELECT blamp FROM dbo.smorg WHERE blamp BETWEEN 100 AND 105;

欠落しているインデックスの推奨事項が表示されるはずです。そして、あなたはそれがここに表されているのを見るでしょう:

SELECT * 
    FROM sys.dm_db_missing_index_details 
    WHERE [object_id] = OBJECT_ID('dbo.smorg');

DMVの詳細については、こちらをご覧ください。

http://msdn.microsoft.com/en-us/library/ms345434.aspx

また、 SQL Sentry Plan Explorerを調査する必要があります(免責事項:私はSQL Sentryで働いています)。これは、推定プランの欠落しているインデックスを表示する無料のツールであり(SQL Serverによって提供されるXMLにある場合)、SSMS(複数のバッチ間で同じ推奨を繰り返す場合でも、そうでないバッチでも同じ推奨事項を繰り返す)のようなバグはありません。同じテーブルについて言及します) 、ネットワーク全体のすべての結果をクライアントにプルすることなく実際の実行プランを生成します-それらを破棄するだけです(したがって、ネットワークとデータのオーバーヘッドはプラン分析に考慮されません)。

于 2012-05-24T18:02:34.023 に答える