課程簡介
課程內(nèi)容:數(shù)據(jù)庫性能評價指標,數(shù)據(jù)庫性能相關的因素,數(shù)據(jù)處理原理,分析當前的數(shù)據(jù)庫,數(shù)據(jù)庫邏輯設計與性能優(yōu)化,物理設計與性能優(yōu)化,優(yōu)化數(shù)據(jù)訪問性能等內(nèi)容
本課程闡述性能調(diào)優(yōu)方法論,不僅僅結(jié)合案例講述調(diào)優(yōu)的方法,并且會將原理性內(nèi)容闡述清楚,讓您不僅僅明白How,而且明白Why。
目標收益
課程中的理論和經(jīng)驗來自于在SQLServer顧問過程中實際經(jīng)驗的總結(jié)升華,結(jié)合實際案例,不僅僅講述如何進行調(diào)優(yōu),還闡述調(diào)優(yōu)背后的原理,在課程結(jié)束后,在課程中所學到的原理、方法、工具能立刻應用于生產(chǎn)環(huán)境從而帶來價值。
培訓對象
軟件設計師、程序員、數(shù)據(jù)庫管理員。對于數(shù)據(jù)庫調(diào)優(yōu)疑問和問題,需要梳理解答的團隊和個人,效果最佳。
課程大綱
SQLServer體系結(jié)構(gòu) |
內(nèi)容一:典型數(shù)據(jù)庫的運行原理 1.數(shù)據(jù)庫思維與程序開發(fā)思維的差異 2.SQLServer整體架構(gòu) 3.內(nèi)存分配與管理 4.日志管理 5.事務管理 6.緩存與頁面切換 7.SQL查詢執(zhí)行原理 8.相關配置參數(shù) 內(nèi)容二:IO管理 1.I/O基礎 2.什么是I/O子系統(tǒng) 3.理解SQLServerI/O模式 4.存儲類型 內(nèi)容三:索引的原理與維護 1.索引的定義 2.索引的結(jié)構(gòu)、填充因子 3.聚集索引和非聚集索引 4.唯一索引和包含列索引 5.過濾索引 6.索引視圖 7.索引碎片整理以及索引重建 8.刪除從未使用過的索引 9.創(chuàng)建更合適的索引 |
數(shù)據(jù)庫設計 |
內(nèi)容四:數(shù)據(jù)庫設計方法與原則 1.需求分析 2.模塊化設計 3.什么是三范式 4.對象命名規(guī)范 5.設計出數(shù)據(jù)庫、表、視圖和其他數(shù)據(jù)庫對象 6.數(shù)據(jù)的一致性原則 7.使用數(shù)據(jù)庫設計工具 8.設計之前考慮性能問題 內(nèi)容五:如何設計優(yōu)秀的數(shù)據(jù)庫 1.數(shù)據(jù)類型的選擇 2.數(shù)據(jù)庫邏輯設計和物理設計的規(guī)范化 3.合理的冗余 4.主鍵的設計 5.外鍵的設計 6.字段的設計 7.數(shù)據(jù)庫物理存儲和環(huán)境的設計 8.系統(tǒng)設計 9.索引的設計 |
SQLServer性能調(diào)優(yōu) |
內(nèi)容六:讀懂執(zhí)行計劃 1.執(zhí)行計劃的捕捉 2.讀懂執(zhí)行計劃 3.邏輯執(zhí)行計劃與物理執(zhí)行計劃 4.執(zhí)行計劃的分類 5.掃描和查找類操作 6.連接類操作 7.Spools類操作 內(nèi)容七:SQL語句的改進 1.只返回需要的數(shù)據(jù) 2.盡量少做重復的工作 3.注意事務和鎖 4.注意臨時表和表變量的用法 5.子查詢的用法 6.慎用游標 7.盡量使用索引 8.注意連接條件的寫法 9.其他需要注意的地方 內(nèi)容八:系統(tǒng)調(diào)優(yōu) 1.TempDB的角色以及調(diào)優(yōu) 2.定期轉(zhuǎn)移不需要的歷史數(shù)據(jù) 3.解決死鎖和阻塞 4.多表JOIN考慮臨時表 內(nèi)容九:事務和鎖的基本概念 1.隔離等級的概念 2.高峰的并發(fā)訪問 3.大數(shù)據(jù)量的聯(lián)合查詢和統(tǒng)計 4.長事務處理 5.大數(shù)據(jù)容量的數(shù)據(jù)操作(查詢,更新,修改,刪除)性能 內(nèi)容十:性能調(diào)優(yōu)方法論 1.性能的關鍵概念 2.影響SQLServer性能的因素 3.是否存在資源瓶頸 4.分析數(shù)據(jù)庫正在發(fā)生的事情 5.分析數(shù)據(jù)庫已經(jīng)發(fā)生的事情 6.調(diào)優(yōu)成本高昂的查詢語句 7.SQLServer性能調(diào)優(yōu)工具與服務端跟蹤 內(nèi)容十一:常見性能模式 1.整體問題模式 2.IO問題模式 3.并發(fā)問題模式 4.內(nèi)存問題相關模式 5.TempDB問題模式 6.CPU問題模式 7.應用程序設計相關模式 8.執(zhí)行計劃質(zhì)量相關模式 |
SQLServer體系結(jié)構(gòu) 內(nèi)容一:典型數(shù)據(jù)庫的運行原理 1.數(shù)據(jù)庫思維與程序開發(fā)思維的差異 2.SQLServer整體架構(gòu) 3.內(nèi)存分配與管理 4.日志管理 5.事務管理 6.緩存與頁面切換 7.SQL查詢執(zhí)行原理 8.相關配置參數(shù) 內(nèi)容二:IO管理 1.I/O基礎 2.什么是I/O子系統(tǒng) 3.理解SQLServerI/O模式 4.存儲類型 內(nèi)容三:索引的原理與維護 1.索引的定義 2.索引的結(jié)構(gòu)、填充因子 3.聚集索引和非聚集索引 4.唯一索引和包含列索引 5.過濾索引 6.索引視圖 7.索引碎片整理以及索引重建 8.刪除從未使用過的索引 9.創(chuàng)建更合適的索引 |
數(shù)據(jù)庫設計 內(nèi)容四:數(shù)據(jù)庫設計方法與原則 1.需求分析 2.模塊化設計 3.什么是三范式 4.對象命名規(guī)范 5.設計出數(shù)據(jù)庫、表、視圖和其他數(shù)據(jù)庫對象 6.數(shù)據(jù)的一致性原則 7.使用數(shù)據(jù)庫設計工具 8.設計之前考慮性能問題 內(nèi)容五:如何設計優(yōu)秀的數(shù)據(jù)庫 1.數(shù)據(jù)類型的選擇 2.數(shù)據(jù)庫邏輯設計和物理設計的規(guī)范化 3.合理的冗余 4.主鍵的設計 5.外鍵的設計 6.字段的設計 7.數(shù)據(jù)庫物理存儲和環(huán)境的設計 8.系統(tǒng)設計 9.索引的設計 |
SQLServer性能調(diào)優(yōu) 內(nèi)容六:讀懂執(zhí)行計劃 1.執(zhí)行計劃的捕捉 2.讀懂執(zhí)行計劃 3.邏輯執(zhí)行計劃與物理執(zhí)行計劃 4.執(zhí)行計劃的分類 5.掃描和查找類操作 6.連接類操作 7.Spools類操作 內(nèi)容七:SQL語句的改進 1.只返回需要的數(shù)據(jù) 2.盡量少做重復的工作 3.注意事務和鎖 4.注意臨時表和表變量的用法 5.子查詢的用法 6.慎用游標 7.盡量使用索引 8.注意連接條件的寫法 9.其他需要注意的地方 內(nèi)容八:系統(tǒng)調(diào)優(yōu) 1.TempDB的角色以及調(diào)優(yōu) 2.定期轉(zhuǎn)移不需要的歷史數(shù)據(jù) 3.解決死鎖和阻塞 4.多表JOIN考慮臨時表 內(nèi)容九:事務和鎖的基本概念 1.隔離等級的概念 2.高峰的并發(fā)訪問 3.大數(shù)據(jù)量的聯(lián)合查詢和統(tǒng)計 4.長事務處理 5.大數(shù)據(jù)容量的數(shù)據(jù)操作(查詢,更新,修改,刪除)性能 內(nèi)容十:性能調(diào)優(yōu)方法論 1.性能的關鍵概念 2.影響SQLServer性能的因素 3.是否存在資源瓶頸 4.分析數(shù)據(jù)庫正在發(fā)生的事情 5.分析數(shù)據(jù)庫已經(jīng)發(fā)生的事情 6.調(diào)優(yōu)成本高昂的查詢語句 7.SQLServer性能調(diào)優(yōu)工具與服務端跟蹤 內(nèi)容十一:常見性能模式 1.整體問題模式 2.IO問題模式 3.并發(fā)問題模式 4.內(nèi)存問題相關模式 5.TempDB問題模式 6.CPU問題模式 7.應用程序設計相關模式 8.執(zhí)行計劃質(zhì)量相關模式 |