從程式設計師角度來看資料庫優化

2021-09-01 05:00:32 字數 976 閱讀 6633

談到資料庫優化概念,總感覺很龐大,無從下手;最近,聽了一次dba的分享,感覺有些思路;整理成文字,強化記憶;僅僅是一些個人理解和資訊聚合,可能有所偏差,還望有所指正:

[b]為什麼需要資料庫優化?[/b]

資料庫效能優化主要的目的無非就是降低資料庫響應時間,提公升資料庫響應能力tps;

[b]資料庫響應時間[/b]

資料庫響應時間=連線時間+sql解析時間+sql執行時間+結果集返回時間

可以看出需要優化的方面:資料庫連線、sql解析、sql執行、結果集這個四個方面;

可以將上述四方面的優化簡單來看:

1.sql執行:硬碟資料訪問與寫入、日誌記錄、排序、表連線、sga記憶體優化、比較

2.sql解析:執行計畫快取、sql解析、執行計畫優化(cbo/rbo)、表連線策略、索引策略、排序

3.結果集: 結果集記憶體快取、網路資料傳輸

4.資料庫連線:資料庫連線池、sql請求

資料庫io效能試圖:

[img]

從io效能來看,優化的方向:

1.減少磁碟訪問:硬碟資料訪問與寫入、日誌、大資料量排序、大表表連線、

2.減少網路傳輸:結果資料請求、sql請求、資料庫連線

3.降低cpu與記憶體開銷:sga快取資料訪問、比較、排序、表連線、事務檢測、sql解析、函式與邏輯運算

從上述兩個方向來看,優化的內容相同,劃分的問題不同:

從io效能方向的優化,可以參考:

mking's blog 面向程式設計師的資料庫訪問效能優化法則:[url]

從響應時間角度來看,其中涉及到了:sql執行、結果集、資料庫連線 等方面

對於sql解析方面涉及較少,這方面的資料可以參考:

oracle 執行計畫分析:

[url]

執行計畫優化策略:

oracle rbo、cbo簡介:[url]

如果想深入理解oracle資料庫體系結果,可以參考:

oracle資料庫體系結構:[url]

從程式設計師的角度來看為什麼我們需要工作流

每乙個程式設計師,在接觸到工作流的時候,都會有這麼乙個疑問 我用一般的方法可以實現,為什麼還要用工作流?我曾經也問過這個問題,不過現在稍微有點明白了。別著急要答案,看過下面的例子,或許你也就明白一些了。這是乙個簡單的業務 訂貨流程 客戶提交採購訂單 業務員執行訂單處理 如果缺貨,轉工廠生產 倉庫出貨...

從程式設計師的角度來看為什麼我們需要工作流

每乙個程式設計師,在接觸到工作流的時候,都會有這麼乙個疑問 我用一般的方法可以實現,為什麼還要用工作流?我曾經也問過這個問題,不過現在稍微有點明白了。別著急要答案,看過下面的例子,或許你也就明白一些了。這是乙個簡單的業務 訂貨流程 客戶提交採購訂單 業務員執行訂單處理 如果缺貨,轉工廠生產 倉庫出貨...

從程式設計師的角度來看為什麼我們需要工作流

引用 每乙個程式設計師,在接觸到工作流的時候,都會有這麼乙個疑問 我用一般的方法可以實現,為什麼還要用工作流?我曾經也問過這個問題,不過現在稍微有點明白了。別著急要答案,看過下面的例子,或許你也就明白一些了。這是乙個簡單的業務 訂貨流程 客戶提交採購訂單 業務員執行訂單處理 如果缺貨,轉工廠生產 倉...