我一整天都在努力優化具有〜900萬行的SQL Server 2000數據庫表。我唯一的數據庫經驗是用幾百行的表格,所以我從來沒有真正需要處理優化。SQL Server 2000表優化
我正在做基於21位數字的選擇和更新。
使用索引字符(21)類型,查詢需要超過2秒,SQL Server進程需要1.5g的ram和100%cpu。
使用索引bigint類型,我的查詢需要幾毫秒,過程需要大約100MB的ram。
我只是想了解這裏發生了什麼,這是正常的,還是有一種特定的方式可以索引字符類型以獲得更好的性能?
繼承人我的一些SQL語句:
CREATE TABLE data
(
tableID int NOT NULL IDENTITY PRIMARY KEY,
tag char(21) NOT NULL UNIQUE,
dataColumn1 datetime NULL,
dataColumn2 char(8) NULL,
lastModified datetime NOT NULL
)
從C#參數化查詢:
SELECT tag FROM data WHERE tag = @tag;
感謝您的幫助。
對我來說看起來沒問題,假設這是一個準確的表示方式,並且有'tag'上的索引......另外一個建議,在測試每個查詢之前嘗試'DBCC FREEPROCCACHE'和'DBCC DROPCLEANBUFFERS',確定它沒有使用緩存結果。另請參閱是否可以發佈執行計劃('SET SHOWPLAN ON')。如果您在計劃中看到聚集索引查找(或常規索引查找)並且沒有掃描,書籤查找或RID查找,那麼可能沒有多少可以提高速度。 – Aaronaught 2010-01-16 02:02:54