影響資料庫查詢效率的因素蒐集

2021-09-02 20:46:55 字數 1378 閱讀 7207

1. watermark 效應。 當乙個資料庫執行很長時間(幾個月,幾年)表中的記錄被反覆的修改和刪除後,大量的磁碟空間沒有被**, 外在的表現就是表占用的空間越來越大, 當需要執行全表掃瞄的查詢時,出現查詢緩慢的症狀。

2. blob, clob欄位的濫用。 兩個表,乙個有lob型別的列,乙個沒有, 其中記錄的條數都一樣, 索引也一樣, 那麼查詢資料一樣嘛? 答案時否定的, 即使你沒有查詢lob欄位裡面的內容, 有lob型別的表也會比較慢。 這個在**團隊裡面時做過驗證的, 他們曾經使用的解決辦法是把lob欄位單獨提出來放在另外一張表裡面。

3. 調整作業系統引數,例如:執行在unix作業系統上的oracle資料庫,可以調整unix資料緩衝池的大小,每個程序所能使用的記憶體大小等引數。

其他常見的原因

1. 沒有索引或者沒有用到索引 資料庫索引就像書籍中目錄一樣,使使用者在訪問資料庫資料時,不必遍歷所有資料就可以找到需要的資料。建立索引後,可以保證每行資料的唯一性,極大地提高資料檢索效率,這是一中犧牲空間換取效能的方法。沒有索引或者沒有用到索引是資料訪問速度慢最常見的因素,也是程式設計的乙個缺陷所在。

2. i/o吞吐量小,形成了瓶頸效應 i/o吞吐量是影響資料訪問速度的客觀因素(硬體因素)。在一定的硬體環境下,利用優化的部署方案可適當提高i/o吞吐量。

3. 沒有建立計算列導致查詢不優化 計算列是乙個比較特殊的列,不填寫任何設計型別,使用者不可以改變該列的值。計算列的值是通過一定的函式公式等以另乙個或多個列的值為輸入值計算出的結果。如果沒相應的計算列,在一些資料查詢的時候需要對已有資料進行計算,從而浪費一部分效能。

4. 記憶體不足 對資料庫資料的查詢訪問毫無疑問會占用大量的記憶體空間,當記憶體不足的情況下,資料的訪問速度會受到明顯的影響甚至訪問出現超時情況,是影響資料訪問速度的客觀因素。

5. 網路速度慢 網路速度慢是影響資料訪問速度的客觀因素。可通過提高網路訪問的位寬來解決。

6. 查詢出的資料量過大 當查詢出的資料量過大時,記憶體的占用、系統時間的占用等都影響資料訪問的速度。可以採用多次查詢、定位查詢、和查詢資料量控制來解決。

7. 鎖或者死鎖 鎖或者死鎖在資料庫資料訪問時會造成訪問者等待時間過程或者永久無法獲取到資源。這是查詢慢最常見的因素之一,是程式設計的缺陷,要盡量避免。

8. 返回不必要的行和列 在一般的資料查詢中,都盡可能多的獲取資料資訊,這樣造成了不必要的資料遍歷,大大的增加了資料訪問的響應的時間。所以在一般的查詢中,盡量查詢少的行和列,將資料遍歷時間降到最低以滿足資料輸出需求。

9. 查詢語句不夠優化 在資料查詢訪問過程中,使用最頻繁的是使用自定義的查詢語句進行資料輸出的。所以編寫優化的查詢語句能夠很大程度上提高資料查詢訪問的速度。

效能優化 資料庫效能優化主要是提高資料訪問的速度,即提高資料庫響應速度的效能指標。效能優化主要分為主觀因素和客觀因素兩部分的優化。這裡主要針對影響效能的客觀因素進行優化。

影響資料庫的因素

1.sql查詢速度 2.伺服器硬體 3.網絡卡流量 4.磁碟io 超高的qps和tps的風險 效率低下的sql 大量的併發風險 資料庫連線數被沾滿 max connections預設100,引數改的大一些 超高的cpu使用率 cpu資源耗盡而宕機 磁碟io 磁碟io效能突然下降 通過使用更快磁碟裝置...

影響資料庫效能的因素

論壇上的資料庫愛好者們,對於資料庫底層的各種細節,內幕,等待事件,隱藏引數等津津樂道,對於調整好一條sql語句使之在查詢優化器 查詢引擎下能高效能運轉具有巨大的滿足感成功感,彷彿自己掌握了天下最有價值的真理,駕馭了天下最有難度的技術。但對於設計和開發出這個資料庫系統的人來說,他們看到此情此景,只好躲...

影響資料庫的效能的因素

1 sql 查詢的速度 2 伺服器硬體 3 網絡卡流量 4 磁碟io 系統吞度量要素 乙個系統的吞度量 承壓能力 與request對cpu的消耗 外部介面 io等等緊密關聯。單個reqeust 對cpu消耗越高,外部系統介面 io影響速度越慢,系統吞吐能力越低,反之越高。系統吞吐量幾個重要引數 qp...