日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SqlServer性能监控和优化总结

發(fā)布時(shí)間:2025/4/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SqlServer性能监控和优化总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如何監(jiān)視和查看sql server的性能

http://jingyan.baidu.com/article/a378c9609af34eb32828303a.html


打開sql server studio management


打開"工具"-"sql server profiler"


點(diǎn)擊連接


點(diǎn)擊運(yùn)行


可以看到捕捉到的一些訪問數(shù)據(jù)庫的事件,其中有讀寫,點(diǎn)用cpu,持續(xù)時(shí)間等信息可以參考


點(diǎn)擊某個(gè)事件,可以查看具體執(zhí)行了什么sql腳本,進(jìn)一步分析相關(guān)邏輯。
========

利用sql server監(jiān)控?cái)?shù)據(jù)庫訪問

http://jingyan.baidu.com/article/f3e34a12a92bc3f5eb6535ba.html


本例分享使用sql server中的profiler監(jiān)控?cái)?shù)據(jù)庫的操作情況。


1
打開sql server profiler;
2
新建跟蹤;
3
連接數(shù)據(jù)庫服務(wù)器并運(yùn)行跟蹤程序;
4
只要保持程序是運(yùn)行狀態(tài),就可以即時(shí)的監(jiān)測(cè)到數(shù)據(jù)庫的操作情況了。如圖所示,是本例示范時(shí)數(shù)據(jù)庫


的訪問狀況。
========

sql server 在占用服務(wù)器內(nèi)存居高不下怎么辦



簡(jiǎn)介:本人在開發(fā)sql server數(shù)據(jù)庫項(xiàng)目的過程中發(fā)現(xiàn)了這么一個(gè)問題,通過360安全衛(wèi)士的浮動(dòng)顯示圖


標(biāo)表示 sql server 2005 居然像oracle一樣占用了80%的系統(tǒng)資源,消耗資源居高不下,怎么回事啊?


問了一起工作的同事,他們給出了下面的幾個(gè)建議:


1、做個(gè)軟件自動(dòng)給sql server 2005數(shù)據(jù)庫強(qiáng)制釋放內(nèi)存;
注:這個(gè)是可以的,但是這樣做很不合理;一方面服務(wù)器上的web系統(tǒng)正在運(yùn)行,如果此時(shí)我們把系統(tǒng)的


內(nèi)存釋放掉了這樣肯定會(huì)引起網(wǎng)頁OA系統(tǒng)的異常。
2、給sql server 2005 做個(gè)任務(wù)來釋放內(nèi)存;這個(gè)好像是可以的!但是這個(gè)也是很麻煩的事情。
很明顯上面的方法都不是最理想的。


下面就是正確處理由于sql server 2005引起的數(shù)據(jù)庫內(nèi)存居高不下的辦法:
首先我們需要登錄 sql server 2005的資源管理器
鼠標(biāo)右擊我們sql server 2005的服務(wù)器,然后選擇“屬性”選項(xiàng)
找到指定數(shù)據(jù)庫服務(wù)器的屬性中的“內(nèi)存”屬性,并點(diǎn)擊
接下來就是配置數(shù)據(jù)庫內(nèi)存了,可以參考我本地的配置如下圖:
最后點(diǎn)擊“確定”按鈕就可以了!
========

怎么設(shè)置sql2008數(shù)據(jù)庫最大服務(wù)器內(nèi)存

http://jingyan.baidu.com/article/ceb9fb10b415bb8cac2ba078.html


通過設(shè)置SQL Server 2008 R2服務(wù)器中的最大服務(wù)器內(nèi)存,可以解決使用數(shù)據(jù)庫時(shí)占用系統(tǒng)內(nèi)存過高的


問題。那么我們?cè)撛趺床僮髂?


1.選擇“開始 > 所有程序 > Microsoft SQL Server 2008 R2 > SQL Server Management Studio”。系


統(tǒng)顯示“連接到服務(wù)器”界面。
2.輸入各項(xiàng)數(shù)據(jù),單擊連接
3.系統(tǒng)顯示“對(duì)象資源管理器”界面
4.上圖單擊右鍵,在彈出的快捷菜單中選擇“屬性”。
5.在左側(cè)導(dǎo)航欄中選擇“內(nèi)存”,將右側(cè)“最大服務(wù)器內(nèi)存”的值設(shè)置為物理內(nèi)存的60%,本例以8G內(nèi)存


為例
6.最后單擊確定,設(shè)置完成
怎么設(shè)置sql2008數(shù)據(jù)庫最大服務(wù)器內(nèi)存
END
========

對(duì)SQLSERVER進(jìn)行性能監(jiān)控

http://www.cnblogs.com/lyhabc/archive/2013/07/13/3187581.html


在上一篇文章《SQLSERVER性能監(jiān)控級(jí)別步驟》里說到性能監(jiān)控的步驟中有一步涉及到建立性能基線,但


是沒有說到有哪些計(jì)數(shù)器
可以用來進(jìn)行監(jiān)控的,這篇文章結(jié)合《企業(yè)級(jí)平臺(tái)管理實(shí)踐》的書本說一下監(jiān)控SQLSERVER有哪些計(jì)數(shù)器


可以用到的


3、建立性能基線
?當(dāng)確定了性能監(jiān)控中所涉及的資源、負(fù)載和目標(biāo)后,開始進(jìn)行監(jiān)控,并建立性能基線與當(dāng)前服務(wù)器性能


進(jìn)行比較。
性能基線是一個(gè)保證系統(tǒng)正常操作性能范圍值,達(dá)到或超過這個(gè)范圍,系統(tǒng)性能可能會(huì)顯著下降。
應(yīng)該對(duì)接近或超過性能基線的數(shù)字做進(jìn)一步調(diào)查找出原因監(jiān)控的周期是一段時(shí)間,而不是一兩天。
其中應(yīng)該包括數(shù)據(jù)庫活動(dòng)的峰值時(shí)間和非峰值時(shí)間,數(shù)據(jù)查詢和批處理命令的響應(yīng)時(shí)間、數(shù)據(jù)庫備份和


還原所需時(shí)間
建立服務(wù)器性能基線后,將基線統(tǒng)計(jì)與當(dāng)前服務(wù)器性能進(jìn)行比較。對(duì)高于或遠(yuǎn)低于基線的數(shù)字需要做進(jìn)


一步調(diào)查。
他們可能表明有需要調(diào)整或重新配置的區(qū)域。例如,執(zhí)行一組查詢的時(shí)間增加,檢查這些查詢以確定能


否重新編寫他們,
或者是否添加統(tǒng)計(jì)信息或索引


介紹:


性能監(jiān)視器 Performance Monitor


性能監(jiān)視器是Windows的一個(gè)工具,在系統(tǒng)管理工具組里。默認(rèn)里面就有很多Windows層面的性能計(jì)數(shù)器


,可以監(jiān)視系統(tǒng)的運(yùn)行。


直接運(yùn)行"perfmon",也可以打開他。這里以 WindowsXP/2003/2008的性能監(jiān)視器為例。


Windows2008R2和Windows7的性能監(jiān)視器界面有了比較大的變化,功能也有擴(kuò)展,更加好用。同時(shí)也完全


向前兼容。


后面談到的功能都有包括


SQLSERVER自己開發(fā)了一些擴(kuò)展的性能計(jì)數(shù)器。在安裝SQLSERVER的時(shí)候,會(huì)注冊(cè)到Windows里。


這樣, Windows的性能監(jiān)視器就能看到一些以“SQL”打頭的計(jì)數(shù)器了。SQLSERVER在運(yùn)行時(shí),會(huì)統(tǒng)計(jì)這


些計(jì)數(shù)器的值。


在性能監(jiān)視器里能夠看到:


默認(rèn)性能監(jiān)視器是用來實(shí)時(shí)檢測(cè)系統(tǒng)的,在窗口里,用不同顏色的線條表示不同的計(jì)數(shù)器值。


當(dāng)窗口畫滿以后,會(huì)從頭覆蓋前面的內(nèi)容。所以默認(rèn)只能看到最近一小段時(shí)間的值。


但是在現(xiàn)實(shí)的問題分析中,實(shí)時(shí)監(jiān)測(cè)還是比較少的。更常見的場(chǎng)景是需要在問題發(fā)生之前,就要開啟性


能計(jì)數(shù)器的收集,


收集一段時(shí)間之后,或者問題重現(xiàn)之后,再離線地分析問題的現(xiàn)象和原因。


那么日志怎樣收集呢?


通常可以使用下面這些步驟:


(1)在性能監(jiān)視器左邊的窗口,展開性能 日志和警告子樹,點(diǎn)擊“計(jì)數(shù)器日志” 在右邊的窗口里,右


鍵點(diǎn)擊,


選擇“新 日志設(shè)置”,他會(huì)彈出一個(gè)對(duì)話框,讓你為新的日志記錄配置命名。這里我們?nèi)∶麨門est,日


志默認(rèn)保存路徑是


%systemdrive%\PerfLogs\Admin\Test


(2)在接著彈出的對(duì)話框里,就可以配置DBA要搜集的信息要求了。首先要選擇搜集哪些計(jì)數(shù)器,以及


他們的取樣時(shí)間間隔sample data every,


默認(rèn)是15秒取一次,這個(gè)間隔能夠滿足大部分需求。


有說法講在搜集和磁盤相關(guān)的性能日志時(shí),間隔要設(shè)置短一點(diǎn),最好是3到5秒。如果設(shè)置30秒以上,可


能信息就不完整了。


所以15秒是大部分情況下比較好的選擇


(3)選擇添加對(duì)象,就可以選擇要收集的性能監(jiān)視器對(duì)象。對(duì)于非在線分析,問題可能還不清楚,很難


確定哪些性能計(jì)數(shù)器有用,哪些沒有用。


所以在這里,一定要多選一些。一般的SQL問題,可以選擇下面這些對(duì)象


在memory,process,physicaldisk,processor,system對(duì)象下的所有計(jì)數(shù)器,以及他們的所有instance


所有以SQLSERVER:開頭的性能監(jiān)視對(duì)象


如果要監(jiān)視CPU類問題,最好還包含thread下面的所有計(jì)數(shù)器,以及他所有的instance


有些DBA會(huì)擔(dān)心,抓這麼多計(jì)數(shù)器會(huì)不會(huì)影響性能。


應(yīng)該說根據(jù)經(jīng)驗(yàn),性能監(jiān)視器對(duì)系統(tǒng)整體性能的影響幾乎感覺不到。所以可以比較放心大膽地多收一些


計(jì)數(shù)器。


基本工作原理是在.NET編譯出的IL代碼里放入鉤子用來記錄時(shí)間,然后通過直觀的界面顯示出哪部分代


碼耗能最大。


只是間隔可能還是選15秒比較安全


(4)設(shè)置文件的位置和最大大小 ,另一個(gè)重要配置,是日志文件存放在哪里,保存格式,以及最大大


小。


日志文件的后綴是blg的二進(jìn)制文件,需要使用性能監(jiān)視器才能打開這個(gè)文件


如果性能日志文件大小超過1GB,可能有些機(jī)器打開會(huì)很慢。所以一定要注意其最大值可以設(shè)為200MB。


如果一個(gè)200MB的文件寫滿,性能監(jiān)視器會(huì)自動(dòng)創(chuàng)建一個(gè)新的。文件格式可以選二進(jìn)制文件


日志搜集當(dāng)然可以手動(dòng)開始和終止。但是如果問題會(huì)發(fā)生在半夜,最好能讓系統(tǒng)自動(dòng)開啟,自動(dòng)關(guān)閉。


性能監(jiān)視器也可以幫DBA做到這一點(diǎn)


當(dāng)?shù)玫揭粋€(gè)性能日志后,可以在性能監(jiān)視器里選擇 查看 日志 數(shù)據(jù)


在數(shù)據(jù)源里添加日志文件


然后點(diǎn)擊數(shù)據(jù)選項(xiàng)卡,就能看到在原來那臺(tái)服務(wù)器上收集的性能計(jì)數(shù)器了


這時(shí)候再點(diǎn)擊“源”選項(xiàng)卡,能看見性能日志文件所包含的那段時(shí)間。拉動(dòng)滾動(dòng)條,可以把時(shí)間段縮短


到DBA最關(guān)心的那段時(shí)間


對(duì)收集到的日志,DBA可以進(jìn)行分析


------------------------------華麗的分割線---------------------------
一些性能監(jiān)視器計(jì)數(shù)器
相關(guān)計(jì)數(shù)器


性能對(duì)象 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 計(jì)數(shù)器
SQLSERVER:BUFFER MANAGER: ? ?buffer cache hit ratio,lazy writes/sec ,procedure cache?


pages,total pages
SQLSERVER:Cache Manager: ? ?cache hit ratio,cache object counts,cache pages ,cache use?


counts/sec
SQLSERVER:MEMORY MANAGER: ? ?sql cache memory(kb)
SQLSERVER:SQL STATISTICS: ? ?auto-param attmpts/sec,batch request/sec,failed auto-


params/sec,safe autoparam/sec, sql compilations/sec,


sql re-compilations/sec,unsafe auto-params/sec


----------------------------華麗的分割線--------------------------
與內(nèi)存有關(guān)的計(jì)數(shù)器


Windows與SQLSERVER系統(tǒng)使用內(nèi)存情況和合理配置SQLSERVER內(nèi)存?


性能監(jiān)視器 ?perfmon --添加-》可用計(jì)數(shù)器-》Memory-》添加available MBytes和pages/sec


數(shù)據(jù)收集器集-》用戶定義-》新建-》數(shù)據(jù)收集器集-》名稱:SQLSERVER內(nèi)存使用-》手動(dòng)創(chuàng)建-》性能計(jì)


數(shù)器-》 添加下面的性能計(jì)數(shù)器-》


時(shí)間間隔15秒-》保存路徑:C:\Users\Administrator\Desktop\SQLSERVER內(nèi)存使用-》 保存并關(guān)閉-》


選中剛才創(chuàng)建的數(shù)據(jù)收集器-》啟動(dòng)-》變成


datacollector01 ? -》在用戶定義下面 SQLSERVER內(nèi)存使用 右鍵-》停止或者在空白的地方-》右鍵-》


停止


可以右鍵-》在用戶定義下面 SQLSERVER內(nèi)存使用-》屬性-》更改數(shù)據(jù)收集器保存路徑


?計(jì)數(shù)器


committed bytes:整個(gè)Windows系統(tǒng),包括Windows自身以及所有用戶進(jìn)程使用的內(nèi)存總數(shù)


commit limit:整個(gè)Windows系統(tǒng)能夠申請(qǐng)的最大內(nèi)存數(shù),其值等于物理內(nèi)存加上文件緩存大小


available MBytes(重要):現(xiàn)在系統(tǒng)空閑的物理內(nèi)存數(shù)。這個(gè)指標(biāo)能夠直接反映出Windows層面上有沒


有內(nèi)存壓力跑在Windows2000上會(huì)把空閑內(nèi)存用完知道剩下4MB~10MB。跑在Windows2003或以上就會(huì)留給


Windows多一點(diǎn)的物理內(nèi)存


page file :%usage ?page file:% peak usage :反應(yīng)緩存文件使用量的多少,使用越多緩存,性能越





pages /sec:每秒鐘需要從磁盤上讀取或?qū)懭氲捻撁鏀?shù)目


soft page fault一般不會(huì)帶來性能影響,因此一般不太關(guān)心


一個(gè)良好的系統(tǒng),他要處理的數(shù)據(jù)應(yīng)該比較長(zhǎng)期地保存在物理內(nèi)存里。如果頻繁換頁/換入換出勢(shì)必影響


性能,pages/sec不能長(zhǎng)時(shí)間保持在一個(gè)比較高的值


對(duì)于一臺(tái)SQL服務(wù)器,如果available MBytes長(zhǎng)期小于10MB,說明物理內(nèi)存不太夠pages/sec 物理內(nèi)存不


足也會(huì)做成頻繁換頁/換入換出 pages/sec不能長(zhǎng)時(shí)間保持在一個(gè)比較高的值


Windows系統(tǒng)自身內(nèi)存使用情況


一個(gè)32位Windows系統(tǒng),正常內(nèi)存使用大概幾百M(fèi)B --64位Windows系統(tǒng)大概1GB~2GB


--如果發(fā)生內(nèi)存泄漏(一般由硬件驅(qū)動(dòng)造成),Windows會(huì)用到幾個(gè)GB甚至十幾GB,反過來擠壓應(yīng)用的內(nèi)





memory :cache bytes --系統(tǒng)的working set,也就是系統(tǒng)使用的物理內(nèi)存數(shù)目,包括高速緩存,頁交換


區(qū),可調(diào)頁的ntoskrnl.exe 和驅(qū)動(dòng)程序代碼,


以及系統(tǒng)映射視圖


cache bytes計(jì)數(shù)器是下面幾個(gè)計(jì)數(shù)器的和:


system cache resident bytes,system driver resident bytes ,system code resident bytes ,pool?


paged resident bytes


system cache resident bytes:系統(tǒng)高速緩存消耗的物理內(nèi)存。高速緩存的主要功能是提高文件讀寫的


速度


pool paged resident bytes:頁交互區(qū)消耗的物理內(nèi)存


system driver resident bytes:可調(diào)頁的設(shè)備驅(qū)動(dòng)程序代碼消耗的物理內(nèi)存


system code resident bytes:ntoskrnl.exe中可調(diào)頁代碼消耗的內(nèi)存


system pool 內(nèi)存池 ?如果兩個(gè)重要的內(nèi)存池內(nèi)存出現(xiàn)泄漏,或者空間用盡,Windows會(huì)出現(xiàn)奇怪不正常


的行為, 進(jìn)而影響SQL穩(wěn)定運(yùn)行。


所以需要檢查這兩個(gè)內(nèi)存池


pool nonpaged bytes 非換頁內(nèi)存池


pool paged resident bytes 換頁內(nèi)存池


單個(gè)process使用情況


常見場(chǎng)景:available MBytes看出服務(wù)器的內(nèi)存基本用盡,但是從cache bytes看Windows自己沒有使用


多少。


現(xiàn)在要開始分析應(yīng)用程序的內(nèi)存使用了


在選擇對(duì)象的實(shí)例里面要每個(gè)進(jìn)程都要添加進(jìn)計(jì)數(shù)器里面,不要選擇_Total SQL的進(jìn)程是sqlservr


%processor time:是目標(biāo)進(jìn)程消耗的CPU資源數(shù),包括用戶態(tài)和核心態(tài)的時(shí)間


page faults/sec:是目標(biāo)進(jìn)程上發(fā)生的page faults的數(shù)目


handle count:目標(biāo)進(jìn)程handle(指向object指針)數(shù)目句柄數(shù)。如果進(jìn)程內(nèi)部有對(duì)象老是創(chuàng)建,不及時(shí)


回收,就會(huì)發(fā)生handle leak


thread count:目標(biāo)進(jìn)程的線程數(shù)目。如果進(jìn)程老是創(chuàng)建新線程,不釋放老線程,就會(huì)發(fā)生thread leak


pool paged bytes:是目標(biāo)進(jìn)程所使用的paged pool大小


pool nonpaged bytes:是目標(biāo)進(jìn)程所使用的non-paged pool大小


working set:某個(gè)進(jìn)程的地址空間,存放在物理內(nèi)存的那一部分


virtual bytes:某個(gè)進(jìn)程所申請(qǐng)的虛擬地址空間大小,包括reserved memory 和committed memory


private bytes:某個(gè)進(jìn)程提交了的地址空間commited memory中,非共享部分


假設(shè)有processA 和processB,他們的虛擬地址空間都分成兩部分,核心態(tài)和用戶態(tài) --核心態(tài)是由


Windows控制,所有進(jìn)程共享。


processA --committed memory :1,2,3,4,7 --reserved memory:8 --shared memory:通過特殊API申請(qǐng)


的內(nèi)存,processA和processB都能夠訪問


物理內(nèi)存physical memory:1,3,4,d,7,9,b,c 緩存文件page file:2,y


系統(tǒng)核心態(tài)內(nèi)存 system working set=x


檢查計(jì)數(shù)器主要找到以下:


使用內(nèi)存最多的進(jìn)程


內(nèi)存使用量在不斷增長(zhǎng)的進(jìn)程


出現(xiàn)問題的那個(gè)時(shí)間段,內(nèi)存使用數(shù)量發(fā)生過突變(增或降)的進(jìn)程


這些可以通過working set ?private bytes得到初步答案


?-----------------------------華麗的分割線--------------------


上面這些都是《SQLSERVER企業(yè)級(jí)平臺(tái)管理實(shí)踐》讀書筆記整理出來的一些常用SQLSERVER性能計(jì)數(shù)器,


大家做性能基線的時(shí)候都可以用來做參考
========

SqlServer性能檢測(cè)和優(yōu)化工具使用詳細(xì)

http://blog.csdn.net/dcx903170332/article/details/45917387


工具概要 ? ?
? ? 如果你的數(shù)據(jù)庫應(yīng)用系統(tǒng)中,存在有大量表,視圖,索引,觸發(fā)器,函數(shù),存儲(chǔ)過程,sql語句等等


,又性能低下,而苦逼的你又要對(duì)其優(yōu)化,那么你該怎么辦?哥教你,首先你要知道問題出在哪里?如


果想知道問題出在哪里,并且找到他,咱們可以借助本文中要講述的性能檢測(cè)工具--sql server?


profiler(處在sql安裝文件--性能工具--sql server profiler)


? ? 如果知道啦問題出現(xiàn)在哪里,如果你又是絕世高手,當(dāng)然可以直中要害,寫段代碼給處理解決掉,


但是如果你不行,你做不到,那么也無所謂,可以借助哥的力量給你解決問題。哥給你的武功的秘訣心


法是---數(shù)據(jù)庫引擎優(yōu)化顧問(處在sql安裝文件--性能工具--數(shù)據(jù)庫引擎優(yōu)化顧問)


sql server profiler功能?
? ? 此工具比柯南還柯南,因?yàn)樗軝z測(cè)到數(shù)據(jù)庫中的一舉一動(dòng),即便你不動(dòng)他,他也在監(jiān)視你,他很


賤的。他不但監(jiān)視,還監(jiān)視的很詳細(xì),有多詳細(xì)一會(huì)再說,還把監(jiān)視的內(nèi)容記錄到數(shù)據(jù)庫或者是文件中


,給你媳婦告狀說你把數(shù)據(jù)庫哪里的性能搞的多么不好,不過他也會(huì)把好的給你記錄下來,好與不好這


當(dāng)然需要你來分析,其實(shí)他也是個(gè)很2的柯南。


數(shù)據(jù)庫引擎優(yōu)化顧問功能?
? ? 此武功,乃上乘武功。像張無忌的乾坤大挪移,先是接受sql server profiler檢測(cè)出來的sql,視


圖,存儲(chǔ)過程,數(shù)據(jù)結(jié)構(gòu)等等,然后他再自己分析,然后再在懷中轉(zhuǎn)兩圈,感覺自己轉(zhuǎn)的差不多啦,就


給拋出來個(gè)威力更炫,更好的索引,統(tǒng)計(jì),分區(qū)等等建議信息。讓你承受不住,happly致死。。下面聽


哥給你先講講咱們的很2柯南。


sql server profiler的使用
打開系統(tǒng)主菜單--sqlserver幾---性能工具--->>sql server profiler;笨樣兒,找到?jīng)]?哥等你會(huì)兒,


給你上張打開他后的圖,讓你看看。。


然后文件--新建跟蹤--顯示跟蹤屬性窗口


然后選中頁簽“事件選擇”,并點(diǎn)擊”列篩選器“,操作如下圖:


首先那個(gè)select%是個(gè)篩選監(jiān)測(cè)的TextData。那個(gè)%是個(gè)通配符,他的意思就是篩選select開口的語句。


當(dāng)然這你自己可以隨便定義,如update%,delete%....。


把那個(gè)排除不包含值的行也給帶上,然后確定,運(yùn)行。然后在數(shù)據(jù)庫中運(yùn)行一句select。你會(huì)發(fā)現(xiàn)他檢


測(cè)到啦。


每列以此向右,從EventClass開始,我給你講講都是什么。


事件分類,申請(qǐng)了語句,應(yīng)用程序名稱,操作系統(tǒng)用戶,數(shù)據(jù)庫用戶,cpu占用率,讀數(shù)據(jù)庫次數(shù),寫數(shù)


據(jù)庫次說,執(zhí)行腳本用時(shí),應(yīng)用程序進(jìn)程號(hào),開始時(shí)間,結(jié)束時(shí)間等。


事件選擇,你就把鼠標(biāo)放上去,他下面有中文的注釋。自己好好看看,然后根據(jù)你自己的需要把事件勾


選上來。


然后文件-->>另存為,可以把這些監(jiān)測(cè)到的數(shù)據(jù)保存為文件,或數(shù)據(jù)表。


分析:


1.查找持續(xù)時(shí)間最長(zhǎng)的查詢


一般情況下,最長(zhǎng)查詢時(shí)間的查詢語句就是最影響性能的原因存在。它不僅占用數(shù)據(jù)庫引擎大量的時(shí)間


,還浪費(fèi)系統(tǒng)資源,還影響數(shù)據(jù)庫應(yīng)用系統(tǒng)的交互速度。再對(duì)數(shù)據(jù)用應(yīng)用系統(tǒng)進(jìn)行優(yōu)化時(shí),先找出他,


對(duì)其優(yōu)化,在創(chuàng)建跟蹤時(shí),勾上TSQL-SQL:BatchCompleted.跟Stored Procedures-RPC:completed。這樣


就能找出來這個(gè)最長(zhǎng)時(shí)間查詢?nèi)缓髮?duì)其進(jìn)行分析優(yōu)化。


select TextData,Duration,CPU from <跟蹤的表>
where EventClass=12 -- 等于12表示BatchCompleted事件
and CPU<(0.4*Duration) ?--如果cpu的占用時(shí)間,小于執(zhí)行sql語句時(shí)間的40%,說明該語句等待時(shí)間過


長(zhǎng)
2.最占用系統(tǒng)資源的查詢


就是占用cpu時(shí)間,跟讀寫IO的次數(shù)。建議事件包含Connect、Disconnect、ExistingConnection、


SQL:BatchCompleted、RPC:completed,列包含writes,reads,cpu。


3.檢測(cè)死鎖


在訪問量,并發(fā)量都很大的數(shù)據(jù)庫中,如果設(shè)計(jì)稍不合理,就有可能造成死鎖,給系統(tǒng)性能帶來影響。


事件包含:RPC:Starting、SQL:BatchStarting、Lock:DeadLock(死鎖事件)、Lock:


DeadLockChaining(死鎖的事件序列)。


使用數(shù)據(jù)庫引擎優(yōu)化顧問分析解決數(shù)據(jù)庫性能
打開系統(tǒng)主菜單--sqlserver幾---性能工具--->>數(shù)據(jù)庫引擎優(yōu)化顧問,界面如下


打開之后,你在上一個(gè)工具中保存的的文件,你就在這里的工作負(fù)荷中選文件,表就選表。選后別急。


把要分析的數(shù)據(jù)庫跟數(shù)據(jù)庫的表選上,也就是下面的用于工作負(fù)荷分析的數(shù)據(jù)庫選擇,跟下面的要優(yōu)化


的數(shù)據(jù)庫和表,慢慢扣,把他選對(duì)。


然后選則你想要的優(yōu)化選項(xiàng)


根據(jù)需要,選上,高級(jí)選項(xiàng)里面通常可以默認(rèn)。確定。。


然后點(diǎn)左上角有一個(gè)開始分析。如果報(bào)下面的錯(cuò)誤,不要急,按照他的操作一步一步來就行。


點(diǎn)擊tab標(biāo)簽"優(yōu)化選項(xiàng)",如圖:


然后點(diǎn)擊“高級(jí)選項(xiàng)”:、


點(diǎn)擊確定----開始分析-----一會(huì)就分析完成了


?它會(huì)給個(gè)建議列表,然后你根據(jù)上面的操作,把它給出的操作在數(shù)據(jù)庫中操作下就OK了,就不用那么的


費(fèi)盡心機(jī)的調(diào)試SQL了,當(dāng)然寫出高效率的SQL還是比較好的。
========

sql server性能分析--查看表數(shù)據(jù)頁數(shù)



返回表名、索引名和行數(shù)
SELECT object_name(i.object_id) as objectName, i.[name] as indexName, sum(p.rows) as rowCnt
FROM sys.indexes i
INNER JOIN sys.partitions p
ON i.object_id = p.object_id
AND i.index_id = p.index_id
WHERE i.object_id = object_id('dbo.Meeting')
AND i.index_id <= 1
GROUP BY i.object_id, i.index_id, i.[name]


返回表的總頁數(shù)、使用頁數(shù)、數(shù)據(jù)頁數(shù)
SELECT object_name(i.object_id) as objectName, i.[name] as indexName,
sum(a.total_pages) as totalPages, sum(a.used_pages) as usedPages, sum(a.data_pages) as?


dataPages,
(sum(a.total_pages) * 8) / 1024 as totalSpaceMB, (sum(a.used_pages) * 8) / 1024 as?


usedSpaceMB,
(sum(a.data_pages) * 8) / 1024 as dataSpaceMB
FROM sys.indexes i
INNER JOIN sys.partitions p
ON i.object_id = p.object_id
AND i.index_id = p.index_id
INNER JOIN sys.allocation_units a
ON p.partition_id = a.container_id
WHERE i.object_id = object_id('dbo.Meeting')
AND i.index_id <= 1
GROUP BY i.object_id, i.index_id, i.[name]


按頁類型分類統(tǒng)計(jì)
SELECT case when grouping(i.object_id) = 1 then '--- TOTAL ---' else object_name


(i.object_id) end as objectName,
case when grouping(i.[name]) = 1 then '--- TOTAL ---' else i.[name] end as indexName,
case when grouping(a.type_desc) = 1 then '--- TOTAL ---' else a.type_desc end as pageType,
sum(a.total_pages) as totalPages, sum(a.used_pages) as usedPages, sum(a.data_pages) as?


dataPages,
(sum(a.total_pages) * 8) / 1024 as totalSpaceMB, (sum(a.used_pages) * 8) / 1024 as?


usedSpaceMB, (sum(a.data_pages) * 8) / 1024 as dataSpaceMB
FROM sys.indexes i
INNER JOIN sys.partitions p
ON i.object_id = p.object_id
AND i.index_id = p.index_id
INNER JOIN sys.allocation_units a
ON p.partition_id = a.container_id
WHERE i.object_id = object_id('dbo.Meeting')
AND i.index_id <= 1
GROUP BY i.object_id, i.[name], a.type_desc with rollup
========

SQL Server性能之瓶頸的正確查看步驟

http://database.51cto.com/art/201007/210767.htm


我們今天主要向大家講述的是正確查出SQL Server性能之瓶頸的實(shí)際操作流程,以及對(duì)SQL Server數(shù)據(jù)


庫性能監(jiān)控的實(shí)際操作描述。
AD:網(wǎng)+線下沙龍 | 移動(dòng)APP模式創(chuàng)新:給你一個(gè)做APP的理由>>
以下的文章主要向大家介紹的是正確查出SQL Server性能之瓶頸的實(shí)際操作流程,假如你對(duì)DBA很了解的


話,那么你就一定會(huì)了解到SQLServe數(shù)據(jù)庫的性能調(diào)優(yōu)不是一個(gè)精密的科學(xué)。即使是,對(duì)于為最佳的SQL?


Server性能找到最佳的配置也是很困難的。


這是因?yàn)閷?duì)于調(diào)優(yōu)來說很少東西是絕對(duì)的。例如,一個(gè)性能調(diào)優(yōu)可能對(duì)某一方面有


如果你曾經(jīng)做了很長(zhǎng)時(shí)間的DBA,那么你會(huì)了解到SQLServe的性能調(diào)優(yōu)不是一個(gè)精密的科學(xué)。即使是,對(duì)


于為最佳的性能找到最佳的配置也是很困難的。這是因?yàn)閷?duì)于調(diào)優(yōu)來說很少東西是絕對(duì)的。例如,一個(gè)


性能調(diào)優(yōu)可能對(duì)某一方面有用,可是卻會(huì)影響其他的性能。


我曾經(jīng)做過DBA,在最后7年的日子里,我總結(jié)了一套SQL Server調(diào)優(yōu)的清單。當(dāng)?shù)谝淮芜M(jìn)行SQL Server


性能調(diào)優(yōu)的時(shí)候,可以用它來作為一個(gè)向?qū)АN医?jīng)常被邀請(qǐng)去檢查SQL Server并提供一些性能方面的建


議。直到現(xiàn)在,我還沒有真正寫下一個(gè)貫穿整個(gè)性能調(diào)優(yōu)過程的方案。


但是當(dāng)我做了越來越多的性能調(diào)優(yōu)的咨詢工作后,我現(xiàn)在決定花點(diǎn)時(shí)間整理出來。你將會(huì)發(fā)現(xiàn)它是很有


用的,就象我發(fā)現(xiàn)對(duì)我的用處一樣.


SQL Server性能監(jiān)控


這套性能優(yōu)化的清單將至少準(zhǔn)科學(xué)的幫助你找出你的SQL Server任何明顯的性能問題。說是這樣說,SQL?


Server的性能調(diào)優(yōu)仍然是很困難的。我試圖用這套清單去找出“容易”的SQL Server性能問題,困難的


留待稍后。我這樣做是因?yàn)楹苋菀讓⑷菀缀屠щy的的性能調(diào)優(yōu)問題搞混。通過列出一個(gè)“容易”的性能


調(diào)優(yōu)范圍,就很容易的將這些問題解決,一旦解決了這些容易的問題,那么你就能集中去解決更困難的


問題。


使用這個(gè)SQL Server性能調(diào)優(yōu)清單的一個(gè)好處是,它將不僅僅告訴你目前最容易解決的性能問題是什么


,而且還幫助你正確的去解決。在某種程度上,你可以選擇不同的順序進(jìn)行。換句話說,你可以故意做


出特殊的決定而不是按照清單通常的順序進(jìn)行。


某種意義上說你是對(duì)的,不是所有的SQL Server性能調(diào)優(yōu)建議都適合所有的情形。另外,你的決定是基


于你的資源限制,例如沒有足夠的錢去買滿足負(fù)荷的硬件。如果真是那樣的話,你就別無選擇了。還有


,你的決定可能基于一些政治原因,那是你不得不作出的改變。不管怎樣,你需要知道你能做什么,使


用這個(gè)性能調(diào)優(yōu)清單找出你能改變的范圍并做出相應(yīng)的改變提升你的SQL Server的性能。


一般來說,你將在你的每一個(gè)SQL服務(wù)器上執(zhí)行這個(gè)清單。如果遇到清單中的一些問題,這會(huì)花掉你一些


時(shí)間。我建議你從目前性能問題最多的的服務(wù)器開始,然后當(dāng)你有時(shí)間的時(shí)候按照自己的思路去解決其


他服務(wù)器。


一旦你完成了,可仍然有很多事情要去做。記住,這些只是一些容易的。一旦你完成了這些容易的,接


下來你需要花時(shí)間去解決更困難問題。這個(gè)是另一篇文章要解決的問題了。


怎樣進(jìn)行你的SQL Server性能調(diào)優(yōu)呢?


為了使其變得容易,我把它們分成了以下幾個(gè)部分:


使用性能監(jiān)視器找出硬件瓶頸


SQL Server硬件性能監(jiān)控列表


操作系統(tǒng)性能監(jiān)控列表


SQL Server2000配置性能監(jiān)控列表


數(shù)據(jù)庫配置設(shè)置性能監(jiān)控列表


索引性能監(jiān)控列表


應(yīng)用程序和T-SQL性能監(jiān)控列表


SQL Server數(shù)據(jù)庫作業(yè)性能監(jiān)控列表


使用Profiler找出低效的查詢


怎樣最好的實(shí)現(xiàn)SQL Server性能監(jiān)控


管理你的SQLServe性能的最好方法是首先回顧上面每一部分的內(nèi)容,把它們打印出來。然后完成每一部


分的內(nèi)容,寫下你收集到的結(jié)果。你也可以按照你喜歡的順序進(jìn)行。上面的步驟僅僅列出了我執(zhí)行的順


序,因?yàn)槟菢油ǔD苓_(dá)到一個(gè)比較好的效果。


一旦你完成其中一部分,你可以按照在清單中發(fā)現(xiàn)的不同的建議進(jìn)行你的性能優(yōu)化工作。然后你將在后


面的部分學(xué)到更多。


以上的相關(guān)內(nèi)容就是對(duì)查出SQL Server性能之瓶頸的介紹,望你能有所收獲。
========

鏈接

http://blog.csdn.net/kufeiyun/article/details/23743647
SQL Server查詢性能調(diào)優(yōu)、捕捉和評(píng)估查詢性能


http://www.360doc.com/content/14/0415/14/3112151_369179018.shtml
怎樣查出SQLServer的性能瓶頸

總結(jié)

以上是生活随笔為你收集整理的SqlServer性能监控和优化总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区爱爱 | 啪啪免费 | 在线欧美视频 | 国产精品人人妻人人爽人人牛 | 青青青av | 日本免费黄色大片 | 精品五月天 | 精品国产九九九 | 免费麻豆 | 亚洲天堂123 | 国产无遮挡18禁无码网站不卡 | 日本久久久久久久久 | 婷婷丁香花五月天 | 中文有码一区 | 免费黄色在线网址 | 在线观看国产亚洲 | 黄色欧美在线 | 亚洲精品污一区二区三区 | 国产激情对白 | 日韩精品在线一区二区 | 欧美老肥婆性猛交视频 | 成人免费在线视频观看 | av日韩一区 | 好吊一区| 丁香花高清视频完整电影 | 国产精品v欧美精品v日韩精品 | 婷色 | 成人午夜影片 | 亚欧美| 黄色电影在线视频 | 亚洲欧美日韩在线播放 | 最新欧美大片 | 欧美日韩在线视频免费播放 | 寂寞人妻瑜伽被教练日 | 欧美福利视频一区二区 | 国产高清日韩 | 日韩久久精品一区二区 | 国产污视频在线播放 | 能看的av | 国产av成人一区二区三区高清 | 激情五月五月婷婷 | 69人妻精品久久无人专区 | 天天操天天爽天天干 | 干干干操操操 | 日韩av女优在线观看 | 亚洲激情图片 | 玖玖爱免费视频 | 日本成人在线网站 | 精品黄色| 熟女性饥渴一区二区三区 | 亚洲欧美一区在线 | 人妻少妇精品无码专区久久 | 国产精品高清在线观看 | 99艹| 国产伦精品一区二区三区免费迷 | a级黄色小视频 | 在线久| av黄色免费 | 久久久久久久久久国产精品 | 亚洲自拍激情 | 国产综合精品一区二区三区 | 自拍三级视频 | 蜜桃视频成人在线观看 | 久久伊人热 | 国久久 | 久久成人a | 国产精品一卡二卡在线观看 | 99久久久久无码国产精品 | 吸咬奶头狂揉60分钟视频 | 欧美精品一区二区三 | 69sese| 第一次破处视频 | 中文字幕一区二区在线视频 | 国产乱偷 | 国产大奶在线观看 | 国语对白一区二区三区 | 99精品视频免费看 | 成人午夜一区 | 精品久久久久久亚洲 | 夜夜天堂| 九九热这里有精品 | 狠狠人妻久久久久久综合蜜桃 | 国产精品91一区二区 | 成人免费精品视频 | 黄色应用在线观看 | 中文字幕一区久久 | 18性xxxxx性猛交 | 91免费版在线看 | 欧美一区二区三区视频 | 国产精品无码一区二区三区三 | 福利一区二区视频 | 久久久穴 | 国产又大又长又粗 | 九九热这里只有 | xxxx视频在线观看 | 北条麻妃在线一区 | 91色呦呦| 日韩中文字幕视频在线 | 日韩激情在线播放 |