使用したクエリ:
(オンラインのどこかからキャッシュクリーンアップコードをコピーしていました)
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
DBCC DROPCLEANBUFFERS
GO
SET STATISTICS TIME ON;
SET STATISTICS IO ON;
select a.a,a.b from t1 a JOIN t1 b on a.i=b.i
t1のスキーマは
CREATE TABLE [dbo].[t1](
[i] [int] NULL,
[a] [varchar](1000) NULL,
[b] [varchar](1000) NULL,
[c] [varchar](1000) NULL
) ON [PRIMARY]
また、t1にはランダムデータが入力されます(I
0〜11の範囲で、a、b、cにはNEWID()
値が入力されます)
約900行(正確には934行)が含まれています
クエリを実行した結果は次のとおりです。
SQL Serverの解析およびコンパイル時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。
SQL Serverの実行時間:CPU時間= 0ミリ秒、経過時間=55ミリ秒。SQL Serverの解析およびコンパイル時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。DBCCの実行が完了しました。DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。
SQL Serverの実行時間:CPU時間= 0ミリ秒、経過時間=4ミリ秒。SQL Serverの解析およびコンパイル時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。DBCCの実行が完了しました。DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。
SQL Serverの実行時間:CPU時間= 0ミリ秒、経過時間=1ミリ秒。SQL Serverの解析およびコンパイル時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。
SQL Serverの実行時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。
SQL Serverの実行時間:CPU時間= 0ミリ秒、経過時間=0ミリ秒。
(影響を受ける115974行)テーブル'Worktable'。スキャンカウント0、論理読み取り0、物理読み取り0、先読み読み取り0、lob論理読み取り0、lob物理読み取り0、lob先読み読み取り0。表't1'。スキャンカウント2、論理読み取り32、物理読み取り0、先読み読み取り20、lob論理読み取り0、lob物理読み取り0、lob先読み読み取り0。
SQL Serverの実行時間:CPU時間= 79ミリ秒、経過時間=15858ミリ秒。
私が理解しているように、クリーンなキャッシュはかなりの数の物理的な読み取りをもたらすはずですよね?
(Win8ホスト上のHyperVで実行されているWin8ゲストVMで実行されているSQLServer 2012)