閱讀屋>資料庫作業系統> 資料庫讀書筆記

資料庫讀書筆記

資料庫讀書筆記

  導語:讀書筆記是指讀書時為了把自己的讀書心得記錄下來或為了把文中的精彩部分整理出來而做的筆記。以下是資料庫讀書筆記的內容,希望你們喜歡!

  資料庫讀書筆記

  一.儲存最佳化

  n  物化檢視——物化檢視是包括一個查詢結果的資料庫物件(可由系統定期重新整理其中的資料),物化檢視不是在使用時才讀取,而是預先計算並儲存表連線或聚集等耗時較多的操作結果,這樣在查詢時大大提高讀取速度,特別適用於多個數據量較大的表進行連線操作及分散式資料庫中需要進行分佈在多個站點的表進行連線操作時使用。

  物化檢視可以進行遠端資料的本地複製,此時物化檢視的儲存也可以成為快照。主要用於實施資料庫間的同步。

  物化檢視對於資料庫客戶端的使用者來說如同一個實際表,具有和表相同的一般select操作,而其實際上是一個檢視,一個定期重新整理的資料檢視。物化檢視的重新整理可採用自動重新整理和人工重新整理兩種方式,具體重新整理方式和重新整理時間在定義物化檢視的時候可以定義。使用物化檢視可以實現檢視的所有功能,因物化檢視不是在使用時才讀取,而大大提高了讀取速度,特別使用抽取大量資料表中某些資訊以及分散式環境中跨節點進行多表資料連線的場合。

  n  聚集

  二、查詢最佳化

  在資料庫執行初期,資料庫對SQL語句各種寫法的效能優劣還不敏感,但是隨著資料庫正式使用,資料庫中的資料不斷增加,劣質SQL語句和好的SQL語句之間的速度差異就逐漸顯示出來。

  n  合理使用索引

  n  避免和簡化排序:通常在執行order by和group by 的SQL語句值,會涉及到排序操作,應當簡化成避免對大型表進行重複排序,因為磁碟排序的開銷是很大的。與記憶體排序相比,磁碟排序操作很慢,從而會花費很長時間,降低資料庫效能,而且磁碟排序會消耗臨時表空間中的資源。

  當能夠利用索引自動以適當的次序產生輸出時,最佳化器就可以避免不必要的排序步驟,以下是一些影響因素(1)由於現有索引的不足,導致排序時索引中不包括一個或幾個待排序的列;(2)group by或order by 子句中列的次序與索引的`次序不一樣;(3)排序的列來源於不同的表。

  為了避免不必要的排序,就要正確建立索引,合理地合併資料表(儘管有時可能影響表的規範化,但相對於效率的提高是值得的)。如果排序不可避免,那麼應當試圖簡化它,如縮小排序的範圍等。

  n  消除對大型表資料的順序存取:巢狀查詢中,對錶的順序存取對查詢效率可能產生致命的影響。避免這種情況的主要方法就是對連線的列進行索引。還可以使用並集來避免順序存取,儘管在所有的檢查列上都有索引,但某些形式的where子句強迫最佳化器使用順序存取。

  n  避免複雜的正則表示式——在使用正則表示式進行條件查詢時可能消耗較多的CPU資源進行字元匹配工作。

  n  使用臨時表加速查詢——把表的一個子集進行排序並建立臨時表,有時候能加速查詢。它有助於多重排序操作,且在其他方面還能簡化最佳化器的工作。臨時表中行比主表中的行要少,而且順序就是所要的順序,減少了磁碟的I/O操作,所以查詢工作量可以得到大幅減少。

  n  用排序來取代順序磁碟存取

  n  不充分的連線條件——左(右)連線消耗的資源非常之多,因為它們包含於null資料匹配。比內連線消耗更多的資源。

  n  儲存過程——平時每次向資料庫傳送SQL指令碼,都需要先編譯後執行。

  n  不要隨意使用遊標

  n  事務處理

  SQL server效能工具

  一、SQL SERVERprofiler——監視SQL server 事件的工具,監視結果儲存在跟蹤檔案中。

  二、資料庫引擎最佳化顧問:分析資料庫的工作負荷和物理架構。

【資料庫讀書筆記】相關文章: