10

SQL Serverとの通信にLinq2SQLを使用するC#で記述されたアプリケーションがあります。実行速度が少し(非常に)遅いクエリがいくつかありますが、速度を上げるにはおそらくいくつかのインデックスが必要だと思います。

しかし、私はそれをどのように行うのか、何を、どこで、何をすべきか、すべきでないのかを本当に知りません。そこで、ここで聞いてみようと思っていたのですが、データベースエンジンチューニングアドバイザというプログラムを見つけて、最初に試してみようと思いました。問題は、それを機能させることができないことです。どうすればいいのかわからないのはたぶん私ですが、これがよくわかりません。私が見る限り、私はヘルプファイルに従って私がすることになっていることをしました。

  1. SQLServerプロファイラーを開きます。
  2. チューニングテンプレートを使用して新しいトレースを開始します。
  3. アプリケーションを起動し、SQLクエリを生成するいくつかのことを実行します。
  4. アプリケーションを閉じます。
  5. トレースを停止します。
  6. トレースをトレースファイルとして保存します。
  7. データベースエンジンチューニングアドバイザーを開く
  8. [ワークロードとしてファイル]を選択し、前に保存したトレースファイルを選択します。
  9. 調整するデータベースとテーブルの選択で、アプリケーションが使用するデータベースを選択します。
  10. [分析の開始]をクリックします。

これまでのところ、問題はないと思っていました。しかし、しばらくして終了すると、次のようになります。

進捗

そして、完全に空の推奨ページ。イベントはテーブルを参照していませんか?それはどういう意味ですか(もちろん:p以外)?ここでのプロセスについて何か誤解したことがありますか?何が起こっている?

4

3 に答える 3

6

推奨事項が表示されない理由は、データベースに「SHOWPLAN」権限がないためだと思います。アナライザーを実行しているユーザーに、アクセスして再試行することを許可します。

また、「無効なオブジェクト名」エラーもいくつか表示されます。アナライザーを実行しているユーザーが、関連するすべてのテーブルに対する適切な権限を持っていることを確認してください。

于 2009-05-14T12:17:37.020 に答える
6

このエラーが発生した場合に確認できる別のことがあります。私のように多くの人がいる場合は、[全般]タブの[ワークロード分析用データベース]ドロップダウンから適切なデータベースを選択するのを忘れている可能性があります。

于 2010-11-15T16:56:51.347 に答える
3

アナライザーを自分自身(dbo)として実行していましたが、トレース自体に、SHOWPATHアクセス権を持たないIISアプリプールユーザーからのクエリが含まれていました。

そこで、そのIISアプリプールユーザーにSHOWPATHアクセスを許可すると、正常に機能しました。

GRANT SHOWPLAN TO [COMPANYDOMIAN\IIS_APPUSER]
于 2011-02-03T17:34:03.410 に答える