數(shù)據(jù)庫(kù)優(yōu)化培訓(xùn)教程_第1頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化培訓(xùn)教程_第2頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化培訓(xùn)教程_第3頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化培訓(xùn)教程_第4頁(yè)
數(shù)據(jù)庫(kù)優(yōu)化培訓(xùn)教程_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)性能優(yōu)化詳解當(dāng)前百勝軟件遇到的普遍問(wèn)題是什么?慢數(shù)據(jù)統(tǒng)計(jì)緩慢,軟件長(zhǎng)時(shí)間未響應(yīng),統(tǒng)計(jì)數(shù)據(jù)半天都不顯示結(jié)果,嚴(yán)重影響工作效率。瓶頸在哪?我們?cè)撛趺崔k?緩慢產(chǎn)生的原因分析1.網(wǎng)絡(luò)傳輸環(huán)境2.硬件資源3.軟件實(shí)際操作方面4.占用數(shù)據(jù)庫(kù)的并發(fā)數(shù)目5.數(shù)據(jù)庫(kù)SQL方面原因(例如SQL事務(wù)死鎖,索引問(wèn)題)常見(jiàn)可改善的方法有以下幾點(diǎn)1.調(diào)整網(wǎng)絡(luò)資源,排查是否存在網(wǎng)絡(luò)數(shù)據(jù)阻塞問(wèn)題。2.配備多臺(tái)應(yīng)用服務(wù)器分擔(dān)負(fù)荷,提高服務(wù)器及客戶端的硬件資源(CPU和內(nèi)存)。誤區(qū):數(shù)據(jù)是存放在數(shù)據(jù)庫(kù)服務(wù)器上,另外單獨(dú)配備有獨(dú)立的應(yīng)用服務(wù)器,客戶端電腦就不需很好的配置。數(shù)據(jù)庫(kù)服務(wù)器另外需要配備多塊硬盤(pán),并制作Raid(4塊硬盤(pán)以上的情況下可以建議做Raid10),硬盤(pán)不多的情況下做RAID5也可。Raid(磁盤(pán)陣列)的作用:一方面保證數(shù)據(jù)的安全性,另一個(gè)方面保證數(shù)據(jù)讀寫(xiě)的速度。WINDOWS2008內(nèi)可以使用性能監(jiān)視器進(jìn)行查看內(nèi)存、硬盤(pán)及CPU的使用情況。以上是從硬件方面加以改善,以下是從軟件操作及部署方面改善方法。一、分銷(xiāo)系統(tǒng)內(nèi)使用數(shù)據(jù)分析報(bào)表統(tǒng)計(jì)時(shí),盡量避免勾選“逐行插入”的方式進(jìn)行統(tǒng)計(jì)?!爸鹦胁迦搿辈还催x的前提下,會(huì)提示Ado錯(cuò)誤的解決方法:1.客戶端電腦可以正常訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器的SQL通訊端口。2.客戶端電腦可以正常配置ODBC,并且測(cè)試成功。3.局域網(wǎng)電腦需要可以正常訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,即GUEST啟用二、統(tǒng)計(jì)報(bào)表的格式設(shè)置內(nèi)選擇字段盡量減少。三、增加多臺(tái)應(yīng)用服務(wù)器以分擔(dān)負(fù)荷1、沒(méi)有索引或者沒(méi)有用到索引(這是查詢慢最常見(jiàn)的問(wèn)題)

2、I/O吞吐量小,形成了瓶頸效應(yīng)。

3、沒(méi)有創(chuàng)建計(jì)算列導(dǎo)致查詢不優(yōu)化。

4、查詢出的數(shù)據(jù)量過(guò)大(可以采用多次查詢,其他的方法降低數(shù)據(jù)量)

5、鎖或者死鎖(這也是查詢慢最常見(jiàn)的問(wèn)題)6、sp_lock,,sp_who,活動(dòng)的用戶查看,原因是讀寫(xiě)競(jìng)爭(zhēng)資源。

7、返回了不必要的行和列8、查詢語(yǔ)句不完善,沒(méi)有優(yōu)化由MSSQLSERVER方面產(chǎn)生緩慢的原因MSSQLSERVER方面的性能優(yōu)化二、數(shù)據(jù)庫(kù)容量的虛增影響速度,檢查數(shù)據(jù)庫(kù)各表的使用情況,刪除臨時(shí)表及已不作使用的表,例如BSTEMP開(kāi)頭的表和視圖,TMPORDERFX,YJ開(kāi)頭的表,都是可以進(jìn)行清空數(shù)據(jù)的。三、制作維護(hù)計(jì)劃,進(jìn)行定時(shí)執(zhí)行清理腳本,并當(dāng)腳本清理結(jié)束后,執(zhí)行數(shù)據(jù)庫(kù)收縮維護(hù)。一、SQLSERVER環(huán)境要求。建議使用MSSQLSERVER2005/2008四、學(xué)會(huì)利用SQLServerProfiler(事件探查器)工具進(jìn)行跟蹤,常用SQL語(yǔ)句進(jìn)行檢查數(shù)據(jù)庫(kù)IO阻塞、執(zhí)行時(shí)間較久的事務(wù)、執(zhí)行最頻繁的事務(wù),通過(guò)DBCCINPUTBUFFER(id)查看該ID執(zhí)行的SQL語(yǔ)句,并做相應(yīng)的處理。相關(guān)語(yǔ)句五、數(shù)據(jù)表的索引優(yōu)化。使用的工具為SQL2005/2008的數(shù)據(jù)庫(kù)引擎優(yōu)化顧問(wèn),分析以上第四步內(nèi)檢查出來(lái)的語(yǔ)句,該顧問(wèn)會(huì)給出相應(yīng)的索引優(yōu)化建議并會(huì)生成相關(guān)的SQL腳本。六、RMLUtilitiesforSQLServer工具的使用RMLUtilitiesforSQLServer工具可以實(shí)現(xiàn)以下功能1.分析最占資源的應(yīng)用和查詢2.分析跟蹤期間的查詢計(jì)劃變更的情況

3.分析哪些查詢比起以前來(lái)說(shuō)變慢了2.運(yùn)行RML命令ReadTrace–I20101030.trc-od:\temp-S(local)-dPrecisionPerformance-I后面為跟蹤文件的文件名-o后面為輸出的日志文件路徑-S后面為SQL實(shí)例名稱-d后面為分析所用的數(shù)據(jù)庫(kù),需要手工執(zhí)行腳本創(chuàng)建1.首先利用SQLServerProfiler事件探查器進(jìn)行跟蹤,并保存為具體的跟蹤文件,即后綴名為T(mén)RC的文件。3.執(zhí)行完畢后會(huì)啟動(dòng)Reporter,查看分析結(jié)果七.數(shù)據(jù)庫(kù)分區(qū)什么是數(shù)據(jù)庫(kù)分區(qū)?

數(shù)據(jù)庫(kù)分區(qū)是一種對(duì)表的橫向分割,Sqlserver2005企業(yè)版和之后的Sqlserver版本才提供這種技術(shù),這種對(duì)表的橫向分割不同于2000中的表分割,它對(duì)訪問(wèn)用戶是透明的,用戶并不會(huì)感覺(jué)的表被橫向分割了。數(shù)據(jù)庫(kù)分區(qū)是為了提高數(shù)據(jù)庫(kù)的讀寫(xiě)性能,提高數(shù)據(jù)庫(kù)的效率分區(qū)技術(shù)運(yùn)用的好的話可以提高性能,是因?yàn)橐环矫娣謪^(qū)把一大塊數(shù)據(jù)分成了n小塊,這樣查詢的時(shí)候很快定位到某一小塊上,在小塊中尋址要快很多;另一方面CPU比磁盤(pán)IO快很多倍,而硬件上又有多個(gè)磁盤(pán),或者是RAID(廉價(jià)磁盤(pán)冗余陣列),可以讓數(shù)據(jù)庫(kù)驅(qū)動(dòng)CPU同時(shí)去讀寫(xiě)不同的磁盤(pán),這樣才有可能可以提高效率如何分區(qū)?用什么字段做分區(qū)依據(jù)?

具體如何分區(qū)和涉及的業(yè)務(wù)有關(guān)系,要看業(yè)務(wù)上最經(jīng)常的寫(xiě)入和讀取操作是什么,然后再考慮分區(qū)的策略百勝方提供一個(gè)分區(qū)的方案,主要是把各個(gè)業(yè)務(wù)所使用的表單獨(dú)存放。需要修改數(shù)據(jù)庫(kù)創(chuàng)建的腳本。采用分步執(zhí)行的方式進(jìn)行操作以上執(zhí)行完畢后,數(shù)據(jù)庫(kù)分區(qū)完成,而新數(shù)據(jù)庫(kù)內(nèi)并沒(méi)有數(shù)據(jù),此時(shí)需要從原始數(shù)據(jù)庫(kù)內(nèi)遷移數(shù)據(jù)到新數(shù)據(jù)庫(kù)內(nèi)在Master上運(yùn)行p_TransData腳本,創(chuàng)建對(duì)應(yīng)的存儲(chǔ)過(guò)程,之后運(yùn)行EXECp_TransData‘olddatabase’,’newdatabase’,’1’進(jìn)行數(shù)據(jù)遷移,遷移完成后,啟用新的數(shù)據(jù)庫(kù)即可。注:此工具內(nèi)創(chuàng)建新數(shù)據(jù)庫(kù)的腳本為20090112的,如果用戶已經(jīng)使用最新的程序,則需要在數(shù)據(jù)遷移前,使用升級(jí)腳本對(duì)新數(shù)據(jù)庫(kù)升級(jí)。升級(jí)成功后方可進(jìn)行數(shù)據(jù)遷移。八.數(shù)據(jù)庫(kù)發(fā)布與訂閱百勝軟件可以提供業(yè)務(wù)庫(kù)和統(tǒng)計(jì)庫(kù)分開(kāi),使用百勝的分庫(kù)統(tǒng)計(jì)實(shí)現(xiàn)負(fù)載分擔(dān)。應(yīng)用服務(wù)進(jìn)行統(tǒng)計(jì)庫(kù)設(shè)置客戶端賬套管理內(nèi)勾選啟用分庫(kù)統(tǒng)計(jì)實(shí)現(xiàn)以上功能,必須使用的是SQLSERVER的發(fā)布和訂閱功能

支持的SQL環(huán)境為SQL2005企業(yè)版,SQL2008實(shí)現(xiàn)的前提:1.有兩臺(tái)配置相當(dāng)?shù)臄?shù)據(jù)庫(kù)服務(wù)器2.SQLAgent服務(wù)必須開(kāi)啟,并且服務(wù)啟動(dòng)的帳號(hào)為管理員帳號(hào)3.發(fā)布服務(wù)器和訂閱服務(wù)器必須相互使用機(jī)器名注冊(cè),如使用名稱無(wú)法注冊(cè),則需要添加別名。4.兩臺(tái)電腦建立相同的Windows用戶,并保持密碼一致,具有快照文件夾的完全權(quán)限。5.兩個(gè)數(shù)據(jù)庫(kù)的版本必須一致6.數(shù)據(jù)庫(kù)內(nèi)需要發(fā)布的表必須有主鍵,沒(méi)有主鍵的表,需要人為添加一個(gè)字段。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論