數據庫優化策略(三)

1、避免使用不兼容的數據類型。例如float和int、char和varchar、binary和varbinary是不兼容的。數據類型的不兼容可能使優化器無法執行一些本來可以進行的優化操作。例如:
SELECT name FROM employee WHERE salary > 60000
在這條語句中,如salary字段是money型的,則優化器很難對其進行優化,因爲60000是個整型數。我們應當在編程時將整型轉化成爲錢幣型,而不要等到運行時轉化。
2、避免對搜索參數使用其它數學操作符,如要將
SELECT name FROM employee WHERE SUBSTRING(id, 1, 1) = 'B'
SELECT name FROM emplyee WHERE salary * 12 > 30000
寫成爲:
SELECT name FROM employee WHERE id like ‘B%'
SELECT name FROM emplyee WHERE salary > 3000
3、、避免使用!=或<>等這樣的操作符,因爲這會使系統無法使用索引,而只能直接搜索表中的數據。例如:
SELECT id FROM employeeWHERE id != 'B%'
優化器將無法通過索引來確定將要命中的行數,因此需要搜索該表的所有行。
4、在應用程序中,保證在實現功能的基礎上,儘量減少對數據庫的訪問次數;通過搜索參數,儘量減少對錶的訪問行數,最小化結果集,從而減輕網絡負擔;能夠分開的操作儘量分開處理,提高每次的響應速度;在數據窗口使用SQL時,儘量把使用的索引放在選擇的首列;算法的結構儘量簡單;在查詢時,不要過多地使用通配符如select * 語句;儘量不要在應用中使用數據庫遊標,遊標是非常有用的工具,但比使用常規的、面向集的SQL語句需要更大的開銷;按照特定順序提取數據的查找。
上面我們提到的是一些基本的提高查詢速度的注意事項,但是在更多的情況下,程序員往往需要反覆試驗比較不同的語句以得到最佳方案。此外更爲重要的是需要數據庫管理員在數據庫的服務器一端調整數據庫管理系統的參數,以得到更快的響應性能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章