プロファイラーのSQLServerトレースからの出力には、CPU列とDuration列(とりわけ)が含まれます。これらの値はどの単位にありますか?
3 に答える
CPUはミリ秒単位です。SQL Server 2005以降では、期間はファイルまたはテーブルに保存された場合はマイクロ秒単位で、ユーザーインターフェイスではミリ秒単位です。sqlserver 2000では、常にミリ秒単位です。MSDNから。
ユーザーjerryhungは、コメントでより正確なバージョン固有の情報を提供します。
SQL Server 2005以降、サーバーはイベントの期間をマイクロ秒(100万分の1、つまり10 -6秒)で報告し、イベントで使用されたCPU時間の量をミリ秒(1000分の1、つまり10 -3秒)で報告します。 2番目)。SQL Server 2000では、サーバーは期間とCPU時間の両方をミリ秒単位で報告していました。SQL Server 2005以降では、SQL Server Profilerのグラフィカルユーザーインターフェイスにデフォルトで[期間]列がミリ秒単位で表示されますが、トレースがファイルまたはデータベーステーブルに保存されると、[期間]列の値がマイクロ秒単位で書き込まれます。
ドキュメント(SQL Server Profiler 2016の場合)によると、[期間]列のデフォルトの単位はミリ秒です。
[期間]列に値をマイクロ秒単位で表示トレースの[期間]データ列に値をマイクロ秒単位で表示します。デフォルトでは、[期間]列に値がミリ秒単位で表示されます。
一般オプション:[ツール]->[オプション]でマイクロ秒に変更できます。
古いバージョンのDBMSで2016プロファイラーを使用しても問題はありません。
SQL Server 2017で、その期間はプロファイラービューではミリ秒単位で表示されていましたが、テーブルにエクスポートするとマイクロ秒単位で表示されていました。最初は少し混乱します。