SQL Server 2000性能測試分析

測試環境

操作系統:windows server 2003

CPU:Intel(R) Xeon(TM) CPU 3.00GHz,4核

內存:2G,主要運行MySQL服務

硬盤:cciss 37G

文件系統:NTFS,支持大文件

數據庫版本:SQL Server 2000 sp3

網卡:100M

網絡環境:100M交換局域網

測試方法

數據規模分爲1萬條、10萬條、100萬條和1000萬條記錄級別。

在每種數據規模下分別執行2000次隨機查詢,這樣可以防止數據庫直接從緩存中返回查詢結果,更加接近真實的查詢情況。以系統時間爲隨機種子,在現有的記錄範圍內隨機執行查詢操作。

查詢類型分爲:單表select、雙表select、insert、update、delete。

每個執行條目都爲單次查詢的平均執行時間,單位爲微妙。如果要看整體執行時間,則乘以2000即可。

由於腳本插入數據很慢,採用sql server客戶端工具測試效率很低且不能保證足夠的隨機性,所以插入數據和測試性能都是自己編寫相應的程序來完成。

開啓二進制更新日誌。

測試記錄

測試數據

本地查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

295

2249

16292

2552

2681

10萬條

302

134658

16406

2689

2790

100萬條

524746

691188

16832

546313

501983

1000萬條

49000000

103000000

16882

49100000

49100000

跨主機查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

986

3143

16431

3608

3497

10萬條

1076

125462

17248

4087

3825

100萬條

525524

709991

17514

552526

526370

1000萬條

49002000

103003000

18882

49102000

49104000

到了千萬條記錄的規模,sql server查詢及其緩慢,內存佔用高達1.7G。

查詢過於緩慢,導致測試效率極低,無法進行2000次隨機查詢,只能查詢3次求平均值。

性能比較

由於百萬和千萬條的查詢時間與1萬和10萬條懸殊過大,圖例很難正常顯示。

這裏就只提供表格數據,以供比較參考。

SQL Server本地查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

295

2249

16292

2552

2681

10萬條

302

134658

16406

2689

2790

100萬條

524746

691188

16832

546313

501983

1000萬條

49000000

103000000

16882

49100000

49100000

MySQL MyISAM引擎本地查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

178

247

694

141

170

10萬條

195

271

705

157

186

100萬條

3055

5164

746

4308

12373

1000萬條

8665

15259

803

11033

17224

SQL Server跨主機查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

986

3143

16431

3608

3497

10萬條

1076

125462

17248

4087

3825

100萬條

525524

709991

17514

552526

526370

1000萬條

49002000

103003000

18882

49102000

49104000

MySQL MyISAM引擎跨主機查詢操作平均執行時間(單位:微秒)

項目記錄數

單表select

雙表select

insert

update

delete

1萬條

358

484

1188

269

298

10萬條

375

505

1227

283

322

100萬條

3174

5293

1242

4142

7981

1000萬條

12302

19920

1261

12355

20449

性能分析

1、 從圖表看出,在普通PC服務器上,sql server在執行大規模100萬條記錄以上的查詢效率就很低,到了1000萬條規模業務幾乎無法開展,單條查詢都40多秒。

2、SQL Server插入數據性能受數據規模影響較小,這點與MySQL類似。

主要原因是,插入數據都是從尾部插入的,跟前面的數據規模關係更不大。

3、數據規模越大,MySQL和SQL Server性能差別就越大。

4、MySQL的性能隨着數據規模增大線性遞減,而SQL Server幾乎是指數遞減。

5、由於在MySQL 5.0以後MyISAM引擎和InnoDB引擎的性能差別不大,所以就選擇了MyISAM引擎來和SQL Server來比較。

6、在低配置服務器和PC機上運行數據庫,建議採用Linux加MySQL。

7、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章