您好,登錄后才能下訂單哦!
本文旨在幫助SQL Server數據庫的使用人員了解常見的問題,及快速解決這些問題。這些問題是數據庫的常規管理問題,對于很多對數據庫沒有深入了解的朋友提供一個大概的常見問題框架。
下面一些問題是在近千家數據庫用戶診斷時發現的常規問題,本文分為【常見問題診斷流程】-【常見問題】-【常見問題快速解決的建議】
了解系統性能(語句執行時間、會話等待)
語句執行時間:橫坐標為時間范圍,縱坐標為在執行時間在范圍內分布的語句數量。
(本例:收集時間內語句執行時間在3-5秒的語句數量有1103條,5-10秒,10-20秒慢語句數量很多,說明系統語句執行緩慢,系統存在性能問題)
會話-等待類型:橫坐標為等待類型,縱坐標為等待數量。
(本例:系統中發生大量的等待,說明系統存在性能問題)
了解系統運行指標(CPU、內存、磁盤計數器)
通過3個主要計數器診斷系統是否存在瓶頸和產生瓶頸的資源。
了解系統請求壓力(批處理請求/每秒、連接數)
了解系統中每秒請求的語句數量和系統打開的連接數量,掌握系統壓力量級。
(注:可多次收集分析,掌握系統壓力波動和處理能力)
了解系統問題嚴重度(檢查項、SQL錯誤日志類型)
了解系統中的潛在風險與缺陷情況
(紅色:嚴重程度高,建議問題全部解決)
從系統、參數、會話、性能計數器、查詢語句、作業、日志、執行計劃、tempdb、業務數據庫多方面呈現系統存在的問題與隱患。
(綠色:配置標準,藍色:嚴重程度低,橙色:嚴重程度中等,紅色:嚴重程度高,可能造成風險)
性能參數配置不合理:硬件不能發揮最大性能
系統等待嚴重:導致語句運行緩慢
執行超過3秒的語句數量多:客戶體驗差
存在缺失索引情況:導致語句運行緩慢,消耗過多系統資源
磁盤空間規劃問題:磁盤空間不足或不能滿足未來業務
補丁不是最新:由于微軟版本缺陷導致部分功能異常。
備份缺失:故障發生會導致全部數據丟失
備份計劃不合理:導致性能問題或長時間數據丟失風險
備份文件與數據文件同盤:磁盤發生故障,導致數據與備份一起丟失或損壞
數據庫單點風險:發生故障會導致業務中斷,故障導致數據丟失
缺少數據一致性檢查(checkdb):不能及時發現數據損壞而最終導致數據庫故障和數據丟失
大量登錄失敗:檢查系統是否受到***或是否程序修改導致大量登錄失敗
超過10分鐘會話并帶有事務:長時間存在不提交事務,會導致程序阻塞,檢查應用程序是否有連接泄露
存在隱式轉換:導致不能使用索引(例:表字段定義varchar,程序傳參類型為nvarchar)
表缺少聚集索引:導致性能問題
表上外鍵缺失索引:導致性能問題
查看不合理參數—點擊操作按鈕
在彈出頁查看當前運行值,與建議值。
彈出優化配置腳本—如需修改復制文本—在服務器運行即可修改
在【數據庫】模塊的【缺失索引】中,創建數據庫的缺失索引。
注:并非所有提示的索引都需要創建,根據【平均影響百分比】【平均用戶開銷百分比】【用戶查找次數】情況綜合評價,建立系統中缺失的重要索引。并綜合【相等列】【不等列】【包含列】創建包含多種情況的最優索引。
在【查詢語句】模塊的【查詢語句】-【匯總視圖】中,通過【執行次數】或【cpu時間】【讀次數】【寫次數】【影響行數】等對重點語句,重點優化。
點擊語句可以進入【分類視圖】,語句的詳細執行信息頁
在【分類視圖】頁面,可以點擊語句進入【關聯項】查看每條語句執行的具體信息及執行計劃,等待等信息。
按照文件類型劃分:數據文件、日志文件、tempDB文件、備份文件,分別放在一個物理磁盤(4塊物理磁盤)
按照數據庫劃分:不同的業務數據庫(壓力大的)分別放在一個物理磁盤,tempDB和備份文件各一個物理磁盤。(大型業務庫數+2)
建議使用64位操作系統和SQL SERVER軟件
建議SQL SERVER補丁為最新補丁
中小數據庫備份方案:每天全備份、一小時一次日志備份。
大型數據庫備份方案:每周全備份、每天差異備份、一小時一次日志備份。
備份文件與數據文件放置在不同物理磁盤
備份文件拷貝異地(容災)
任何數據庫為了保證業務的連續性和高可用性,以及數據的安全性,都必須采用高可用方案規避單點的風險。
數據庫主流的高可用技術:Always On可用性組,SQL故障轉移群集,日志傳送技術,鏡像技術,及moebius負載均衡集群
通常的情況下,我們都是通過sa進行設置密碼的,而且在config文件里面明文的寫上我們的帳號和密碼,這樣的設計存在很大的安全隱患,無論是受***還是誤刪除都會給系統帶來嚴重的后果,建議對用戶進行權限規劃,賬號劃分等安全措施。
接觸過上百家客戶因為沒有及時發現數據頁損壞而導致的數據庫不可用或數據丟失,建議每周運行及時發現數據庫損壞。
在表結構設計中建議表中都有聚集索引,外鍵添加索引,以提升性能。
在數據庫物理設計和程序調用設計時字段類型不匹配(程序傳入的類型轉換優先級高于數據庫中字段類型,如表中varchar 而程序傳入nvarchar)會發生隱式轉換,隱式轉換增加數據庫性能消耗,還會使索引無法使用而導致嚴重的性能問題。
通過工具語句的【執行計劃】中找到對應的隱式轉換處,分析程序傳入和數據庫表設計綜合解決。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。