Invoke-SqlAssessment
Запускает рекомендации по оценке SQL, проверяет выбранный объект SQL Server и возвращает их результаты.
Синтаксис
Invoke-SqlAssessment
[-Check <Object[]>]
[[-InputObject] <PSObject>]
[-Configuration <PSObject>]
[-MinSeverity <SeverityLevel>]
[-FlattenOutput]
[<CommonParameters>]
Описание
Командлет Invoke-SqlAssessment выполняет оценку для каждого входного объекта и возвращает список рекомендаций, которые следует применять к указанным объектам. Это до вас, чтобы следовать заданным рекомендациям или нет. Дополнительные сведения см. в обзоре API оценки SQL.
Этот командлет принимает следующие типы входных данных:
- 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
- Строка, содержащая путь к любому объекту указанных выше типов
- Коллекция объектов
Входные объекты можно получить с помощью командлетов SqlServer, таких как Get-SqlInstance и Get-SqlDatabase или базовых командлетов PowerShell, таких как Get-Item и Get-ChildItem. Кроме того, командлет поддерживает поставщик PowerShell SQL Server, чтобы он смог получить объект по пути. Путь можно передать явным образом, в противном случае будет использоваться текущий путь.
Доступность проверка для выбранного объекта зависит от версии SQL Server, платформы и типа объекта. Кроме того, существуют проверки, предназначенные для конкретных баз данных, таких как tempdb
или master
. Кроме того, можно фильтровать проверки по тегам, именам и серьезности с помощью параметров -MinSeverity и -Check.
Список проверок, применимых к данному объекту SQL Server, можно получить с помощью командлета Get-SqlAssessmentItem.
Командлет выполняет только проверки, применимые к входным объектам. Например, проверки базы данных не будут выполняться для экземпляра SQL Server или группы доступности, даже если они указаны в параметре -Check list.
Пользовательские конфигурации можно применять с помощью параметра -Configuration. Примеры настройки доступны на сайте GitHub.
ПРИМЕЧАНИЕ. В первой общедоступной предварительной версии Invoke-SqlAssessment вернул объекты AssessmentNote со свойствами CheckId и CheckName, содержащими идентификатор Проверки и DisplayName соответственно. Во второй общедоступной предварительной версии два свойства были заменены одним свойством Check, предоставляющим гораздо больше данных. Если $note является объектом, возвращенным Invoke-SqlAssessment, вы можете получить доступ к идентификатору проверка как $note.Check.Id вместо $note. CheckId или описание проверка как $note. Check.Description. Параметр -FlattenOutput можно использовать для получения результатов в предыдущем формате с помощью CheckId и CheckName. Этот параметр также поможет сохранить совместимость с некоторыми командлетами, такими как Write-SqlTableData. Дополнительные сведения см. в примерах 12–14.
Выходные данные командлета Invoke-SqlAssessment — это список нарушенных рекомендаций для каждого объекта SQL Server. Используйте свойство Description , чтобы узнать о рекомендациях, и свойство Message , чтобы узнать, как его можно решить. Кроме того, каждый результат проверка содержит ссылку на онлайн-документацию, которая поможет вам лучше выяснить проблему.
поддержка SQL Server на виртуальных машинах Azure
С помощью командлетов оценки SQL можно оценить экземпляр SQL Server на виртуальной машине Azure не только как локальный SQL Server, но и как правила, относящиеся к SQL Server на виртуальной машине Azure (которые используют сведения о конфигурации виртуальной машины). Например, правило AzSqlVmSize проверяет, что виртуальная машина, на которую размещен экземпляр SQL Server на виртуальной машине Azure, имеет рекомендуемый размер.
Чтобы использовать такие правила, подключитесь к Azure с помощью модуля Azure PowerShell и убедитесь, что установлен модуль Az.ResourceGraph.
Выполните вход с помощью Azure PowerShell, прежде чем вызывать оценку SQL для SQL Server на экземпляре виртуальной машины Azure. В примере 16 показан интерактивный процесс входа и выбор подписки.
ПРИМЕЧАНИЕ. Можно использовать подключение к учетной записи Azure, сохраняемое между сеансами PowerShell, т. е. вызвать Connect-AzAccount в одном сеансе и опустить эту команду позже. Однако для текущей версии командлетов оценки SQL требуется, чтобы модуль Az.ResourceGraph был импортирован явным образом в этом случае: Import-Module Az.ResourceGraph
Примеры
Пример 1. Вызов оценки для локального экземпляра по умолчанию
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.
...
В этом примере показано, как получить все рекомендации по использованию экземпляра SQL Server по умолчанию, работающего на текущем компьютере.
Пример 2. Вызов оценки с помощью командлета PSProvider
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.
...
В этом примере показано, как получить все рекомендации по использованию экземпляра SQL Server по умолчанию.
Пример 3. Вызов оценки с помощью пути поставщика PS
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.
...
В этом примере показано, как получить все рекомендации по использованию экземпляра SQL Server по умолчанию.
Пример 4. Вызов оценки с пользовательской конфигурацией
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
...
В этом примере показано, как применить пользовательскую конфигурацию для получения измененного набора рекомендаций. Пользовательские конфигурации описаны в json-файлах. Пользовательские наборы правил profileA.json и profileB.json отключили некоторые проверки и ввели новые. Одна из новых проверок из файла profileA.json обнаружила проблему с текущей конфигурацией экземпляра SQL Server. Сведения о настройке см. в папке примеров оценки SQL на сайте GitHub.
Пример 5. Вызов оценки для всех экземпляров
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.
...
В этом примере показано, как командлет Invoke-SqlAssessment принимает набор экземпляров SQL Server через конвейер.
Пример 6. Выполнение оценки для отфильтрованного набора 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.
...
В этом примере показано, как командлет Invoke-SqlAssessment принимает набор экземпляров SQL Server через конвейер. Набор фильтруется с помощью стандартного командлета PowerShell Where-Object.
Пример 7. Вызов оценки для базы данных по имени
PS:> Get-SqlDatabase master -ServerInstance localhost | Invoke-SqlAssessment -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].
В этом примере показано, как командлет Invoke-SqlAssessment принимает имя базы данных. В этом случае проблема не обнаружена.
Пример 8. Вызов оценки для базы данных по пути
PS:> Invoke-SqlAssessment SQLSERVER:\SQL\localhost\default\Databases\master -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].
В этом примере показано, как командлет Invoke-SqlAssessment принимает путь к базе данных SQL Server.
Пример 9. Обнаружение больших проблем для базы данных
PS:> cd SQLSERVER:\SQL\localhost\default\Databases\master
PS:> Invoke-SqlAssessment -MinSeverity High
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [master].
В этом примере показан командлет Invoke-SqlAssessment , оценивающий текущее расположение. Сообщается только о проблемах с высоким уровнем.
Пример 10. Выполнение проверок, выбранных по тегу
PS:> Get-SqlInstance -ServerInstance . | Invoke-SqlAssessment -Check Backup -Verbose
VERBOSE: Base ruleset version: 0.2.
VERBOSE: No recommendations for [LOCAL].
В этом примере показан командлет Invoke-SqlAssessment, выполняющий все проверки, связанные с резервным копированием, для каждого экземпляра SQL Server на локальном сервере.
Пример 11. Запуск интерактивных проверок
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.
Во второй строке этого примера показано, как получить проверки для $serverInstance и выбрать некоторые из них в интерактивном режиме. Выбранные элементы хранятся в переменной массива, которая затем используется в качестве входных данных для командлета Invoke-SqlAssessment . В процессе оценки выполняются только выбранные проверки.
Пример 12. Эффект параметра -FlattenOutput
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....
В этом примере показана разница между объектами, возвращаемыми с параметром -FlattenOutput или без нее. Параметр заменяет огромный сложный объект Check двумя строковыми свойствами CheckId и CheckName. Это полезно для сериализации (см. следующий пример).
Первая команда показывает простой объект со всеми свойствами типа string.
Вторая команда показывает другой объект с двумя нестроковыми свойствами: Check и Severity.
Третья команда показывает широкий набор данных, доступных с помощью свойства Check.
Пример 13. Повторный запуск неудачных проверок
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.
В этом примере показано, как можно повторно использовать проверку, возвращенную с результатами оценки. Вы можете повторно выполнить проверки, которые ранее создавали AssessmentNotes.
Пример 14. Сохранение результатов оценки в таблице
PS:> $serverInstance = Get-SqlInstance -ServerInstance '(local)'
PS:> Invoke-SqlAssessment $serverInstance -FlattenOutput |
Write-SqlTableData -ServerInstance localhost -DatabaseName SqlAssessment -SchemaName Assessment -TableName Results -Force
Во второй строке этого примера показано использование параметра -FlattenOutput с командлетом Write-SqlTableData для хранения результатов оценки в базе данных SQL.
Пример 15. Явное указание учетных данных
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
В этом примере показано, как вызвать оценку SQL с явно указанными учетными данными.
Пример 16. Вызов оценки для SQL Server на экземпляре виртуальной машины Azure
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
В этом примере показано, как вызвать оценку для SQL Server на экземпляре виртуальной машины Azure.
Активное подключение к подписке Azure позволяет SQL Server проверки, связанные с виртуальной машиной Azure (в этом примере — AzSqlVmSize). Первая строка подключается к учетной записи Azure для получения данных из azure Resource Graph. Вторая строка является необязательной.
Для выполнения этих проверок для оценки SQL требуется модуль Az.ResourceGraph.
Параметры
-Check
Одна или несколько проверок, идентификаторов проверка или тегов.
Для каждого объекта проверка выполняется invoke-SqlAssessment, который проверка, поддерживает ли он входной объект.
Для каждого идентификатора проверка Invoke-SqlAssessment запускает соответствующий проверка, если он поддерживает входной объект.
Для тегов Invoke-SqlAssessment выполняет проверки с любым из этих тегов.
Type: | Object[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Configuration
Указывает пути к файлам, содержащим настраиваемую конфигурацию. Файлы настройки будут применяться к конфигурации по умолчанию в указанном порядке. Область ограничен только вызовом этого командлета.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FlattenOutput
Указывает, что этот командлет создает простые объекты типа Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNoteFlat вместо Microsoft.SqlServer.Management.Assessment.Cmdlets.AssessmentNote.
Regular AssessmentNote, возвращаемый из Invoke-SqlAssessment содержит ссылки на другие полезные сложные объекты, такие как Check (см. пример 12). С помощью свойства Check можно получить описание проверка или повторно использовать проверка (см. пример 13). Но некоторые командлеты не поддерживают сложные свойства. Например, Write-SqlTableData вызовет ошибку при попытке записать AssessmentNote в базу данных. Чтобы избежать этого, используйте параметр -FlattenOutput для замены свойства Check двумя простыми строками: CheckId и CheckName (см. пример 14).
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Указывает объект SQL Server или путь к такому объекту. Командлет выполняет оценку для этого объекта. Если этот параметр опущен, в качестве входного объекта используется текущее расположение. Если текущее расположение не является поддерживаемым объектом SQL Server, командлет сообщает об ошибке.
Type: | PSObject |
Aliases: | Target |
Position: | 10 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MinSeverity
Задает минимальный уровень серьезности для найденных проверок. Например, проверки низких, средних и информационных уровней не будут возвращены при значении -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 |
Входные данные
System.String[]
Microsoft.SqlServer.Management.Smo.SqlSmoObject[]
Выходные данные
Microsoft.SqlServer.Assessment.Cmdlets.AssessmentNote