Get-SqlAssessmentItem
Mendapatkan pemeriksaan praktik terbaik Penilaian SQL yang tersedia untuk objek SQL Server yang dipilih.
Sintaks
Default (Default)
Get-SqlAssessmentItem
[-Check <String[]>]
[[-InputObject] <PSObject>]
[-Configuration <PSObject>]
[-MinSeverity <SeverityLevel>]
[-FlattenOutput]
[<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 cmdlet PowerShell dasar 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 kustomisasi.
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 yang 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 yang 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 yang 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 yang 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 objek input 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.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-FlattenOutput
Menunjukkan bahwa cmdlet ini menghasilkan objek sederhana jenis Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNoteFlatalih-alih Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNote.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Sasaran |
Set parameter
(All)
| Position: | 10 |
| Wajib: | False |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-MinSeverity
Menentukan tingkat keparahan minimum untuk pemeriksaan yang akan ditemukan. Misalnya, pemeriksaan tingkat Sedang, Rendah, atau Informasi tidak akan dikembalikan saat -MinSeverity Tinggi.
Properti parameter
| Jenis: | SeverityLevel |
| Nilai default: | Information |
| Nilai yang diterima: | Information, Low, Medium, High |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Tingkat Keparahan |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.