如何優化資料庫?提高資料庫的效能

2021-09-01 12:47:55 字數 1495 閱讀 4000

1.對語句的優化

①用程式中,保證在實現功能的基礎上,儘量減少對資料庫的訪問次數;

通過搜尋引數,儘量減少對錶的訪問行數,最小化結果集,從而減輕網路負擔;

②能夠分開的操作盡量分開處理,提高每次的響應速度;在資料視窗使用sql時,盡量把使用

的索引放在選擇的首列;演算法的結構盡量簡單;

③在查詢時,不要過多地使用萬用字元如select * from t1語句,要用到幾列就選擇幾列如:

select col1,col2 from t1;

④在可能的情況下盡量限制盡量結果集行數如:select top 300 col1,col2,col3 from

t1,因為某些情況下使用者是不需要那麼多的資料的。

⑤不要在應用中使用資料庫游標,游標是非常有用的工具,但比使用常規的、面向集的sql語

句需要更大的開銷;按照特定順序提取資料的查詢。

2. 避免使用不相容的資料型別

例如float和int、char 和varchar、binary和varbinary 是不相容的。

資料型別的不相容可能使優化器無法執行一些本來可以進行的優化操作。

例如:select name from employee where salary > 60000

在這條語句中,如salary欄位是money型的,則優化器很難對其進行優化,因為60000 是個整型

數。我們應當在程式設計時將整型轉化成為錢幣型,而不要等到執行時轉化。

若在查詢時強制轉換,查詢速度會明顯減慢。

3.避免在where子句中對字段進行函式或表示式操作。

若進行函式或表示式操作,將導致引擎放棄使用索引而進行全表掃瞄。

4.避免使用!=或<>、is null或is not null、in ,not in等這樣的操作符

5.盡量使用數字型字段

6.合理使用exists,not exists子句。

7.盡量避免在索引過的字元資料中,使用非打頭字母搜尋。

8.分利用連線條件

9.消除對大型錶行資料的順序訪問

10. 避免困難的正規表示式

11. 使用檢視加速查詢

12. 能夠用between的就不要用in

13. distinct的就不用group by

14. 部分利用索引

15. 能用union all就不要用union

16. 不要寫一些不做任何事的查詢

17. 盡量不要用select into語句

18. 必要時強制查詢優化器使用某個索引

19.雖然update、delete 語句的寫法基本固定,但是還是對update語句給點建議:

a) 盡量不要修改主鍵字段。

b) 當修改varchar型字段時,盡量使用相同長度內容的值代替。

c) 盡量最小化對於含有update 觸發器的表的update操作。

d) 避免update將要複製到其他資料庫的列。

e) 避免update建有很多索引的列。

f) 避免update在where 子句條件中的列。

提高資料庫效能

一 問題的提出 在應用系統開發初期,由於開發資料庫資料比較少,對於查詢sql語句,複雜檢視的的編寫等體會不出sql語句各種寫法的效能優劣,但是如果將應用系統提交實際應用後,隨著資料庫中資料的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。系統優化中乙個很重要的方面就是sql語句的優化。...

資料庫效能優化

資料庫設計 實現sql server資料庫的優化,首先要有乙個好的資料庫設計方案。在實際工作中,許多sql server方案往往是由於資料庫設計得不好導致效能很差。實現良好的資料庫設計必須考慮這些問題 1.邏輯資料庫規範化問題 一般來說,邏輯資料庫設計會滿足規範化的前3級標準 第1規範 沒有重複的組...

資料庫效能優化

1 系統設計 1 縱向 橫向分割表,減少表的尺寸 縱向 欄位多。按業務主題分割。根據頁大小。橫向 資料多。按條件分割表。eg 按年儲存表,歷史資料表和當期資料更新表。2 將資料處理交給db,編寫儲存過程 1 減少網路的開銷 2 儲存過程是編譯 優化過,速度快。3 唯讀查詢操作優化方法 1 資料量小的...