Invoke-SqlAssessment

Führt bewährte Methodenprüfungen der SQL-Bewertung für ein ausgewähltes SQL Server-Objekt aus und gibt deren Ergebnisse zurück.

Syntax

Invoke-SqlAssessment
      [-Check <Object[]>]
      [[-InputObject] <PSObject>]
      [-Configuration <PSObject>]
      [-MinSeverity <SeverityLevel>]
      [-FlattenOutput]
      [<CommonParameters>]

Beschreibung

Das Cmdlet Invoke-SqlAssessment führt eine Bewertung für jedes Eingabeobjekt aus und gibt eine Liste bewährter Methodenempfehlungen zurück, die auf die angegebenen Objekte angewendet werden sollen. Es liegt an Ihnen, die angegebenen Empfehlungen zu befolgen oder nicht. Weitere Informationen finden Sie in der Übersicht über die SQL-Bewertungs-API.

Dieses Cmdlet akzeptiert die folgenden Eingabetypen:

  • Microsoft.SqlServer.Management.Smo.Server
  • Microsoft.SqlServer.Management.Smo.Database
  • Microsoft.SqlServer.Management.Smo.AvailabilityGroup
  • Microsoft.SqlServer.Management.Smo.FileGroup
  • Microsoft.SqlServer.Management.Smo.RegisteredServers.RegisteredServer
  • Zeichenfolge, die den Pfad zu einem beliebigen Objekt der oben genannten Typen enthält
  • Auflistung von Objekten

Sie können Eingabeobjekte mit SqlServer-Cmdlets wie Get-SqlInstance und Get-SqlDatabase oder einfachen PowerShell-Cmdlets wie Get-Item und Get-ChildItem abrufen. Außerdem unterstützt das Cmdlet den SQL Server PowerShell-Anbieter, sodass es ein Objekt aus seinem Pfad abrufen kann. Der Pfad kann explizit übergeben werden, andernfalls wird der aktuelle Pfad verwendet.

Die Verfügbarkeit einer Überprüfung für ein ausgewähltes Objekt variiert je nach SQL Server Version, Plattform und Objekttyp. Außerdem gibt es Überprüfungen, die auf bestimmte Datenbanken wie tempdb oder abzielen master. Zusätzlich können Sie Überprüfungen nach Tags, Namen und Schweregrad mit den Parametern -MinSeverity und -Check filtern.

Mit dem Cmdlet Get-SqlAssessmentItem können Sie eine Liste der für das angegebene SQL Server-Objekt geltenden Überprüfungen abrufen.

Das Cmdlet führt nur Überprüfungen aus, die für ein Eingabeobjekt gelten. Datenbanküberprüfungen werden beispielsweise nicht für einen SQL Server instance oder eine Verfügbarkeitsgruppe ausgeführt, auch wenn sie in der Liste -Check angegeben werden.

Benutzerdefinierte Konfigurationen können mit dem Parameter -Configuration angewendet werden. Anpassungsbeispiele sind auf Github verfügbar.

HINWEIS. In der ersten öffentlichen Vorschauversion von Invoke-SqlAssessment wurden AssessmentNote-Objekte mit den Eigenschaften CheckId und CheckName zurückgegeben, die die ID von Check bzw. DisplayName enthalten. In der zweiten öffentlichen Vorschau wurden die beiden Eigenschaften durch eine einzelne Check-Eigenschaft ersetzt, die viel mehr Daten bereitstellt. Wenn $note ein von Invoke-SqlAssessment zurückgegebenes Objekt war, können Sie auf die ID von Check als $note.Check.Id anstelle von $note zugreifen. CheckId, oder check's description as $note. Check.Description. Sie können den -FlattenOutput-Parameter verwenden, um Ergebnisse im vorherigen Format mit CheckId und CheckName abzurufen. Dieser Parameter trägt auch dazu bei, die Kompatibilität mit einigen Cmdlets wie Write-SqlTableData beizubehalten. Weitere Informationen finden Sie in den Beispielen 12-14.

Die Ausgabe des Invoke-SqlAssessment-Cmdlets ist eine Liste der bewährten Methoden, die für jedes SQL Server-Objekt verletzt wurden. Verwenden Sie die Description-Eigenschaft , um mehr über die bewährte Methode und die Message-Eigenschaft zu erfahren, wie sie gelöst werden kann. Außerdem enthält jedes Überprüfungsergebnis einen Link zur Onlinedokumentation, mit dem Sie das Problem besser herausfinden können.

Unterstützung für SQL Server auf Azure-VMs

Mit SQL Assessment-Cmdlets können Sie eine instance von SQL Server auf azure-VMs bewerten, nicht nur als lokale SQL Server, sondern auch mit Regeln, die für SQL Server auf azure-VMs spezifisch sind (solche, die Informationen zur Konfiguration des virtuellen Computers verwenden). Die AzSqlVmSize-Regel überprüft beispielsweise, ob der virtuelle Computer, der eine instance SQL Server auf einem virtuellen Azure-Computer hostet, die empfohlene Größe hat.

Um solche Regeln zu verwenden, stellen Sie mit Azure PowerShell Module eine Verbindung mit Azure her, und stellen Sie sicher, dass das Az.ResourceGraph-Modul installiert ist.

Melden Sie sich mit Azure PowerShell an, bevor Sie die SQL-Bewertung für eine SQL Server auf azure-VM-instance aufrufen. Beispiel 16 zeigt den interaktiven Anmeldeprozess und die Abonnementauswahl.

HINWEIS. Es ist möglich, die Azure-Kontoverbindung zwischen PowerShell-Sitzungen dauerhaft zu verwenden, d. h. Connect-AzAccount in einer Sitzung aufzurufen und diesen Befehl später auszulassen. Die aktuelle Version von SQL Assessment-Cmdlets erfordert jedoch, dass das Az.ResourceGraph-Modul in diesem Fall explizit importiert wird: Import-Module Az.ResourceGraph

Beispiele

Beispiel 1: Aufrufen der Bewertung für lokale Standardeinstellungen instance

PS:> Get-SqlInstance -ServerInstance localhost | Invoke-SqlAssessment

   TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources.
...

In diesem Beispiel wird gezeigt, wie Sie alle Bewährten Methodenempfehlungen für die Standard-instance von SQL Server abrufen, die auf dem aktuellen Computer ausgeführt werden.

Beispiel 2: Aufrufen der Bewertung mit dem PSProvider-Cmdlet

PS:> Get-Item SQLSERVER:\SQL\localhost\default | Invoke-SqlAssessment

   TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources.
...

In diesem Beispiel wird gezeigt, wie Sie alle Empfehlungen zu bewährten Methoden für die Standard-instance von SQL Server abrufen.

Beispiel 3: Aufrufen der Bewertung mit dem PS-Anbieterpfad

PS:> Invoke-SqlAssessment SQLSERVER:\SQL\localhost\default

TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources.
...

In diesem Beispiel wird gezeigt, wie Sie alle Empfehlungen zu bewährten Methoden für die Standard-instance von SQL Server abrufen.

Beispiel 4: Aufrufen der Bewertung mit benutzerdefinierter Konfiguration

PS:> Get-SqlInstance -ServerInstance '(local)' | Invoke-SqlAssessment -Configuration C:\profileA.json, C:\profileB.json

TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.
Medi A custom rule violation detected.                                  CustomRuleA           Profile A 1.0
...

In diesem Beispiel wird gezeigt, wie Sie eine benutzerdefinierte Konfiguration anwenden, um einen geänderten Satz bewährter Empfehlungen zu erhalten. Benutzerdefinierte Konfigurationen werden in JSON-Dateien beschrieben. Benutzerdefinierte Regelsätze profileA.json und profileB.json haben einige Überprüfungen deaktiviert und einige neue Überprüfungen eingeführt. Bei einer der neuen Überprüfungen von profileA.json wurde ein Problem mit der aktuellen Konfiguration des SQL Server instance erkannt. Besuchen Sie den Sql Assessment Samples-Ordner auf Github, um zu erfahren, wie Anpassungen vorgenommen werden können.

Beispiel 5: Aufrufen der Bewertung für alle Instanzen

PS:> dir SQLSERVER:\SQL\localhost | Invoke-SqlAssessment

    TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources.

    TargetPath : Server[@Name='LOCAL\INSTANCE1']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Medi Product version 14.0.1000 is not the latest available. Keep your   LatestCU              Microsoft Ruleset 0.1.202
     your SQL Server up to date and install Service Packs and
     Cumulative Updates as they are released.
...

Dieses Beispiel zeigt, wie das Invoke-SqlAssessment-Cmdlet einen Satz von SQL Server-Instanzen über die Pipeline akzeptiert.

Beispiel 6: Ausführen der Bewertung für einen gefilterten Satz ot tragets

PS:> Get-SqlInstance -ServerInstance . | Where { $_.Name -Match '.*\d+' } | Invoke-SqlAssessment

    TargetPath : Server[@Name='LOCAL\INSTANCE1']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Medi Product version 14.0.1000 is not the latest available. Keep your   LatestCU              Microsoft Ruleset 0.1.202
     your SQL Server up to date and install Service Packs and
     Cumulative Updates as they are released.
...

Dieses Beispiel zeigt, wie das Invoke-SqlAssessment-Cmdlet einen Satz von SQL Server-Instanzen über die Pipeline akzeptiert. Der Satz wird mit dem PowerShell-Standard-Cmdlet Where-Object gefiltert.

Beispiel 7: Aufrufen der Bewertung für eine Datenbank nach Name

PS:> Get-SqlDatabase master -ServerInstance localhost | Invoke-SqlAssessment -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].

In diesem Beispiel wird gezeigt , wie das Cmdlet Invoke-SqlAssessment den Namen einer Datenbank akzeptiert. In diesem Fall wurde kein Problem gefunden.

Beispiel 8: Aufrufen der Bewertung für eine Datenbank nach Pfad

PS:> Invoke-SqlAssessment SQLSERVER:\SQL\localhost\default\Databases\master -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].

Dieses Beispiel zeigt, wie das Cmdlet Invoke-SqlAssessment den Pfad zu einer SQL Server Datenbank akzeptiert.

Beispiel 9: Erkennen hoher Probleme für eine Datenbank

PS:> cd SQLSERVER:\SQL\localhost\default\Databases\master
PS:> Invoke-SqlAssessment -MinSeverity High
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].

Dieses Beispiel zeigt das Cmdlet Invoke-SqlAssessment , das den aktuellen Speicherort bewertet. Es werden nur hohe Probleme gemeldet.

Beispiel 10: Ausführen von Überprüfungen, die nach Tag ausgewählt sind

PS:> Get-SqlInstance -ServerInstance . | Invoke-SqlAssessment -Check Backup -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [LOCAL].

Dieses Beispiel zeigt das Invoke-SqlAssessment-Cmdlet, das alle sicherungsbezogenen Überprüfungen für jede SQL Server instance auf dem lokalen Server ausführt.

Beispiel 11: Interaktiv ausgewählte Überprüfungen ausführen

PS:> $serverInstance = Get-SqlInstance -ServerInstance '(local)'
PS:> $checks = Get-SqlAssessmentItem $serverInstance | Select Name, Description | Out-GridView -PassThru
PS:> Invoke-SqlAssessment $serverInstance -Check $checks

    TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID               Origin               
---- -------                                                            --------               ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                  Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                     
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures     Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.

Die zweite Zeile dieses Beispiels zeigt das Abrufen von Überprüfungen für eine $serverInstance und die interaktive Auswahl einiger dieser Überprüfungen. Ausgewählte Elemente werden in einer Arrayvariablen gespeichert, die dann als Eingabe für das Invoke-SqlAssessment-Cmdlet verwendet wird. Während des Bewertungsprozesses werden nur ausgewählte Überprüfungen ausgeführt.

Beispiel 12: Auswirkung des -FlattenOutput-Parameters

PS> $inst = Get-SqlInstance -ServerInstance . 
PS> Invoke-SqlAssessment $inst -FlattenOutput | Select -First 1 | Get-Member


   TypeName: Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNoteFlat

Name           MemberType Definition                    
----           ---------- ----------                    
Equals         Method     bool Equals(System.Object obj)
GetHashCode    Method     int GetHashCode()             
GetType        Method     type GetType()                
ToString       Method     string ToString()             
CheckId        Property   string CheckId {get;}         
CheckName      Property   string CheckName {get;}       
HelpLink       Property   string HelpLink {get;}        
Message        Property   string Message {get;}         
RulesetName    Property   string RulesetName {get;}     
RulesetVersion Property   string RulesetVersion {get;}  
Severity       Property   string Severity {get;}        
TargetPath     Property   string TargetPath {get;}      
TargetType     Property   string TargetType {get;}      


PS> Invoke-SqlAssessment $inst | Select -First 1 | Get-Member


   TypeName: Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNote

Name        MemberType Definition                                                             
----        ---------- ----------                                                             
Equals      Method     bool Equals(System.Object obj)                                         
GetHashCode Method     int GetHashCode()                                                      
GetType     Method     type GetType()                                                         
ToString    Method     string ToString()                                                      
Check       Property   Microsoft.SqlServer.Management.Assessment.Checks.ICheck Check {get;}   
HelpLink    Property   string HelpLink {get;}                                                 
Message     Property   string Message {get;}                                                  
Severity    Property   Microsoft.SqlServer.Management.Assessment.SeverityLevel Severity {get;}
TargetPath  Property   string TargetPath {get;}                                               
TargetType  Property   string TargetType {get;}

PS> (Invoke-SqlAssessment $inst | Select -First 1).Check | Get-Member


   TypeName: Microsoft.SqlServer.Management.Assessment.Checks.Check

Name          MemberType Definition                                                                                                                                     
----          ---------- ----------                                                                                                                                     
Equals        Method     bool Equals(System.Object obj)                                                                                                                 
GetHashCode   Method     int GetHashCode()                                                                                                                              
GetType       Method     type GetType()                                                                                                                                 
ToString      Method     string ToString()                                                                                                                              
Condition     Property   Microsoft.SqlServer.Management.Assessment....
Description   Property   string Description {get;set;}                                                                                                                  
DisplayName   Property   string DisplayName {get;set;}                                                                                                                  
Enabled       Property   bool Enabled {get;set;}                                                                                                                        
HelpLink      Property   string HelpLink {get;set;}                                                                                                                     
Id            Property   string Id {get;set;}                                                                                                                           
Level         Property   Microsoft.SqlServer.Management.Assessment....
Message       Property   string Message {get;set;}                                                                                                                      
OriginName    Property   string OriginName {get;set;}                                                                                                                   
OriginVersion Property   version OriginVersion {get;set;}                                                                                                               
Parameters    Property   System.Collections.Generic.IDictionary[str...
Probes        Property   System.Collections.Generic.List[Microsoft....
Tags          Property   System.Collections.Generic.HashSet[string]...
Target        Property   Microsoft.SqlServer.Management.Assessment....

Dieses Beispiel zeigt den Unterschied zwischen Objekten, die mit oder ohne -FlattenOutput-Parameter zurückgegeben werden. Der Parameter ersetzt ein riesiges komplexes Check-Objekt durch die zwei Zeichenfolgeneigenschaften CheckId und CheckName. Dies ist für Serialisierungszwecke nützlich (siehe nächstes Beispiel).

Der erste Befehl zeigt ein einfaches Objekt mit allen Eigenschaften vom Typ Zeichenfolge an.

Der zweite Befehl zeigt ein weiteres Objekt mit zwei Nicht-Zeichenfolgeneigenschaften: Check und Severity.

Der dritte Befehl zeigt den umfangreichen Datensatz, auf den mit der Check-Eigenschaft zugegriffen werden kann.

Beispiel 13: Erneutes Ausführen fehlgeschlagener Überprüfungen

PS> $inst = Get-SqlInstance -ServerInstance .
PS> $results = Invoke-SqlAssessment $inst
PS> $results

   TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources. 

PS> $results[1].Check.Description
This check detects deprecated or discontinued features used on target SQL Server instance. Deprecated features may be 
removed in a future release of SQL Server. Discontinued features have been removed from specific versions of SQL Server.

PS> Invoke-SqlAssessment $inst -Check $results[1].Check
   
   TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------                                                                                      
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000. 

PS> Invoke-SqlAssessment $inst -Check ($results).Check

   TargetPath : Server[@Name='LOCAL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Info Enable trace flag 834 to use large-page allocations to improve     TF834                 Microsoft Ruleset 0.1.202
     analytical and data warehousing workloads.                                                                         
Low  Detected deprecated or discontinued feature uses: String literals  DeprecatedFeatures    Microsoft Ruleset 0.1.202
     as column aliases, syscolumns, sysusers, SET FMTONLY ON, XP_API,                                                   
     Table hint without WITH, More than two-part column name. We                                                        
     recommend to replace them with features actual for SQL Server                                                      
     version 14.0.1000.                                                                                      
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources.

Dieses Beispiel zeigt, wie ein mit Bewertungsergebnissen zurückgegebener Check wiederverwendet werden kann. Sie können die Überprüfungen erneut ausführen, die Zuvor AssessmentNotes erstellt haben.

Beispiel 14: Speichern von Bewertungsergebnissen in einer Tabelle

PS:> $serverInstance = Get-SqlInstance -ServerInstance '(local)'
PS:> Invoke-SqlAssessment $serverInstance -FlattenOutput | 
     Write-SqlTableData -ServerInstance localhost -DatabaseName SqlAssessment -SchemaName Assessment -TableName Results -Force

Die zweite Zeile dieses Beispiels zeigt die Verwendung des Parameters -FlattenOutput mit Write-SqlTableData Cmdlet zum Speichern von Bewertungsergebnissen in einer SQL-Datenbank.

Beispiel 15: Explizite Angabe von Anmeldeinformationen

PS> $cred = Get-Credential

PowerShell credential request
Enter your credentials.
User: Administrator
Password for user Administrator: ********

PS> $inst = Get-SqlInstance -ServerInstance 10.0.3.118 -Credential $cred
PS> Invoke-SqlAssessment $inst

   TargetPath : Server[@Name='ContosSQL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources

In diesem Beispiel wird gezeigt, wie Sie die SQL-Bewertung mit explizit angegebenen Anmeldeinformationen aufrufen.

Beispiel 16: Aufrufen der Bewertung für einen SQL Server auf azure-VM-instance

PS> Connect-AzAccount
PS> Set-Subscription My-Pay-As-You-Go
PS> $cred = Get-Credential

PowerShell credential request
Enter your credentials.
User: Administrator
Password for user Administrator: ********

PS> $inst = Get-SqlInstance -ServerInstance 10.0.3.118 -Credential $cred
PS> Invoke-SqlAssessment $inst

   TargetPath : Server[@Name='ContosoAzureSQL']

Sev. Message                                                            Check ID              Origin               
---- -------                                                            --------              ------               
Medi Amount of single use plans in cache is high (100%). Consider       PlansUseRatio         Microsoft Ruleset 0.1.202
     enabling the Optimize for ad hoc workloads setting on heavy OLTP                                                   
     ad-hoc workloads to conserve resources 
Info Use memory optimized virtual machine sizes for the best            AzSqlVmSize           Microsoft Ruleset 0.1.202 
     performance of SQL Server workloads

In diesem Beispiel wird gezeigt, wie Sie die Bewertung für eine SQL Server auf azure-VM-instance aufrufen.

Eine aktive Azure-Abonnementverbindung ermöglicht SQL Server auf Azure-VM-bezogenen Überprüfungen (in diesem Beispiel AzSqlVmSize). Die erste Zeile stellt eine Verbindung mit einem Azure-Konto her, um Daten aus Azure Resource Graph abzurufen. Die zweite Zeile ist optional.

Zum Ausführen dieser Überprüfungen erfordert die SQL-Bewertung das Modul Az.ResourceGraph.

Parameter

-Check

Mindestens eine Überprüfung, Überprüfungs-IDs oder Tags.

Für jedes Überprüfungsobjekt wird Invoke-SqlAssessment ausgeführt, um zu überprüfen, ob das Eingabeobjekt unterstützt wird.

Für jede Überprüfungs-ID führt Invoke-SqlAssessment die entsprechende Überprüfung aus, wenn sie das Eingabeobjekt unterstützt.

Für Tags führt Invoke-SqlAssessment Überprüfungen mit einem dieser Tags aus.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Configuration

Gibt Pfade zu Dateien an, die benutzerdefinierte Konfiguration enthalten. Anpassungsdateien werden in der angegebenen Reihenfolge auf die Standardkonfiguration angewendet. Der Bereich ist nur auf diesen Cmdletaufruf beschränkt.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FlattenOutput

Gibt an, dass dieses Cmdlet einfache Objekte vom Typ Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNoteFlat anstelle von Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNote erzeugt.

Reguläre BewertungNote, die von Invoke-SqlAssessment zurückgegeben wird, enthält Verweise auf andere nützliche komplexe Objekte wie Check (siehe Beispiel 12). Mit der Check-Eigenschaft können Sie die Beschreibung der Überprüfung abrufen oder die Überprüfung wiederverwenden (siehe Beispiel 13). Einige Cmdlets unterstützen jedoch keine komplexen Eigenschaften. Beispielsweise löst Write-SqlTableData beim Schreiben von AssessmentNote in eine Datenbank einen Fehler aus. Um dies zu vermeiden, können Sie den Parameter -FlattenOutput verwenden, um die Check-Eigenschaft durch zwei einfache Zeichenfolgen zu ersetzen: CheckId und CheckName (siehe Beispiel 14).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt ein SQL Server-Objekt oder den Pfad zu einem solchen Objekt an. Das Cmdlet führt die Bewertung für dieses Objekt aus. Wenn dieser Parameter weggelassen wird, wird der aktuelle Speicherort als Eingabeobjekt verwendet. Wenn der aktuelle Speicherort kein SQL Server-Objekt unterstützt wird, signalisiert das Cmdlet einen Fehler.

Type:PSObject
Aliases:Target
Position:10
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MinSeverity

Gibt den minimalen Schweregrad für zu findende Überprüfungen an. Beispielsweise werden Die Überprüfungen der Ebenen "Niedrig", "Mittel" oder "Information" nicht zurückgegeben, wenn "-MinSeverity High".

Type:SeverityLevel
Aliases:Severity
Accepted values:Information, Low, Medium, High
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

System.String[]

Microsoft.SqlServer.Management.Smo.SqlSmoObject[]

Ausgaben

Microsoft.SqlServer.Assessment.Cmdlets.AssessmentNote