mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Fix missing index include column list (#2220)
This commit is contained in:
@@ -442,12 +442,14 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan
|
||||
|
||||
private static List<ExecutionPlanRecommendation> ParseRecommendations(ShowPlanGraph g, string fileName)
|
||||
{
|
||||
return g.Description.MissingIndices.Select(mi => new ExecutionPlanRecommendation
|
||||
var recommendations = g.Description.MissingIndices.Select(mi => new ExecutionPlanRecommendation
|
||||
{
|
||||
DisplayString = mi.MissingIndexCaption,
|
||||
Query = mi.MissingIndexQueryText,
|
||||
QueryWithDescription = ParseMissingIndexQueryText(fileName, mi.MissingIndexImpact, mi.MissingIndexDatabase, mi.MissingIndexQueryText)
|
||||
}).ToList();
|
||||
|
||||
return recommendations;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -460,7 +462,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan
|
||||
/// <returns></returns>
|
||||
private static string ParseMissingIndexQueryText(string fileName, string impact, string database, string query)
|
||||
{
|
||||
return $@"{SR.MissingIndexDetailsTitle(fileName, impact)}
|
||||
var missingIndexQueryText = $@"{SR.MissingIndexDetailsTitle(fileName, impact)}
|
||||
|
||||
/*
|
||||
{string.Format("USE {0}", database)}
|
||||
@@ -469,6 +471,8 @@ GO
|
||||
GO
|
||||
*/
|
||||
";
|
||||
|
||||
return missingIndexQueryText;
|
||||
}
|
||||
|
||||
private static string GetPropertyDisplayValue(PropertyValue? property)
|
||||
|
||||
@@ -429,7 +429,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.ShowPlan
|
||||
string includeColumns = string.Empty;
|
||||
|
||||
// populate index columns and include columns
|
||||
XmlNodeList columnGroups = missingIndex.SelectNodes("shp:ColumnGroup", nsMgr);
|
||||
XmlNodeList columnGroups = missingIndex.SelectNodes("descendant::shp:ColumnGroup", nsMgr);
|
||||
foreach (XmlNode columnGroup in columnGroups)
|
||||
{
|
||||
foreach (XmlNode column in columnGroup.ChildNodes)
|
||||
@@ -447,13 +447,14 @@ namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.ShowPlan
|
||||
if (includeColumns == string.Empty)
|
||||
includeColumns = columnName;
|
||||
else
|
||||
includeColumns = $"{indexColumns},{columnName}";
|
||||
includeColumns = $"{includeColumns},{columnName}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// for memory optimized we just alter the existing index where as for non optimized tables we create a new one.
|
||||
string queryText = string.Format((memoryOptimzed) ? addIndexTemplate : createIndexTemplate, schemaName, tableName, indexColumns);
|
||||
var template = (memoryOptimzed) ? addIndexTemplate : createIndexTemplate;
|
||||
string queryText = string.Format(template, schemaName, tableName, indexColumns);
|
||||
if (!string.IsNullOrEmpty(includeColumns))
|
||||
{
|
||||
queryText += string.Format(includeTemplate, includeColumns);
|
||||
|
||||
Reference in New Issue
Block a user