從一個簡單的SQL來看,CPU主頻對計算密集型SQL執行速度影響的差別,測試語句有三個特點:簡單SQL,計算密集型SQL,循環多次執行來放大執行時間
1,構造一個簡單的插入語句SQL
2,通過隨機排序,來模擬計算密集型操作
3,通過循環來放大執行時間
完全一樣的SQL:
10年前的4代i7,老掉牙的PC級CPU了,但是主頻高,3.6GHz主頻的CPU,2秒鐘跑完
5年前的Xeon E5620,服務器CPU,但是主頻低,2.4GHz,要6秒鐘跑完
可以發現,100000次循環的情況下,在不同主頻的CPU下,執行時間的差異還是比較大的。
declare @counter int = 0;
while @counter<100000
begin
declare @my_table table
(
c1 int,
c2 varchar(100)
);
insert into @my_table
select top 1 c1,c2 from
(
select 1 as c1,'a' as c2
union all
select 2 as c1,'b' as c2
union all
select 3 as c1,'c' as c2
union all
select 4 as c1,'d' as c2
union all
select 5 as c1,'e' as c2
union all
select 6 as c1,'f' as c2
union all
select 7 as c1,'g' as c2
union all
select 8 as c1,'g' as c2
union all
select 9 as c1,'i' as c2
union all
select 10 as c1,'j' as c2
)t
order by newid();
set @counter = @counter + 1;
end