実際、私は実行速度の遅い SQL クエリで作業しており、SSMS を介してのみ運用データベースにアクセスできます。運用サーバーまたはプロファイラーは共有サーバーであるため、直接アクセスすることはできません。本番マシンと開発マシンの実行計画は同じです。しかし、私の開発マシンによると、Statistical Logical Reads と Profiler Reads には大きな違いがあります。したがって、本番サーバーで同じ違いを確認する必要があります。
運用サーバーの SSMS を介して:
次のように記述して STATISTICS IO を表示できます。
SET Statistics IO ON
次のように記述して STATISTICS TIME を表示できます。
SET Statistics TIME ON
次を押すと、実際の実行計画を表示できます。
CTRL+M
しかし、SSMS で SQL Server プロファイラーの読み取りを表示する方法はありますか。
編集:
この記事は、私の問題を理解するのに役立つかもしれません: INF: Differences in STATISTICS IO, SQL Profiler and Sysprocesses IO Counters (SQL 7 & 2000) . 引用: 「その結果、一般に、SQL プロファイラーによって報告される論理読み取りは、STATISTICS IO によって報告される論理読み取りの合計と一致しません。ただし、SQL プロファイラーで読み取りについて報告される数は、常に、 STATISTICS IO 値。".
私の場合、私の開発マシンによると、両者には大きな違いがあります。また、パフォーマンスは本番マシンよりも影響を受けており、両方のマシンで統計の論理読み取りが非常に低いことが示されています。
2 番目の編集:
XML としての実際の実行計画は、両方のマシンで同じです。
巨大ということは、統計 IO が両方のマシンでほとんど45ではないことを意味しますが、プロファイラーの読み取りは開発マシンでは4764です。