SQL Server常見問題介紹及快速解決建議
本文旨在幫助SQL Server數(shù)據(jù)庫的使用人員了解常見的問題,及快速解決這些問題。這些問題是數(shù)據(jù)庫的常規(guī)管理問題,對于很多對數(shù)據(jù)庫沒有深入了解的朋友提供一個(gè)大概的常見問題框架。...
前言
本文旨在幫助SQL Server數(shù)據(jù)庫的使用人員了解常見的問題,及快速解決這些問題。這些問題是數(shù)據(jù)庫的常規(guī)管理問題,對于很多對數(shù)據(jù)庫沒有深入了解的朋友提供一個(gè)大概的常見問題框架。
下面一些問題是在近千家數(shù)據(jù)庫用戶診斷時(shí)發(fā)現(xiàn)的常規(guī)問題,本文分為【常見問題診斷流程】-【常見問題】-【常見問題快速解決的建議】
常見問題診斷流程
概覽模塊—[匯總]了解系統(tǒng)
了解系統(tǒng)性能(語句執(zhí)行時(shí)間、會話等待)
語句執(zhí)行時(shí)間:橫坐標(biāo)為時(shí)間范圍,縱坐標(biāo)為在執(zhí)行時(shí)間在范圍內(nèi)分布的語句數(shù)量。
(本例:收集時(shí)間內(nèi)語句執(zhí)行時(shí)間在3-5秒的語句數(shù)量有1103條,5-10秒,10-20秒慢語句數(shù)量很多,說明系統(tǒng)語句執(zhí)行緩慢,系統(tǒng)存在性能問題)
會話-等待類型:橫坐標(biāo)為等待類型,縱坐標(biāo)為等待數(shù)量。
(本例:系統(tǒng)中發(fā)生大量的等待,說明系統(tǒng)存在性能問題)了解系統(tǒng)運(yùn)行指標(biāo)(CPU、內(nèi)存、磁盤計(jì)數(shù)器)
通過3個(gè)主要計(jì)數(shù)器診斷系統(tǒng)是否存在瓶頸和產(chǎn)生瓶頸的資源。
了解系統(tǒng)請求壓力(批處理請求/每秒、連接數(shù))
了解系統(tǒng)中每秒請求的語句數(shù)量和系統(tǒng)打開的連接數(shù)量,掌握系統(tǒng)壓力量級。
(注:可多次收集分析,掌握系統(tǒng)壓力波動(dòng)和處理能力)
了解系統(tǒng)問題嚴(yán)重度(檢查項(xiàng)、SQL錯(cuò)誤日志類型)
了解系統(tǒng)中的潛在風(fēng)險(xiǎn)與缺陷情況
(紅色:嚴(yán)重程度高,建議問題全部解決)
[檢查項(xiàng)]模塊—[全部]發(fā)現(xiàn)系統(tǒng)問題
從系統(tǒng)、參數(shù)、會話、性能計(jì)數(shù)器、查詢語句、作業(yè)、日志、執(zhí)行計(jì)劃、tempdb、業(yè)務(wù)數(shù)據(jù)庫多方面呈現(xiàn)系統(tǒng)存在的問題與隱患。
(綠色:配置標(biāo)準(zhǔn),藍(lán)色:嚴(yán)重程度低,橙色:嚴(yán)重程度中等,紅色:嚴(yán)重程度高,可能造成風(fēng)險(xiǎn))
常見問題
性能問題性能參數(shù)配置不合理:硬件不能發(fā)揮最大性能 系統(tǒng)等待嚴(yán)重:導(dǎo)致語句運(yùn)行緩慢 執(zhí)行超過3秒的語句數(shù)量多:客戶體驗(yàn)差 存在缺失索引情況:導(dǎo)致語句運(yùn)行緩慢,消耗過多系統(tǒng)資源
環(huán)境問題磁盤空間規(guī)劃問題:磁盤空間不足或不能滿足未來業(yè)務(wù) 補(bǔ)丁不是最新:由于微軟版本缺陷導(dǎo)致部分功能異常。
備份問題備份缺失:故障發(fā)生會導(dǎo)致全部數(shù)據(jù)丟失 備份計(jì)劃不合理:導(dǎo)致性能問題或長時(shí)間數(shù)據(jù)丟失風(fēng)險(xiǎn) 備份文件與數(shù)據(jù)文件同盤:磁盤發(fā)生故障,導(dǎo)致數(shù)據(jù)與備份一起丟失或損壞
可用性問題數(shù)據(jù)庫單點(diǎn)風(fēng)險(xiǎn):發(fā)生故障會導(dǎo)致業(yè)務(wù)中斷,故障導(dǎo)致數(shù)據(jù)丟失
安全問題缺少數(shù)據(jù)一致性檢查(checkdb):不能及時(shí)發(fā)現(xiàn)數(shù)據(jù)損壞而最終導(dǎo)致數(shù)據(jù)庫故障和數(shù)據(jù)丟失 大量登錄失敗:檢查系統(tǒng)是否受到攻擊或是否程序修改導(dǎo)致大量登錄失敗
結(jié)構(gòu)設(shè)計(jì)問題超過10分鐘會話并帶有事務(wù):長時(shí)間存在不提交事務(wù),會導(dǎo)致程序阻塞,檢查應(yīng)用程序是否有連接泄露 存在隱式轉(zhuǎn)換:導(dǎo)致不能使用索引(例:表字段定義varchar,程序傳參類型為nvarchar) 表缺少聚集索引:導(dǎo)致性能問題 表上外鍵缺失索引:導(dǎo)致性能問題
快速解決問題與常規(guī)建議
快速解決性能問題
配置系統(tǒng)參數(shù)
查看不合理參數(shù)—點(diǎn)擊操作按鈕
在彈出頁查看當(dāng)前運(yùn)行值,與建議值。
彈出優(yōu)化配置腳本—如需修改復(fù)制文本—在服務(wù)器運(yùn)行即可修改
添加缺失索引
在【數(shù)據(jù)庫】模塊的【缺失索引】中,創(chuàng)建數(shù)據(jù)庫的缺失索引。
注:并非所有提示的索引都需要?jiǎng)?chuàng)建,根據(jù)【平均影響百分比】【平均用戶開銷百分比】【用戶查找次數(shù)】情況綜合評價(jià),建立系統(tǒng)中缺失的重要索引。并綜合【相等列】【不等列】【包含列】創(chuàng)建包含多種情況的最優(yōu)索引。
根據(jù)執(zhí)行頻率和開銷分析重點(diǎn)語句
在【查詢語句】模塊的【查詢語句】-【匯總視圖】中,通過【執(zhí)行次數(shù)】或【cpu時(shí)間】【讀次數(shù)】【寫次數(shù)】【影響行數(shù)】等對重點(diǎn)語句,重點(diǎn)優(yōu)化。
點(diǎn)擊語句可以進(jìn)入【分類視圖】,語句的詳細(xì)執(zhí)行信息頁
在【分類視圖】頁面,可以點(diǎn)擊語句進(jìn)入【關(guān)聯(lián)項(xiàng)】查看每條語句執(zhí)行的具體信息及執(zhí)行計(jì)劃,等待等信息。
環(huán)境問題的建議
磁盤規(guī)劃按照文件類型劃分:數(shù)據(jù)文件、日志文件、tempDB文件、備份文件,分別放在一個(gè)物理磁盤(4塊物理磁盤) 按照數(shù)據(jù)庫劃分:不同的業(yè)務(wù)數(shù)據(jù)庫(壓力大的)分別放在一個(gè)物理磁盤,tempDB和備份文件各一個(gè)物理磁盤。(大型業(yè)務(wù)庫數(shù)+2)
操作系統(tǒng)與版本建議使用64位操作系統(tǒng)和SQL SERVER軟件 建議SQL SERVER補(bǔ)丁為最新補(bǔ)丁
備份問題的建議中小數(shù)據(jù)庫備份方案:每天全備份、一小時(shí)一次日志備份。 大型數(shù)據(jù)庫備份方案:每周全備份、每天差異備份、一小時(shí)一次日志備份。 備份文件與數(shù)據(jù)文件放置在不同物理磁盤 備份文件拷貝異地(容災(zāi))
可用性建議
任何數(shù)據(jù)庫為了保證業(yè)務(wù)的連續(xù)性和高可用性,以及數(shù)據(jù)的安全性,都必須采用高可用方案規(guī)避單點(diǎn)的風(fēng)險(xiǎn)。
數(shù)據(jù)庫主流的高可用技術(shù):Always On可用性組,SQL故障轉(zhuǎn)移群集,日志傳送技術(shù),鏡像技術(shù),及moebius負(fù)載均衡集群
安全問題建議
賬號安全與權(quán)限管理
通常的情況下,我們都是通過sa進(jìn)行設(shè)置密碼的,而且在config文件里面明文的寫上我們的帳號和密碼,這樣的設(shè)計(jì)存在很大的安全隱患,無論是受攻擊還是誤刪除都會給系統(tǒng)帶來嚴(yán)重的后果,建議對用戶進(jìn)行權(quán)限規(guī)劃,賬號劃分等安全措施。
維護(hù)任務(wù)CHECKDB保證數(shù)據(jù)安全
接觸過上百家客戶因?yàn)闆]有及時(shí)發(fā)現(xiàn)數(shù)據(jù)頁損壞而導(dǎo)致的數(shù)據(jù)庫不可用或數(shù)據(jù)丟失,建議每周運(yùn)行及時(shí)發(fā)現(xiàn)數(shù)據(jù)庫損壞。
結(jié)構(gòu)設(shè)計(jì)的建議
聚集索引與外鍵索引
在表結(jié)構(gòu)設(shè)計(jì)中建議表中都有聚集索引,外鍵添加索引,以提升性能。
隱式轉(zhuǎn)換
在數(shù)據(jù)庫物理設(shè)計(jì)和程序調(diào)用設(shè)計(jì)時(shí)字段類型不匹配(程序傳入的類型轉(zhuǎn)換優(yōu)先級高于數(shù)據(jù)庫中字段類型,如表中varchar 而程序傳入nvarchar)會發(fā)生隱式轉(zhuǎn)換,隱式轉(zhuǎn)換增加數(shù)據(jù)庫性能消耗,還會使索引無法使用而導(dǎo)致嚴(yán)重的性能問題。
通過工具語句的【執(zhí)行計(jì)劃】中找到對應(yīng)的隱式轉(zhuǎn)換處,分析程序傳入和數(shù)據(jù)庫表設(shè)計(jì)綜合解決。
- SQL Server中Table字典數(shù)據(jù)的查詢SQL示例代碼
- SQL SERVER 2012數(shù)據(jù)庫自動(dòng)備份的方法
- 關(guān)于SQL server2008調(diào)試存儲過程的完整步驟
- SQL Server數(shù)據(jù)庫調(diào)整表中列的順序操作方法及遇到問題
- SQL Server中的SELECT會阻塞SELECT相關(guān)資料
- 利用數(shù)據(jù)庫trigger對安全進(jìn)行監(jiān)控
- 完成Excel動(dòng)態(tài)鏈接外部數(shù)據(jù)庫
- 6.9英寸可還行 疑華為P9 Max現(xiàn)身數(shù)據(jù)庫
- 美國一數(shù)據(jù)庫泄露 近2億選民個(gè)人信息曝光
- Valve半條命3存在?Steam數(shù)據(jù)庫泄密
SQL Server中Table字典數(shù)據(jù)的查詢SQL示例代碼
文章主要給大家介紹了關(guān)于SQL Server中Table字典數(shù)據(jù)的查詢SQL的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著...
SQL SERVER 2012數(shù)據(jù)庫自動(dòng)備份的方法
文章主要為大家詳細(xì)介紹了SQL SERVER 2012數(shù)據(jù)庫自動(dòng)備份的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下為了防止數(shù)據(jù)丟失,這里給大家介紹SQL SERVER2012數(shù)據(jù)自動(dòng)備...
關(guān)于SQL server2008調(diào)試存儲過程的完整步驟
文章主要給大家分享介紹了關(guān)于sql server2008調(diào)試存儲過程的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編...
SQL Server數(shù)據(jù)庫調(diào)整表中列的順序操作方法及遇到問題
文章主要介紹了SQL Server 數(shù)據(jù)庫調(diào)整表中列的順序操作,文中給大家通過詳細(xì)步驟介紹了需求及問題描述 ,需要的朋友可以參考下SQL Server 數(shù)據(jù)庫中表一旦創(chuàng)建,我們不建議擅自調(diào)...
SQL Server中的SELECT會阻塞SELECT相關(guān)資料
文章主要給大家介紹了SQL Server中的SELECT會阻塞SELECT的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧前言在SQL Server中...
利用數(shù)據(jù)庫trigger對安全進(jìn)行監(jiān)控
最近幫一個(gè)朋友看他們的網(wǎng)站安全問題,他們非常擔(dān)心系統(tǒng)中的數(shù)據(jù)被篡改,因?yàn)橐坏┐鄹目赡芫蛣e人兌換東西或者套現(xiàn)走了就會造成損失,而最典型的修改一般都是利用事務(wù)性不一致和一些數(shù)據(jù)庫中的溢出等錯(cuò)誤和直接獲取權(quán)...
完成Excel動(dòng)態(tài)鏈接外部數(shù)據(jù)庫
我們有時(shí)需要在Excel中調(diào)取其他數(shù)據(jù)庫的數(shù)據(jù),并且希望其他數(shù)據(jù)庫數(shù)據(jù)改變時(shí),Excel中調(diào)取的數(shù)據(jù)也隨之動(dòng)態(tài)改變。下面介紹在Excel中通過“新建數(shù)據(jù)庫查詢”(MicrosoftQuery)的方法來實(shí)現(xiàn)動(dòng)態(tài)鏈接數(shù)據(jù)庫。...
6.9英寸可還行 疑華為P9 Max現(xiàn)身數(shù)據(jù)庫
中關(guān)村在線訊:眾所周知,華為P9國行版將于今日在國內(nèi)正式發(fā)布,按照華為的一貫風(fēng)格,在P9發(fā)布之后,很可能會再發(fā)布青春版以及Max版本,而后者的身影近日已經(jīng)在GFXBench跑分?jǐn)?shù)據(jù)庫中出現(xiàn)了。疑似華為P9Max現(xiàn)身數(shù)據(jù)庫。...
美國一數(shù)據(jù)庫泄露 近2億選民個(gè)人信息曝光
新華網(wǎng)北京12月29日電美國計(jì)算機(jī)安全專家29日說,存儲美國選民個(gè)人資料的一個(gè)數(shù)據(jù)庫在網(wǎng)絡(luò)上遭到公開,約1.91億選民的個(gè)人信息外泄,原因或?yàn)閿?shù)據(jù)庫設(shè)定錯(cuò)誤。【信息泄露?...
Valve半條命3存在?Steam數(shù)據(jù)庫泄密
半條命》的開發(fā)商Valve一直沒有透露游戲的續(xù)作是否還在開發(fā),但不久前,Steam數(shù)據(jù)庫泄漏卻可能讓我們對半條命3》再燃起一絲希望:Steam數(shù)據(jù)庫中赫然可見半條命3》的相關(guān)信息,而上傳時(shí)間則是一個(gè)月之前。。...