Dit monitortype detecteert mogelijke problemen met de operationele database door de status te controleren van de opschonings- en partitioneringsprocessen die prestatieproblemen kunnen veroorzaken.
Knowledge Base article:
Samenvatting
Een monitortype voor het controleren van het proces voor opschoning en partitionering.
Met deze werkstroom wordt een script op basis van een terugkerend schema uitgevoerd. Het interval is het aantal seconden dat de werkstroom tussen uitvoeringen moet wachten. Wijzig deze waarde als u de werkstroom vaker of minder vaak wilt uitvoeren.
Synctime
string
$Config/Synctime$
Synchronisatietijd
TimeoutSeconds
int
$Config/TimeoutSeconds$
Time-out (seconden)
Met deze werkstroom wordt een script op basis van een terugkerend schema uitgevoerd. De time-out is het aantal seconden dat het script kan worden uitgevoerd voordat het gedwongen wordt beëindigd. Opmerking: de time-outwaarde moet altijd kleiner zijn dan de intervalwaarde om er zeker van te zijn dat er niet tegelijkertijd meerdere exemplaren van het script worden uitgevoerd.
Threshold
int
$Config/Threshold$
Maximum aantal dagen sinds laatste geslaagde poging
Deze werkstroom gebruikt de waarde voor 'maximum aantal dagen sinds laatste geslaagde poging' als drempelwaarde om de status te bepalen. Stel in hoeveel dagen zonder voltooide partitionerings- en opschoonbewerking mogen verstrijken voordat dit als een probleem wordt beschouwd.
TimesBeforeAlert
int
$Config/TimesBeforeAlert$
Aantal steekproeven vóór waarschuwing
Het aantal steekproeven dat moet worden gewacht voordat de status van de monitor wordt gewijzigd in Waarschuwing.
'*************************************************************************
' $ScriptName: "GetSqlNativeClientComman" $
'
' Purpose: This script is used to get SQL native client Driver name.
'
' $File: GetSqlNativeClientComman.vbs $
'*************************************************************************
Option Explicit
Function GetSqlDriverName
Dim oAPI1, oReg
Const HKEY_LOCAL_MACHINE = &H80000002
Dim strComputer, strDriverPath, strKeyPath, intValue, strValueName,arrSubKeys,oSubkey,strNewKeyPath,intDotIndex
strComputer = "."
strDriverPath="SQLOLEDB"
Set oReg=GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each oSubkey In arrSubKeys
intValue = InStr(oSubkey, "SQL Server Native Client")
if intValue <> 0 Then
strValueName = "Driver"
strNewKeyPath = strKeyPath&"\"&oSubkey
oReg.GetStringValue HKEY_LOCAL_MACHINE, strNewKeyPath, strValueName , strDriverPath
strDriverPath = Mid (strDriverPath, InStrRev(strDriverPath, "\")+1)
intDotIndex = InStr(strDriverPath, ".")
strDriverPath = Left(strDriverPath , intDotIndex-1)
end if
Next
GetSqlDriverName = strDriverPath
End Function
'Copyright (c) Microsoft Corporation. All rights reserved.
'*************************************************************************
' $ScriptName: "PartitioningAndGroomingMonitor" $
'
' Purpose: This script checks for grooming and partiting processes.
'
' $File: PartitioningAndGroomingMonitor.vbs $
'*************************************************************************
'Declarations
Dim objCN,objRS,strQuery, strCountOfJobsSucceeded, strCountOfJobs
Dim oArgs,oAPI,oBag
Dim strDBServer,strDatabase
Dim strDaysLimitThreshold
Dim ObjError, strMessageToUse, strDriverName
Set ObjError = New Error
On Error Resume Next
'Set DB connection
Set objCN = CreateObject("ADODB.Connection")
strDriverName = GetSqlDriverName
objCN.Open "Provider=" & strDriverName & ";Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & _
strDatabase & ";Data Source=" & strDBServer & ""
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS TotalCount " & _
"FROM InternalJobHistory " & _
"WHERE Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strQuery = "SELECT Count(StatusCode) AS CountOfJobsSucceeded " & _
"FROM InternalJobHistory " & _
"WHERE TimeStarted BETWEEN " & _
"DATEADD(day, -" & strDaysLimitThreshold & ", GETUTCDATE()) " & _
"AND GETUTCDATE() " & _
"AND Command = 'Exec dbo.p_GroomPartitionedObjects and dbo.p_Grooming' " & _
"AND StatusCode = 1 "
'Query DB
Set objRS = objCN.Execute(strQuery)
ObjError.Save
On Error Goto 0
If ObjError.Number <> 0 Then
strMessageToUse = "Error Number: " & ObjError.number & " Error Details: " & ObjError.Description
call GetState(true, strMessageToUse, "0", "0", strDaysLimitThreshold)
WScript.Quit
End If
strMessageToUse = "Script executed with Process Succeed Count " & strCountOfJobsSucceeded & " from Total Process Count " & strCountOfJobs
call GetState(false, strMessageToUse, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
WScript.Quit
Sub GetState(strErrorFlag, strMessage, strCountOfJobs, strCountOfJobsSucceeded, strDaysLimitThreshold)
Set oBag = oAPI.CreatePropertyBag()
If strErrorFlag = true Then
Call oBag.AddValue("Error", strMessage)
End If
Public Sub Save()
m_lNumber = Err.number
m_sSource = Err.Source
m_sDescription = Err.Description
m_sHelpContext = Err.HelpContext
m_sHelpFile = Err.helpfile
End Sub
Public Sub Raise()
Err.Raise m_lNumber, m_sSource, m_sDescription, m_sHelpFile, m_sHelpContext
End Sub
Public Sub Clear()
m_lNumber = 0
m_sSource = ""
m_sDescription = ""
m_sHelpContext = ""
m_sHelpFile = ""
End Sub
Public Default Property Get Number()
Number = m_lNumber
End Property
Public Property Get Source()
Source = m_sSource
End Property
Public Property Get Description()
Description = m_sDescription
End Property
Public Property Get HelpContext()
HelpContext = m_sHelpContext
End Property