內容簡介
本書不適合沒有接觸過SQL Server和一定系統、網路、儲存(Storage)及開發基礎的開發人員或資料庫管理人員,本書討論的主題不是普遍的手把手安裝教學、證照考試或一般功能介紹,所以書中不會提及如何安裝SQL Server、Docker、怎麼解考題或任何工具使用..等,而是面向實戰案例和解決方法、個人思路,協助開發人員或資料庫管理人員使用SQL Server過程中遇到的效能問題,無論什麼版本的SQL Server,幾乎都會遇到本書所提到效能問題,如高CPU、查詢緩慢、封鎖(Blocking)、死結(DeadLock)…等。
每個主題我都會說明相關知識理論和背後運作行為,期望讓讀者更了解SQL Server這龐大的應用程式,同時透過實戰案例說明我的解決方法和思路,期望本書猶如一盞明燈,可指引讀者在處理棘手效能問題前往正確方向,避免被網路海量參差不齊資訊掩沒,浪費寶貴時間,也可把這本書當作工具書,遇到效能問題時參考我的解決思路。
本書將使用SQL Server docker 映像檔 mcr.microsoft.com/mssql/server:2019-CU9-ubuntu-16.04進行示範,你可以透過Docker Hub取得,範例資料庫可從SQL Server Github-repo取得。
作者介紹
連續8年當選微軟最有價值專家,業界實務經歷超過10年,撰寫技術部落格超過14年,至今依然協助企業帶領技術研發團隊並將商業價值完美落地。
擅長使用.NET/NetCore 技術開發 Web/OLTP 系統,並熟悉分散式架構設計實作、程式碼重構和效能調校,也熟悉SQL Server應用開發、架構設計、效能調校和管理,幫助許多企業從無到有規劃設計並開發核心系統、核心系統架構改造升級、核心系統效能調校,並針對企業開發人員或DBA進行教育訓練,也擁有多年大型資料庫效能調校教學經驗。
曾任企業資深架構師、RD經理、技術經理、資深研發工程師、專案經理、資深技術顧問、資深DBA,微軟 SQL Server 研討會講師、Udemy線上講師、SQL Pass社群講師、RunPC(CIO前身)技術專欄作家。
可以透過下列管道得知作者最新動態
個人部落格 :
目錄
關於作者
書寫慣例
序1
序2
內容簡介
本書適用版本
前言
第一章 需要效能調校嗎
1.1 效能調校理由
1.2 常見效能殺手
1.3 效能排查步驟
1.4 效能調校目標
第二章 高CPU使用率
2.1 17883錯誤
2.2 CPU伺服器組態選項
2.3 常見高密集CPU操作
2.4 調查CPU壓力
2.5 常見問題
2.6 實戰案例分析
2.7 總結
第三章 記憶體壓力
3.1 SQL Server動態記憶體管理
3.2 記憶體選項
3.3 調查記憶體壓力
3.4 常見問題
3.5 實戰案例分析
3.6 總結
第四章 I/O診斷分析
4.1 基本設定
4.2 Windows OS I/O瓶頸判斷
4.3 SQL Server 內部I/O壓力調查
4.4 常見問題
4.5 實戰案例分析
4.6 總結
第五章 不良查詢陳述式
5.1 查詢生命週期
5.2 單一查詢架構
5.3 計畫快取和重用
5.4 了解執行計畫
5.5 善用提示
5.6 常見問題
5.7 實戰案例分享
5.8 總結
第六章 缺陷索引設計
6.1 索引概述
6.2 B-tree叢集和非叢集索引
6.3 統計資料
6.4 實用索引類型
6.5 常見問題
6.6 實戰案例分享
6.7 總結
第七章 封鎖和死結定位
7.1 交易ACID概念
7.2 鎖定基本概念
7.3 死結基本概念
7.4 In-Memory OLTP交易
7.5 常見問題
7.6 實戰案例分享
7.7 總結
第八章 SQL Server在等什麼
8.1等待簡介
8.2 Latch概念
8.3 I/O類型等待
8.4 LCK_M_xx類型等待
8.5 其他等待問題
8.6 實戰案例分享
8.7 總結
第九章 EF Core搭配SQL Server高效開發技巧
9.1 DbContext設計建議
9.2 善待SQL Server
9.3 查詢效能建議
9.4 交易效能建議
9.5 實戰案例分享
9.6 總結
附錄:雲端(SaaS)資料庫之我見