我通过执行以下语句创建了下表并插入了 20K 条记录:
create table Testing
(
col1 int,
col2 varchar(50),
col3 bit,
col4 int,
col5 varchar(50),
col6 bit);
declare
@flag bit = 1,
@count int
while @flag = 1
begin
set @count = (Select count(*) from Testing);
if (@count = 20000)
begin
set @flag = 0;
end
else
begin
insert into Testing values(100, 'Testing', 1, 100, 'Testing', 1)
end
end
然后执行以下查询 6 次:
select * from testing
where col2 = 'Testing'
分析器显示第一次执行的读取次数为 276,其余五次执行的读取次数为 135。
我不知道为什么它在第一次读取量很高以及如何减少第一次读取量。
注意:我已经执行了 DBCC DROPCLEANBUFFERS;DBCC FREEPROCCACHE;每次执行前。