Add AQL Assessment service (#946)

[SQL Assessment API](https://docs.microsoft.com/en-us/sql/sql-assessment-api/sql-assessment-api-overview) provides a mechanism to evaluate the configuration
of SQL Server for best practices. SQL Assessment API gives a list
of recommended actions to improve SQL Server performance or security.

The SQL Assessment service is used by the expected SQL Assessment
feature of Azure Data Studio. 

SqlAssessmentService forwards JSONRPC calls to SQL Assessment engine
and wraps results as a response.

`assessment/getAssessmentItems` returns a set of checks 
applicable to a given target.

`assessment/invoke` returns a set of recommendations
for improving SQL Server instance or database configurations. 

`assessment/generateScript` returns a T-SQL script for storing
an assessment result set to a SQL data table.
This commit is contained in:
Aleksei Guzev
2020-04-24 10:52:55 +03:00
committed by GitHub
parent 89699823bf
commit bcc1f2a486
15 changed files with 1439 additions and 5 deletions

View File

@@ -2981,6 +2981,30 @@ namespace Microsoft.SqlTools.ServiceLayer
}
}
public static string SqlAssessmentGenerateScriptTaskName
{
get
{
return Keys.GetString(Keys.SqlAssessmentGenerateScriptTaskName);
}
}
public static string SqlAssessmentQueryInvalidOwnerUri
{
get
{
return Keys.GetString(Keys.SqlAssessmentQueryInvalidOwnerUri);
}
}
public static string SqlAssessmentConnectingError
{
get
{
return Keys.GetString(Keys.SqlAssessmentConnectingError);
}
}
public static string ConnectionServiceListDbErrorNotConnected(string uri)
{
return Keys.GetString(Keys.ConnectionServiceListDbErrorNotConnected, uri);
@@ -3156,6 +3180,11 @@ namespace Microsoft.SqlTools.ServiceLayer
return Keys.GetString(Keys.ScheduleNameAlreadyExists, scheduleName);
}
public static string SqlAssessmentUnsuppoertedEdition(int editionCode)
{
return Keys.GetString(Keys.SqlAssessmentUnsuppoertedEdition, editionCode);
}
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Keys
{
@@ -4376,6 +4405,18 @@ namespace Microsoft.SqlTools.ServiceLayer
public const string SchemaCompareSessionNotFound = "SchemaCompareSessionNotFound";
public const string SqlAssessmentGenerateScriptTaskName = "SqlAssessmentGenerateScriptTaskName";
public const string SqlAssessmentQueryInvalidOwnerUri = "SqlAssessmentQueryInvalidOwnerUri";
public const string SqlAssessmentConnectingError = "SqlAssessmentConnectingError";
public const string SqlAssessmentUnsuppoertedEdition = "SqlAssessmentUnsuppoertedEdition";
private Keys()
{ }

View File

@@ -1768,4 +1768,21 @@
<value>Could not find the schema compare session to cancel</value>
<comment></comment>
</data>
<data name="SqlAssessmentGenerateScriptTaskName" xml:space="preserve">
<value>Generate SQL Assessment script</value>
<comment></comment>
</data>
<data name="SqlAssessmentQueryInvalidOwnerUri" xml:space="preserve">
<value>Not connected to a server</value>
<comment></comment>
</data>
<data name="SqlAssessmentConnectingError" xml:space="preserve">
<value>Cannot connect to the server</value>
<comment></comment>
</data>
<data name="SqlAssessmentUnsuppoertedEdition" xml:space="preserve">
<value>Unsupported engine edition {0}</value>
<comment>.
Parameters: 0 - editionCode (int) </comment>
</data>
</root>

View File

@@ -816,4 +816,12 @@ ExtractInvalidVersion = Invalid version '{0}' passed. Version must be in the for
PublishChangesTaskName = Apply schema compare changes
SchemaCompareExcludeIncludeNodeNotFound = Failed to find the specified change in the model
OpenScmpConnectionBasedModelParsingError = Error encountered while trying to parse connection information for endpoint '{0}' with error message '{1}'
SchemaCompareSessionNotFound = Could not find the schema compare session to cancel
SchemaCompareSessionNotFound = Could not find the schema compare session to cancel
############################################################################
# SQL Assessment
SqlAssessmentGenerateScriptTaskName = Generate SQL Assessment script
SqlAssessmentQueryInvalidOwnerUri = Not connected to a server
SqlAssessmentConnectingError = Cannot connect to the server
SqlAssessmentUnsuppoertedEdition(int editionCode) = Unsupported engine edition {0}

View File

@@ -2056,6 +2056,32 @@
<target state="new">Encountered unsupported token {0}</target>
<note></note>
</trans-unit>
<trans-unit id="SqlAssessmentOperationExecuteCalledTwice">
<source>A SQL Assessment operation's Execute method should not be called more than once</source>
<target state="new">A SQL Assessment operation's Execute method should not be called more than once</target>
<note></note>
</trans-unit>
<trans-unit id="SqlAssessmentGenerateScriptTaskName">
<source>Generate SQL Assessment script</source>
<target state="new">Generate SQL Assessment script</target>
<note></note>
</trans-unit>
<trans-unit id="SqlAssessmentQueryInvalidOwnerUri">
<source>Not connected to a server</source>
<target state="new">Not connected to a server</target>
<note></note>
</trans-unit>
<trans-unit id="SqlAssessmentConnectingError">
<source>Cannot connect to the server</source>
<target state="new">Cannot connect to the server</target>
<note></note>
</trans-unit>
<trans-unit id="SqlAssessmentUnsuppoertedEdition">
<source>Unsupported engine edition {0}</source>
<target state="new">Unsupported engine edition {0}</target>
<note>.
Parameters: 0 - editionCode (int) </note>
</trans-unit>
</body>
</file>
</xliff>