sql基线建立-知识准备
?
- Windows服務器的軟硬件信息(通過MSInfo32公用程序提取)
- Windows性能計數器,事件記錄
- SQLSERVER服務器Profiler跟蹤
- SQLSERVER錯誤記錄
- SQLSERVER封鎖信息
- SQLSERVER分配信息
- 自定義信息。
- 可用pssdiag圖形化配置:http://diagmanager.codeplex.com/
?? 3,SQLdiag信息
- 存在于\Program Files\Microsoft SQL Server\90\Tools\Binn目錄下
- 日志文件放在\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLdiag目錄下。
- 指定配置文件產生地址:sqldiag -PC:\SQLdiag,會產生以下配置文件
?
- ?MSDiagProcs.sql:對sqlserver實例進行的初始化操作,多是在Tempdb系統庫上建立對象。
- SQLDiag.XML:默認讀取的配置文件,提供標準的數據搜集,包含Perfmon,SqlServer錯誤處理,設置狀態(tài)等。
- SD_Detailed.XML:設置SQLDiag.XML更詳細的信息
- SD_General.XML:設置SQLDiag.XML精簡的信息
- SQLDiag_Schema.XSD:用來編寫,修改,驗證既有的XML配置文件
- 4,SQLDiag.XML配置。各節(jié)點中,EventlogCollector:收集系統信息,PerfmonCollector收集監(jiān)控系統,Instances收集SQLSERVER信息
- 默認的Instances的事件是各跟蹤事件信息,對應事件可在sys.trace_events中查看。
- sqldiag的唯一缺點是不會定期查詢系統視圖,
?
所以若加上PerfStatsScript.sql監(jiān)視腳本輸出,就比較全面了。
PerfStatsScript:說明:建立兩個存儲過程,
????1)sp_perf_stats09:–列出最耗時的請求及找到阻塞源頭,#tmp_requests:查詢當前活動的請求,任務,等基本信息–#tmp_requests2:據#tmp_requests查詢當前的活動事務,阻塞的進程
??? 2)sp_perf_stats_infrequent09:收集sqlserver的性能計數器,如內存管理,CLR等sys.dm_os_performance_counters,CPU運行情況,I/O情況
??? 每10分鐘執(zhí)行一次sp_perf_stats09,每小時執(zhí)行一次sp_perf_stats_infrequent09?
定制執(zhí)行SQL
<CustomTask enabled="true" groupname="ByronSP" taskname="ReusePlanPercentage" type="TSQL_Command"? point="Startup"? wait="OnlyOnShutdown" cmd="exec tempdb.dbo.GetTable" />
輸出結果在:
SQLDI\taskname_Startup.OUTsql是執(zhí)行一次就結束了,若想多次執(zhí)行,
則調用spPollSP存儲過程,定時執(zhí)行。
if object_id('dbo.spPollSP') IS NOT NULL –加在MSDiagProcs.sql內
DROP PROC DBO.spPollSP
GO
PRINT ''?
RAISERROR('====建立存儲過程dbo.spPollSP,以重復調用其他存儲過程',0,1)
WITH NOWAIT
GOCREATE PROC dbo.spPollSP @spName sysname, @interval char(8)='00:01:00'
AS
DECLARE @SQL NVARCHAR(200)
SET @SQL = 'EXEC ' +@spName + '; WAITFOR DELAY ''' + @interval + ''''
WHILE 1=1
?? ?EXEC(@SQL)
GOsqldiag參數
如:sqldiag -Pc:\sqldiag /B +00:01:00 /E +00:10:00 /n 1 /L
1分鐘后開始執(zhí)行,10分鐘后停止。連續(xù)運行以服務運行,直到10:19分時停止
sqldiag -P"C:\sqldiag" -E20120508_10:23:00 -N2 -R
net start sqldiag卸載:
net stop sqldiag
sqldiag -u日志文件轉成csv文件:
relog SQLDIAG.BLG -f csv -o "C:\sqldiag\SQLDIAG_00001\a
.csv"relog sqldiag.blg -q -o counter.txt — 查看記數器
/I configuration_file
設置 SQLdiag 要使用的配置文件。默認情況下,/I 設置為 SQLDiag.Xml。/O output_folder_path
將 SQLdiag 輸出重定向到指定文件夾。如果未指定 /O 選項,則 SQLdiag 輸出結果將會寫入 SQLdiag 啟動文件夾下名為 SQLDIAG 的子文件夾中。如果 SQLDIAG 文件夾不存在,則 SQLdiag 將會嘗試創(chuàng)建該文件夾。/P support_folder_path
設置支持文件夾路徑。默認情況下,將 /P 設置存放 SQLdiag 可執(zhí)行文件的文件夾。/B [+]start_time
按照以下格式指定開始收集診斷數據的日期和時間:按照以下格式指定開始收集診斷數據的日期和時間:
YYYYMMDD_HH:MM:SS
使用 + 并且不帶日期(只使用 HH:MM:SS),可以指定相對于當前日期和時間的時間。例如,如果指定 /B +02:00:00,則 SQLdiag 將會在 2 小時后開始收集信息。
不要在 + 和指定的 start_time 之間插入空格。
/E [+]stop_time
按照以下格式指定停止收集診斷數據的日期和時間:使用 /B +02:00:00 /E +03:00:00 指定開始時間和結束時間,則 SQLdiag 將會在 2 小時后開始收集信息,經過 3 小時信息收集后停止收集并退出。
/R
將 SQLdiag 注冊為服務。您將 SQLdiag 注冊為服務時指定的所有命令行參數,都將留到以后用來運行該服務。/U
撤消 SQLdiag 服務注冊。/N output_folder_management_option ,如:sqldiag /N 1
設置 SQLdiag 在其啟動時,是覆蓋還是重命名輸出文件夾。可用選項包括:1 = 覆蓋輸出文件夾(默認)
2 = 當 SQLdiag 啟動時,將輸出文件夾重命名為 SQLDIAG_00001、SQLDIAG_00002 等等。重命名當前輸出文件夾之后,SQLdiag 將輸出寫入默認輸出文件夾 SQLDIAG。
?
/L:連續(xù)運行sqldiag?5,一般設置提綱為:記錄兩小時,每4秒記錄一次,記錄一天,每30秒記錄一次,記錄5天,每180秒記錄一次,以免影響系統性能,且能放映系統持久變化。
- 要收集的perfmon信息在PerfmonCounters下面增加:
?
1,內存<PerfmonObject name="\Memory" enabled="true">
????????????????????????? <PerfmonCounter name="\Available MBytes" enabled="true" />
????????????????????????? <PerfmonCounter name="\Page Faults/sec" enabled="true" />
????????????????????????? <PerfmonCounter name="\Pages/sec" enabled="true" />
??????????????????????? </PerfmonObject>
?Pages/sec:磁盤進行讀取或寫入的頻率,平均值應低于20
?Available MBytes:低于物理內在的10%,就會性能影響,100M以上是嚴重性能問題
2,磁盤
? <PerfmonObject name="\PhysicalDisk(*)" enabled="true">
????????????????????????? <PerfmonCounter name="\% Disk Time" enabled="true" />
????????????????????????? <PerfmonCounter name="\Avg. Disk Queue Length" enabled="true" />
????????????????????????? <PerfmonCounter name="\Current Disk Queue Length" enabled="true" />
??????????????????????? </PerfmonObject>
% Disk Time:磁盤讀取/寫入操作的時間百分比,若平均值>70%,說明硬盤有問題,可進一步查詢是否是內存不足導致,當使用RAID設備時,此值有可能>100%,此時要看PhysicalDisk:Avg.Disk Queue Length計數器的值,此值越低越好。
Current Disk Queue Length:正在等待磁盤訪問的請求,小于2,越低越好。
3,處理器
?<PerfmonObject name="\Processor(*)" enabled="true">
????????????????????????? <PerfmonCounter name="\% Processor Time" enabled="true" />
????????????????????????? <PerfmonCounter name="\% Privileged Time" enabled="true" />
??????????????????????? </PerfmonObject>
% Processor Time:持續(xù)值應低于80
Privileged Time:執(zhí)行Windows系統核心命令的時間百分比,持續(xù)小于10
4,內存文件
?<PerfmonObject name="\Paging File(*)" enabled="false">
????????????????????????? <PerfmonCounter name="\% Usage" enabled="false" />
??????????????????????? </PerfmonObject>
% Usage:比率值高于70%,表示要加內存了。
轉載于:https://www.cnblogs.com/heqianjin/p/5698605.html
總結
以上是生活随笔為你收集整理的sql基线建立-知识准备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax中的同步异步
- 下一篇: 漫谈移动开发中的组件化