2

SQL Server 2000データベースでいくつかのストアドプロシージャを最適化しようとしていますが、SQL Profilerを使用しようとすると、「SQL Serverに対してトレースを実行するには、sysadmin固定サーバーロールのメンバーである必要があります」というエラーメッセージが表示されます。 。sysadminロールのメンバーのみがサーバー(SQL Server 2005で修正されたもの)でトレースを実行できるようであり、そのサーバーロール(会社のポリシー)が付与される方法はありません。

私が今していることは、現在の時刻からコードのさまざまな段階でプロシージャが開始された時刻を差し引いたものを挿入することですが、これは非常に面倒です。

データベースをSQLServerのローカルインストールに複製することも考えていましたが、ストアドプロシージャはさまざまなデータベースのデータを使用しているため、ローカルでデータをコピーするのに多くの時間を費やします。

それで、SQLコードをプロファイリングする他の方法があるかどうか疑問に思いましたか?(サードパーティツール、さまざまなプラクティス、その他)

4

3 に答える 3

1

クエリアナライザーの場合:

SET STATISTICS TIME ON

SET STATISTICS IO ON

クエリを実行し、メッセージタブを確認します。

これには同じ特権が必要かもしれませんが、試してみる価値があります。

于 2008-09-23T10:35:24.340 に答える
1

あなたの手はプロファイラーなしで結ばれています。

ただし、Query Analyzerまたは任意のクエリツールを使用して既存のクエリを調整し、実行プランを調べることから始めることができます。QAでは、[実行プランの表示]オプションを使用できます。他のツールから使用できます

SET STATISTICS PROFILE ON / OFF
于 2008-09-23T10:36:22.827 に答える
1

SQL 2000 には、Profiler 接続ダイアログ ボックスを難読化して、sysadmin 接続を実行中のトレースのみに制限する回避策があります。

SQLチーム

ブログ

于 2008-10-14T18:11:35.673 に答える