SQL 語句效能調優

2021-08-25 01:21:39 字數 569 閱讀 4319

經常聽到有做應用的朋友抱怨資料庫的效能問題,比如非常低的併發,令人崩潰的響應時間,長時間的鎖等待,鎖公升級 , 甚至是死鎖,等等。在解決這些問題的過程中,dba 經常發現應用開發人員對資料庫的「誤用」。包括 , 返回過多不必要的資料 , 不必要和不適當加鎖,對隔離級別的誤用和對儲存過程的誤用等等。但是,面對浩如煙海的資料庫知識 , 要求完全掌握 , 對應用開發人員來說也確實枯燥艱深 . 因此,筆者特別提煉對應用開發人員有幫助的 sql 書寫部分,以期望能對資料庫開發人員有所幫助。

「根據我們的經驗(由很多業界專家證明),在 sql server 上取得的效能提高有 80% 來自對 sql 編碼的改進,而不是來自於對於配置或系統效能的調整。」

—凱文 克萊恩等,transact-sql programming 作者

「經驗表明 80%-90% 的效能調優是在應用級做的,而不是在資料庫級」

—托馬斯 白特,expert one on one: oracle 作者

本文將主要討論基於語法的優化以及簡簡單的查詢條件。基於語法的優化指的是為不考慮任何的非語法因素(例如,索引,表大小和儲存等),僅考慮在 sql 語句中對於詞語的選擇以及書寫的順序。

SQL語句優化效能調優

在語句很規範的情況下,就是加索引。然後最大的收穫就是使用執行計畫 解釋計畫?explain plan windows 這個工具覺得很厲害。可以檢視索引是否使用如下圖 網上查到的sql語句優化大多數都是為了避免全表查詢,在語句不規範的情況下就算加了索引呢也會全表查詢,所以優化就是避免這種情況的發生 還...

sql效能調優

基本原則 1.避免全表搜尋 2.建立索引 3.盡量避免向客戶端返回大量資料,若資料量大,考慮要求是否合理 4.盡量避免大事務操作,提高系統併發能力 5.盡量避免使用游標,因為效率差 關於where條件 1.盡量避免在where條件使用!或 操作符,否則引擎將放棄使用索引而全表搜尋 2.盡量避免在wh...

mysql sql語句效能調優

在做伺服器開發時,有時候對併發量有一定的要求,有時候影響速度的是某個sql語句,比如某個儲存過程。現在假設伺服器 執行過程中,某個sql執行比較緩慢,那如何進行優化呢?假如現在伺服器 執行如下sql儲存過程特別緩慢 call sp wplogin register 1,1,1,830000 2222...