SQL Server性能基线和监控简析(二)

2014-11-24 08:26:01 来源: 作者: 浏览: 3
d();
if (-not ($SqlConnection.State -like "Open")) { $SqlConnection.Open() }
$cc.CommandText=" EXEC msdb..sp_send_dbmail
@profile_name = '$mailprfname'
,@recipients = '$recipients'
,@body = '$message'
,@subject = '$subject'
"
$cc.ExecuteNonQuery()|out-null
$SqlConnection.Close();
}
$names = GetServerName($computernamexml)
$pfcounters = GetAlterCounter($alter_cpuxml)
foreach($cp in $names)
{
$p = New-Object Collections.Generic.List[string]
$report = ""
foreach ($pfc in $pfcounters)
{
$b = ""
$counter ="\\"+$cp+$pfc.get_InnerText().Trim()
$p.Add($counter)
}
$count = Get-Counter $p
for ($i = 0; $i -lt $count.CounterSamples.Count; $i++)
{
$v = $count.CounterSamples.Get($i).CookedValue
$pfc = $pfcounters[$i]
#$pfc.get_InnerText()
$b = ""
$lg = ""
if($pfc.operator -eq "lt")
{
if ($v -ge [double]$pfc.alter)
{$b = "alter"
$lg = "Greater Than"}
}
elseif ($pfc.operator -eq "gt")
{ www.2cto.com
if( $v -le [double]$pfc.alter)
{$b = "alter"
$lg = "Less Than"}
}
if($b -eq "alter")
{
$path = "\\"+$cp+$pfc.get_InnerText()
$item = "{0}:{1};{2} Threshold:{3}" -f $path,$v.ToString(),$lg,$pfc.alter.Trim()
$report += $item + "`n"
}
}
if($report -ne "")
{
#生产警告 参数 计数器,阀值,当前值
CreateAlter $report
}
}
其中涉及到2个配置文件:computernamexml,alter_cpuxml分别如下:
fanr-pc
\Processor(_Total)\% Processor Time
\Processor(_Total)\% Privileged Time
\SQLServer:SQL Statistics\Batch Requests/sec
\SQLServer:SQL Statistics\SQL Compilations/sec www.2cto.com
\SQLServer:SQL Statistics\SQL Re-Compilations/sec
\System\Processor Queue Length
\System\Context Switches/sec
其中 alter 就是阀值,如第一条,如果 阀值 > 性能计数器值,就会发出警告。
作者 Amaranthus
-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: