今天閒得無聊,做了一個SQL Server的各個版本的性能測試, 大家都知道SQL Server有六個版本(企業版,標准版,個人版,開發版,Desktop Engine,SQL Server CE,企業評估版) . 我經常頭暈那個適合我開發使用 ,今天終於決定好好的拷問一下微軟! 測試SQL主要考察數據庫服務器的寫操作,讀操作,索引操作,各位如果有興趣,順便在你們的機器上跑跑這個腳本,把結果貼出來?
我機器的配置(公司用機) -- 賽揚4 1.7
-- 256M內存
-- 華碩845D主板
-- NVida GeForce2 MX/MX 400 32M顯存
-- Maxtor 6E040L0 40G,7200轉
-- 英文Windows 2000 Professional with SP4
-- 測試用的SQL (注意SQL裡面的一個@iMax的變量)
-----------------------------------------------
¢f exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AreaBak]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
truncate table [dbo].[AreaBak]
go
--drop table [dbo].[AreaBak]
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AreaBak]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
begin
CREATE TABLE [dbo].[AreaBak] (
[AreaCode] bigint not null,
[AreaName] [varchar] (16) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[LocaName] [varchar] (32) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
ALTER TABLE [dbo].[AreaBak] WITH NOCHECK ADD
CONSTRAINT [PK_AreaBak] PRIMARY KEY CLUSTERED
(
[AreaCode]
) ON [PRIMARY]
end
go
declare @iMax bigint
--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
set @iMax =1000 --<< 修改這個 iMax(1000,10000,20000,100000) 來對比測試結果 <<<<
--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
declare @i bigint
declare @tbegin datetime
declare @tend datetime
declare @fcout float
set @tbegin = getdate()
-- 測試寫性能
set @i =1
WHILE @i<=@iMax
BEGIN
insert into AreaBak values(@i,
rtrim(cast(@i as char(12)))+'XX',
rtrim(cast(@i as char(12)))+'XXXX')
set @i=@i+1
END
-- 測試索引性能
set @i = @iMax
WHILE @i >= (@iMax -50)
BEGIN
select * from AreaBak where AreaCode = @i
set @i=@i-1
END
-- 測試大量數據讀取性能
select * from AreaBak
set