Bagikan melalui


Get-SqlAssessmentItem

Mendapatkan pemeriksaan praktik terbaik Penilaian SQL yang tersedia untuk objek SQL Server yang dipilih.

Sintaks

Get-SqlAssessmentItem
   [-Check <String[]>]
   [[-InputObject] <PSObject>]
   [-Configuration <PSObject>]
   [-MinSeverity <SeverityLevel>]
   [-FlattenOutput]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Deskripsi

cmdlet Get-SqlAssessmentItem menemukan semua pemeriksaan praktik terbaik yang tersedia untuk setiap objek input. Untuk informasi selengkapnya, lihat gambaran umum SQL Assessment API.

Cmdlet ini menerima jenis input berikut:

  • 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
  • String yang berisi jalur ke objek apa pun dari jenis di atas
  • Kumpulan objek

Anda bisa mendapatkan objek input dengan cmdlet SqlServer seperti Get-SqlInstance dan Get-SqlDatabase atau PowerShell dasar
cmdlet seperti Get-Item dan Get-ChildItem. Selain itu, cmdlet mendukung penyedia PowerShell SQL Server, sehingga dapat memperoleh objek dari jalurnya. Jalur dapat dilewati secara eksplisit, jika tidak, jalur saat ini akan digunakan.

Ketersediaan pemeriksaan untuk objek yang dipilih bervariasi pada versi, platform, dan jenis objek SQL Server. Selain itu, ada pemeriksaan yang menargetkan database tertentu seperti tempdb atau master. Anda juga dapat memfilter pemeriksaan menurut tag, nama, dan tingkat keparahan dengan parameter -MinSeverity dan -Periksa.

Dengan cmdlet Get-SqlAssessmentItem , Anda bisa mendapatkan daftar pemeriksaan yang berlaku untuk objek SQL Server yang diberikan. Selain itu, Anda dapat menggunakan output cmdlet ini sebagai argumen -Check untuk cmdlet Invoke-SqlAssessment.

Konfigurasi kustom dapat diterapkan dengan parameter -Configuration. Contoh kustomisasi tersedia di Github.

Dukungan SQL Server di Azure VM

Dengan cmdlet Penilaian SQL, Anda dapat menilai instans SQL Server di Azure VM tidak hanya sebagai SQL Server lokal, tetapi juga dengan aturan yang khusus untuk SQL Server di Azure VM (yang menggunakan informasi tentang konfigurasi komputer virtual). Misalnya, aturan AzSqlVmSize memeriksa bahwa VM yang menghosting instans SQL Server di Azure VM berukuran direkomendasikan.

Untuk menggunakan aturan tersebut, sambungkan ke Azure dengan Modul Azure PowerShell dan pastikan modul Az.ResourceGraph diinstal.

Masuk dengan Azure PowerShell sebelum memanggil Penilaian SQL terhadap SQL Server pada instans Azure VM. Contoh 13 menunjukkan proses masuk interaktif dan pilihan langganan.

NOTA. Dimungkinkan untuk menggunakan koneksi akun Azure yang bertahan di antara sesi PowerShell, yaitu memanggil Connect-AzAccount dalam satu sesi dan menghilangkan perintah ini nanti. Namun, versi cmdlet Penilaian SQL saat ini membutuhkan modul Az.ResourceGraph untuk diimpor secara eksplisit dalam hal ini: Import-Module Az.ResourceGraph

Contoh

Contoh 1: Dapatkan pemeriksaan untuk instans default lokal

PS:> Get-SqlInstance -ServerInstance 'localhost' | Get-SqlAssessmentItem

   Target: [LOCAL]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
TF1204                         True    TF 1204 returns deadlock information     Microsoft Ruleset 0.1.202               
BlackboxTrace                  True    Blackbox trace is configured and running Microsoft Ruleset 0.1.202               
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202               
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202            
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202             
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202  
...

Contoh ini mendapatkan semua pemeriksaan yang tersedia untuk instans default SQL Server yang berjalan pada komputer saat ini.

Contoh 2: Dapatkan pemeriksaan dengan cmdlet Get-Item

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

   Target: [LOCAL]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
TF1204                         True    TF 1204 returns deadlock information     Microsoft Ruleset 0.1.202               
BlackboxTrace                  True    Blackbox trace is configured and running Microsoft Ruleset 0.1.202               
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202               
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202               
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202               
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202  
...

Contoh ini mendapatkan semua pemeriksaan yang tersedia untuk instans default SQL Server yang berjalan pada komputer saat ini.

Contoh 3: Dapatkan pemeriksaan dengan jalur ke objek target

PS:> Get-SqlAssessmentItem SQLSERVER:\SQL\localhost\default

   Target: [LOCAL]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
TF1204                         True    TF 1204 returns deadlock information     Microsoft Ruleset 0.1.202                   
BlackboxTrace                  True    Blackbox trace is configured and running Microsoft Ruleset 0.1.202                   
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202                   
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202                   
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202                   
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202  
...

Contoh ini mendapatkan semua pemeriksaan yang tersedia untuk instans default SQL Server yang berjalan pada komputer saat ini.

Contoh 4: Dapatkan pemeriksaan dengan konfigurasi kustom yang diterapkan

PS:> Get-SqlDatabase master -ServerInstance . |
     Get-SqlAssessmentItem -Configuration C:\rulesetA.json, D:\rulesetB.json

   Target: [LOCAL]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
TF1204                         False   TF 1204 returns deadlock information     Microsoft Ruleset 0.1.202                   
BlackboxTrace                  True    Blackbox trace is configured and running Microsoft Ruleset 0.1.202                   
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202                   
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202                   
TempDBFilesAutoGrowth          False   Some TempDB data files have different... Microsoft Ruleset 0.1.202                   
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202                   
SomeCustomCheck                True    Some custom check                        Ruleset A 1.0                           
AnotherCustomCheck             True    Another custom check                     Ruleset B 1.0
...

Contoh ini mendapatkan semua pemeriksaan yang tersedia dengan konfigurasi kustom yang diterapkan yang diperoleh dari file JSON tertentu. Kunjungi folder sampel Penilaian SQL di Github untuk mengetahui cara membuat penyesuaian.

Contoh 5: Dapatkan pemeriksaan untuk semua instans di localhost

PS:> Get-SqlInstance -ServerInstance localhost | Get-SqlAssessmentItem

   Target: [LOCAL]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
TF1204                         True    TF 1204 returns deadlock information     Microsoft Ruleset 0.1.202               
BlackboxTrace                  True    Blackbox trace is configured and running Microsoft Ruleset 0.1.202               
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202

   Target: [LOCAL\INSTANCE1]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202             
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202               
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202               
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202
...

Contoh ini menunjukkan cmdlet Get-SqlAssessmentItem menerima serangkaian instans SQL Server melalui alur.

Contoh 6: Dapatkan pemeriksaan untuk semua instans dengan nama yang diakhir dengan angka

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

   Target: [LOCAL\INSTANCE1]

ID                             ON      Name                                     Origin                                  
--                             --      ----                                     ------                                  
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202               
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202             
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202               
CpuUtil90                      True    CPU usage over 90%                       Microsoft Ruleset 0.1.202
...

Contoh ini menunjukkan cmdlet Get-SqlAssessmentItem menerima serangkaian instans SQL Server melalui alur. Hanya instans yang memiliki nama yang diakhir dengan digit yang diproses.

Contoh 7: Mendapatkan pemeriksaan untuk database menurut jalur

PS:> Get-SqlAssessmentItem SQLSERVER:\SQL\localhost\default\Databases\master


   TargetObject: [master]

ID                             ON      Name                                     Origin                    
--                             --      ----                                     ------                    
AutoCreateStats                True    Auto-Create Statistics should be on      Microsoft Ruleset 0.1.202 
HintsUsageInModules            False   Hints usage in modules                   Microsoft Ruleset 0.1.202 
FullBackup                     True    Full backup is missed or outdated        Microsoft Ruleset 0.1.202 
DuplicateIndexes               True    Duplicate Indexes                        Microsoft Ruleset 0.1.202 
RedundantIndexes               True    Redundant Indexes                        Microsoft Ruleset 0.1.202 
...

Contoh ini memperlihatkan cmdlet Get-SqlAssessmentItem menerima jalur ke database SQL Server.

Contoh 8: Mendapatkan pemeriksaan tingkat keparahan tinggi untuk database

PS:> cd SQLSERVER:\SQL\localhost\default\Databases\master
PS:> Get-SqlAssessmentItem -MinSeverity High

Contoh ini memperlihatkan Get-SqlAssessmentItem mengembalikan pemeriksaan yang tersedia dengan tingkat keparahan tinggi untuk database master. Ini menerima lokasi penyedia PowerShell saat ini sebagai target.

Contoh 9: Mendapatkan pemeriksaan tingkat keparahan tinggi untuk database

PS:> $db = Get-SqlDatabase master -ServerInstance localhost
PS:> Get-SqlAssessmentItem $db -MinSeverity High

Contoh ini memperlihatkan Get-SqlAssessmentItem mengembalikan pemeriksaan yang tersedia dengan tingkat keparahan tinggi untuk database master.

Contoh 10: Dapatkan pemeriksaan menurut tag

PS:> Get-SqlDatabase -ServerInstance . | Get-SqlAssessmentItem -Check Backup


   TargetObject: [master]

ID                             ON      Name                                     Origin                    
--                             --      ----                                     ------                    
FullBackup                     True    Full backup is missed or outdated        Microsoft Ruleset 0.1.202 


   TargetObject: [msdb]

ID                             ON      Name                                     Origin                    
--                             --      ----                                     ------                    
FullBackup                     True    Full backup is missed or outdated        Microsoft Ruleset 0.1.202

Contoh ini menunjukkan cmdlet Get-SqlAssessmentItem mengembalikan semua pemeriksaan terkait cadangan untuk semua database pada instans SQL Server lokal default.

Contoh 11: Jalankan pemeriksaan yang dipilih secara interaktif

PS:> $serverInstance = Get-SqlInstance -ServerInstance '(local)'
PS:> $checks = Get-SqlAssessmentItem $serverInstance | Select Id, 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.

Baris kedua dari contoh ini menunjukkan mendapatkan pemeriksaan untuk $serverInstance, dan memilih beberapa di antaranya secara interaktif. Item yang dipilih disimpan dalam variabel array, yang kemudian dapat digunakan sebagai input untuk cmdlet Invoke-SqlAssessment . Dalam hal ini, hanya pemeriksaan yang dipilih yang akan berjalan selama proses penilaian.

Contoh 12: Tentukan kredensial secara eksplisit

PS> $cred = Get-Credential

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

PS> $db = Get-SqlDatabase master -ServerInstance 10.0.3.118 -Credential $cred
PS> Get-SqlAssessmentItem $db

   TargetObject: [master]

ID                             ON      Name                                     Origin                    
--                             --      ----                                     ------                    
AutoCreateStats                True    Auto-Create Statistics should be on      Microsoft Ruleset 0.1.202 
FullBackup                     True    Full backup is missed or outdated        Microsoft Ruleset 0.1.202 
DuplicateIndexes               True    Duplicate Indexes                        Microsoft Ruleset 0.1.202 
RedundantIndexes               True    Redundant Indexes                        Microsoft Ruleset 0.1.202 
...

Contoh ini menunjukkan cara mendapatkan daftar pemeriksaan Penilaian SQL dengan kredensial yang ditentukan secara eksplisit.

Contoh 13: Dapatkan daftar aturan Penilaian SQL untuk SQL Server pada instans Azure VM

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> Get-SqlAssessmentItem $inst

   TargetObject: [ContosoAzureSql]

ID                             ON      Name                                     Origin                    
--                             --      ----                                     ------                    
HintsStatistics                True    Hints are being used                     Microsoft Ruleset 0.1.202               
PlansUseRatio                  True    Amount of single use plans in cache i... Microsoft Ruleset 0.1.202             
TempDBFilesAutoGrowth          True    Some TempDB data files have different... Microsoft Ruleset 0.1.202 
AzSqlVmSize                    True    VM size is not memory-optimized          Microsoft Ruleset 0.1.202 
...

Contoh ini menunjukkan cara mendapatkan daftar aturan yang berlaku untuk SQL Server tertentu pada instans Azure VM.

Koneksi langganan Azure aktif memungkinkan pemeriksaan terkait Azure (AzSqlVmSize dalam contoh ini). Baris pertama tersambung ke akun Azure untuk mendapatkan data dari Azure Resource Graph. Baris kedua bersifat opsional.

Untuk menjalankan pemeriksaan ini, Penilaian SQL memerlukan modul Az.ResourceGraph.

Parameter

-Check

Satu atau beberapa pemeriksaan, periksa ID, atau tag.

Untuk setiap objek pemeriksaan, Get-SqlAssessmentItem mengembalikan yang memeriksa apakah mendukung objek input.

Untuk setiap ID pemeriksaan, Get-SqlAssessmentItem mengembalikan pemeriksaan yang sesuai apakah mendukung objek input.

Untuk tag, Get-SqlAssessmentItem mengembalikan pemeriksaan dengan salah satu tag tersebut.

Jenis:String[]
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-Configuration

Menentukan jalur ke file yang berisi konfigurasi kustom. File kustomisasi akan diterapkan ke konfigurasi default dalam urutan yang ditentukan. Cakupan terbatas pada pemanggilan cmdlet ini saja.

Jenis:PSObject
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-FlattenOutput

Menunjukkan bahwa cmdlet ini menghasilkan objek sederhana jenis Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNoteFlat alih-alih Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNote.

Jenis:SwitchParameter
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-InputObject

Menentukan objek SQL Server atau jalur ke objek tersebut. Cmdlet mengembalikan pemeriksaan yang sesuai untuk objek ini. Ketika parameter ini dihilangkan, lokasi saat ini digunakan sebagai objek input. Jika lokasi saat ini bukan objek SQL Server yang didukung, cmdlet memberi sinyal kesalahan.

Jenis:PSObject
Alias:Target
Position:10
Nilai default:None
Diperlukan:False
Terima input alur:True
Terima karakter wildcard:False

-MinSeverity

Menentukan tingkat keparahan minimum untuk pemeriksaan yang akan ditemukan. Misalnya, pemeriksaan tingkat Sedang, Rendah, atau Informasi tidak akan dikembalikan saat -MinSeverity Tinggi.

Jenis:SeverityLevel
Alias:Severity
Nilai yang diterima:Information, Low, Medium, High
Position:Named
Nilai default:Information
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

-ProgressAction

Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.

Jenis:ActionPreference
Alias:proga
Position:Named
Nilai default:None
Diperlukan:False
Terima input alur:False
Terima karakter wildcard:False

Input

System.String[]

Microsoft.SqlServer.Management.Smo.SqlSmoObject[]

Output

Microsoft.SqlServer.Management.Assessment.ICheck