-- 創建表
create table Test_tbl
(
ID varchar(40) primary key nonclustered,
IntCol int,
DateCol datetime
)
--==================================================================================
-- 【100w數據測試】
--==================================================================================
-- 創建100w測試數據
declare @j int
declare @data float
declare @style bigint
set @j = 1
while @j<1000000
begin
set @style = cast(replace(replace(replace(convert(varchar(30),GETDATE(),120),'-',''),':',''), ' ', '') as bigint)
insert into Test_tbl(ID, IntCol, DateCol) values(NEWID(),@style, getdate())
set @j = @j + 1
end
declare @d datetime
set @d = getdate()
declare @i int
print '【100w數據 查詢100次測試】'
-- 測試性能1,datetime
-------------------------------------------------------------------------------------
set nocount on -- 不顯示受影響行數
set @i=0
while @i <20
begin
select top 1 * from Test_tbl where DateCol>getdate()
set @i = @i+1
end
-------------------------------------------------------------------------------------
select [語句執行時間(毫秒)]=datediff(ms, @d, getdate())
set nocount off
print '100w數據 date 語句執行時間(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
-- 測試性能2,int
-------------------------------------------------------------------------------------
set nocount on -- 不顯示受影響行數
set @i=0
while @i <20
begin
select top 1 * from Test_tbl where IntCol>20151212030303
set @i = @i+1
end
-------------------------------------------------------------------------------------
select [語句執行時間(毫秒)]=datediff(ms, @d, getdate())
set nocount off
print '100w數據 int 語句執行時間(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
--==================================================================================
-- 【1000w數據測試】
--==================================================================================
-- 創建900w測試數據,累計1000w
set @j = 1
while @j<9000000
begin
set @style = cast(replace(replace(replace(convert(varchar(30),GETDATE(),120),'-',''),':',''), ' ', '') as bigint)
insert into Test_tbl(ID, IntCol, DateCol) values(NEWID(),@style,getdate())
set @j = @j + 1
end
print '【1000w數據 查詢100次測試】'
-- 測試性能1,datetime
-------------------------------------------------------------------------------------
set nocount on -- 不顯示受影響行數
set @i=0
while @i <100
begin
select top 1 * from Test_tbl where DateCol>getdate()
set @i = @i+1
end
-------------------------------------------------------------------------------------
select [語句執行時間(毫秒)]=datediff(ms, @d, getdate())
set nocount off
print '1000w數據 date 語句執行時間(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
-- 測試性能2,int
-------------------------------------------------------------------------------------
set nocount on -- 不顯示受影響行數
set @i=0
while @i <100
begin
select top 1 * from Test_tbl where IntCol>20151212030303
set @i = @i+1
end
-------------------------------------------------------------------------------------
select [語句執行時間(毫秒)]=datediff(ms, @d, getdate())
set nocount off
print '1000w數據 int 語句執行時間(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))