Freigeben über


Invoke-SqlAssessment

Führt die bewährte Methode der SQL-Bewertung nach einem ausgewählten SQL Server-Objekt aus und gibt deren Ergebnisse zurück.

Syntax

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

Beschreibung

Das Cmdlet Invoke-SqlAssessment Cmdlet führt eine Bewertung für jedes Eingabeobjekt aus und gibt eine Liste der Empfehlungen für bewährte Methoden zurück, die auf die angegebenen Objekte angewendet werden sollen. Es liegt an Ihnen, den gegebenen Empfehlungen zu folgen oder nicht. Weitere Informationen finden Sie in der übersicht über die SQL Assessment 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 Pfad zu einem beliebigen Objekt der obigen 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 masterabzielen. Darüber hinaus können Sie Überprüfungen nach Tags, Namen und Schweregrad mit den Parametern -MinSeverity und -Check filtern.

Mit Get-SqlAssessmentItem-Cmdlet können Sie eine Liste der Prüfungen abrufen, die für das angegebene SQL Server-Objekt gelten.

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

Benutzerdefinierte Konfigurationen können mit dem parameter -Configuration angewendet werden. Anpassungsbeispiele sind auf Githubverfügbar.

ANMERKUNG. In der ersten öffentlichen Vorschau Invoke-SqlAssessment zurückgegebene AssessmentNote-Objekte mit den Eigenschaften CheckId und CheckName, die die ID bzw. displayName enthalten. In der zweiten öffentlichen Vorschau wurden die beiden Eigenschaften durch eine einzelne Check-Eigenschaft ersetzt, die viel mehr Daten bereitstellt. Angenommen, $note ein Objekt war, das von Invoke-SqlAssessmentzurückgegeben wurde, können Sie auf die ID der Überprüfung als $note.Check.Id anstelle von $note zugreifen. CheckId oder die Beschreibung der Überprüfung als $note. Check.Description. Sie können -FlattenOutput Parameter verwenden, um Ergebnisse im vorherigen Format mit CheckId und CheckName abzurufen. Dieser Parameter hilft auch, die Kompatibilität mit einigen Cmdlets wie Write-SqlTableData-beizubehalten. Weitere Informationen finden Sie in den Beispielen 12-14.

Die Ausgabe des Cmdlets "Invoke-SqlAssessment" Cmdlets ist eine Liste verletzter bewährter Methoden für jedes sql Server-Objekt. Verwenden Sie Description-Eigenschaft, um mehr über die bewährte Methode und Message-Eigenschaft zu erfahren, wie sie gelöst werden kann. Außerdem enthält jedes Prüfergebnis einen Link zur Onlinedokumentation, die Ihnen dabei hilft, das Problem besser zu ermitteln.

Unterstützung von SQL Server auf Azure-VM

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

Um solche Regeln zu verwenden, stellen Sie eine Verbindung mit Azure mit Azure PowerShell-Modul 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-Instanz in Azure VM aufrufen. Beispiel 16 zeigt den interaktiven Anmeldevorgang und die Abonnementauswahl.

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

Beispiele

Beispiel 1: Aufrufen der Bewertung für lokale Standardinstanz

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.
...

Dieses Beispiel zeigt, wie Sie alle Empfehlungen für bewährte Methoden für die Standardinstanz von SQL Server abrufen, die auf dem aktuellen Computer ausgeführt wird.

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 für bewährte Methoden für die Standardinstanz 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 für bewährte Methoden für die Standardinstanz 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 von Empfehlungen für bewährte Methoden zu erhalten. Benutzerdefinierte Konfigurationen werden in JSON-Dateien beschrieben. Benutzerdefinierte Regelsätze profileA.json und profileB.json einige Überprüfungen deaktiviert und einige neue eingeführt. Eine der neuen Überprüfungen von profileA.json hat ein Problem mit der aktuellen Konfiguration der SQL Server-Instanz festgestellt. Besuchen Sie Sql Assessment-Beispielordner auf Github, um herauszufinden, wie Anpassungen vorgenommen werden.

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 Invoke-SqlAssessment Cmdlet, das eine Reihe von SQL Server-Instanzen über pipeline akzeptiert.

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

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 Invoke-SqlAssessment Cmdlet, das eine Reihe von SQL Server-Instanzen über pipeline akzeptiert. Der Satz wird mit dem standardmäßigen PowerShell-Where-Object-Cmdlet gefiltert.

Beispiel 7: Aufrufen der Bewertung für eine Datenbank anhand des Namens

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

Dieses Beispiel zeigt Invoke-SqlAssessment Cmdlet, das 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 Invoke-SqlAssessment Cmdlet, das den Pfad zu einer SQL Server-Datenbank akzeptiert.

Beispiel 9: Erkennen von hohen Problemen 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 Invoke-SqlAssessment Cmdlet, 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 Invoke-SqlAssessment Cmdlet, das alle Sicherungsüberprüfungen für jede SQL Server-Instanz auf dem lokalen Server ausführt.

Beispiel 11: Ausführen interaktiv ausgewählter Prüfungen

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.

In der zweiten Zeile dieses Beispiels wird das Abrufen von Überprüfungen für eine $serverInstance und die interaktive Auswahl einiger davon veranschaulicht. Ausgewählte Elemente werden in einer Arrayvariablen gespeichert, die dann als Eingabe für Invoke-SqlAssessment Cmdlet verwendet wird. Nur ausgewählte Prüfungen werden während des Bewertungsprozesses 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 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 des Typs Zeichenfolge an.

Der zweite Befehl zeigt ein weiteres Objekt mit zwei Eigenschaften ohne Zeichenfolge an: Überprüfung und Schweregrad.

Der dritte Befehl zeigt den umfangreichen Satz von Daten, auf die mit der Check-Eigenschaft zugegriffen werden kann.

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

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.

In diesem Beispiel wird gezeigt, wie eine mit Bewertungsergebnissen zurückgegebene Überprüfung wiederverwendet werden kann. Sie können die Prüfungen, die zuvor AssessmentNotes erstellt haben, erneut ausführen.

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 -FlattenOutput Parameters 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 Die SQL-Bewertung mit explizit angegebenen Anmeldeinformationen aufgerufen wird.

Beispiel 16: Aufrufen der Bewertung für eine SQL Server auf einer Azure-VM-Instanz

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-Instanz auf einer Azure-VM-Instanz aufrufen.

Eine aktive Azure-Abonnementverbindung aktiviert SQL Server auf azure VM-bezogenen Prüfungen (AzSqlVmSize in diesem Beispiel). 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 Prüfungen erfordert das SQL-Bewertungsmodul Az.ResourceGraph.

Parameter

-Check

Mindestens eine Überprüfung, überprüfung von IDs oder Tags.

Für jedes Überprüfungsobjekt wird Invoke-SqlAssessment ausgeführt, die überprüft, ob es das Eingabeobjekt unterstützt.

Für jede Prüf-ID wird Invoke-SqlAssessment die entsprechende Überprüfung ausführen, wenn sie das Eingabeobjekt unterstützt.

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

Typ:Object[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Configuration

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

Typ:PSObject
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-FlattenOutput

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

Reguläre AssessmentNote, 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 Prüfung abrufen oder die Überprüfung wiederverwenden (siehe Beispiel 13). Einige Cmdlets unterstützen jedoch keine komplexen Eigenschaften. Beispielsweise löst Write-SqlTableData beim Versuch, AssessmentNote in eine Datenbank zu schreiben, einen Fehler aus. Um dies zu vermeiden, können Sie -FlattenOutput Parameter verwenden, um die Check-Eigenschaft durch zwei einfache Zeichenfolgen zu ersetzen: CheckId und CheckName (siehe Beispiel 14).

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 nicht angegeben wird, wird die aktuelle Position als Eingabeobjekt verwendet. Wenn der aktuelle Speicherort kein unterstütztes SQL Server-Objekt ist, signalisiert das Cmdlet einen Fehler.

Typ:PSObject
Aliase:Target
Position:10
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-MinSeverity

Gibt den Mindestschweregrad für zu findende Prüfungen an. Beispielsweise werden Überprüfungen der Ebenen "Niedrig", "Mittel" oder "Informationen" nicht zurückgegeben, wenn -MinSeverity "Hoch" zurückgegeben werden.

Typ:SeverityLevel
Aliase:Severity
Zulässige Werte:Information, Low, Medium, High
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ProgressAction

Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die von einem Skript, Cmdlet oder Anbieter generiert werden, z. B. auf die Statusanzeigen, die vom Cmdlet Write-Progress generiert werden. Das Cmdlet Write-Progress erstellt Statusanzeigen, die den Status eines Befehls anzeigen.

Typ:ActionPreference
Aliase:proga
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

System.String[]

Microsoft.SqlServer.Management.Smo.SqlSmoObject[]

Ausgaben

Microsoft.SqlServer.Assessment.Cmdlets.AssessmentNote