在優化你的數據庫時,你可能沒有用到這些細節的優點。以下是10個關於你的數據庫性能的問題,需要你問問自己。
1. 假設你的數據庫不需要存儲特殊字符的能力,尤其是Unicode標准中規定的那些字符,你有沒有在系統中把nchar類型替換成char之類的各種適用的字段類型?
2. 你是不是在用smalldatetime類型,而不是datetime?如果你不清楚這兩種類型有什麼區別,這是一個簡單介紹:smalldatetime類型可以存儲1900年1月1日至2079年6月6日的日期,而datetime類型把這一范圍擴展到了1753年1月1日至9999年12月31日。你需要這麼大的范圍嗎?
3. 你是不是例行公事地使用bit類型來代替smallint類型?如果是這樣,你知道其中的代價嗎?這對你的程序可能並沒有影響,但smallint類型可以建立索引,bit類型不行。
4. SQL Server 2000在bit類型字段中允許空值,而且是默認的。有人希望這樣,也有人不希望這樣。
5. 你如何處理字段中的空值?默認方式是允許空值,但更好的辦法是禁止空值,允許零長度的字符串。
6. 你想過表中能容納的最多行數嗎?你比較過這個數值和數據頁的大小8060字節嗎?
7. 你有沒有好好利用標准字段?(去看看菜單裡的工具->選項->標准字段)
8. 你的表中有沒有一個時間戳字段?如果沒有的話,你知道什麼時候這種字段會有用處嗎?
9. 你的表都有區塊索引嗎?你知道一個表什麼時候應該有區塊索引,什麼時候一文不值嗎?
10. 你在命名存儲過程時有沒有用sp_前綴?你有沒有意識到這樣做給性能帶來了什麼影響?
要避免這些常見的開發問題,一個很好的辦法是使用SSW的SQL Auditor,它能審核的事情遠遠不止我所列出的10條。SQL Auditor的價格很合理,最好的一點是你可以下載測試版,試用20次之後再付費。SSW的試用策略吸引了我,可能因為我經常下載一些限制14天使用的試用軟件,之後忘記運行它,直到試用期過去。