SQL Server 2005 データベースを所有しています。そのコピーは開発時にフル バージョンの SQL Server で実行されています。別のコピーは Web サーバー上の SQL Server 2005 Express で実行されています。
SQL プロファイラーを使用して、データベースの SQL Express コピーのアクティビティからチューニング トレース ログを保存しました。
保存したトレース ログをデータベース エンジン チューニング アドバイザーで使用したいのですが...
Advisor を Express データベースに接続しようとすると、Express はサポートされていないというメッセージが表示されます。
アドバイザーを SQL Server データベースに接続しようとすると、空の結果が返されます。
これを実行する方法はありますか?
答え1
リモート運用サーバー (Express) から収集されたトレース データを使用して、ローカル開発サーバー上の同一のデータベースをチューニングできるはずです。
しかし、リモートサーバーに保存されているトレーステーブルを使用してこれを行うことはできません。データベース エンジン チューニング アドバイザーの使用に関する考慮事項「データベース エンジン チューニング アドバイザーは、リモート サーバーにあるトレース テーブル内のワークロードをチューニングできません」
ただし、トレース ファイルを使用していると思われるため、これは問題にならないはずです。
推奨がない場合は、まず前述のリストを確認してください。MSDNページ:
データベース エンジン チューニング アドバイザーは、次の状況では推奨を行わない可能性があります。
チューニング中のテーブルには 10 個未満のデータ ページが含まれています。
推奨されるインデックスでは、現在の物理データベース設計に比べてクエリ パフォーマンスが十分に向上しません。
データベース エンジン チューニング アドバイザーを実行するユーザーは、db_owner データベース ロールまたは sysadmin 固定サーバー ロールのメンバーではありません。ワークロード内のクエリは、データベース エンジン チューニング アドバイザーを実行するユーザーのセキュリティ コンテキストで分析されます。ユーザーは、db_owner データベース ロールのメンバーである必要があります。
答え2
Express インスタンスからフルインスタンスに復元されたデータベースのコピーが必要になると思います。アドバイザーはスキーマを調べてチューニングのアドバイスを作成します。
答え3
必要なのは、DB をテーブルまでトレースし、トレース結果を含むテーブル内のデータにチューニング アドバイザーをポイントすることだけだと思います。そうすれば、データベースを移動する必要はないと思います。
答え4
また、SQL プロファイラーでトレース ファイルを編集し、ログイン名またはデータベース名を指定する列を削除できることもわかりました。その後、チューニング アドバイザーは機能しました。