[SQL Migration] Mark SQL MI premium-series memory optimized SKUs as GA (#1811)

* GA SQL MI premium-series memory optimized SKUs

* Fix null reference exception
This commit is contained in:
Raymond Truong
2023-01-18 10:26:18 -08:00
committed by GitHub
parent 5978e890b7
commit 3f2d5da69a

View File

@@ -606,21 +606,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
prefs.EligibleSkuCategories = GetEligibleSkuCategories("AzureSqlManagedInstance", parameters.IncludePreviewSkus);
resultSet.sqlMiResults = provider.GetSkuRecommendation(prefs, req);
// if no result was generated, create a result with a null SKU
if (!resultSet.sqlMiResults.Any())
{
resultSet.sqlMiResults.Add(new SkuRecommendationResult()
{
SqlInstanceName = parameters.TargetSqlInstance,
DatabaseName = null,
TargetSku = null,
MonthlyCost = null,
Ranking = -1,
PositiveJustifications = null,
NegativeJustifications = null,
});
}
sqlMiStopwatch.Stop();
resultSet.sqlMiDurationInMs = sqlMiStopwatch.ElapsedMilliseconds;
@@ -642,21 +627,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
prefs.EligibleSkuCategories = GetEligibleSkuCategories("AzureSqlVirtualMachine", parameters.IncludePreviewSkus);
resultSet.sqlVmResults = provider.GetSkuRecommendation(prefs, req);
// if no result was generated, create a result with a null SKU
if (!resultSet.sqlVmResults.Any())
{
resultSet.sqlVmResults.Add(new SkuRecommendationResult()
{
SqlInstanceName = parameters.TargetSqlInstance,
DatabaseName = null,
TargetSku = null,
MonthlyCost = null,
Ranking = -1,
PositiveJustifications = null,
NegativeJustifications = null,
});
}
sqlVmStopwatch.Stop();
resultSet.sqlVmDurationInMs = sqlVmStopwatch.ElapsedMilliseconds;
@@ -692,11 +662,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
List<AzureSqlSkuCategory> eligibleSkuCategories = GetEligibleSkuCategories("AzureSqlDatabase", parameters.IncludePreviewSkus);
ElasticStrategySKURecommendationPipeline pi = new ElasticStrategySKURecommendationPipeline(eligibleSkuCategories);
DataTable SqlMISpec = pi.SqlMISpec.Copy();
if (!parameters.IncludePreviewSkus)
{
SqlMISpec = pi.SqlMISpec.AsEnumerable().Where(
p => !p.Field<string>("SLO").Contains("Premium")).CopyToDataTable();
}
MISkuRecParams MiSkuRecParams = new MISkuRecParams(pi.SqlGPMIFileSpec, SqlMISpec, elasticaggregator.FileLevelTs, elasticaggregator.InstanceTs, pi.MILookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
DbSkuRecParams DbSkuRecParams = new DbSkuRecParams(pi.SqlDbSpec, elasticaggregator.DatabaseTs, pi.DbLookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
resultSet.sqlDbResults = pi.ElasticStrategyGetSkuRecommendation(MiSkuRecParams, DbSkuRecParams, req);
@@ -722,30 +687,10 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
List<AzureSqlSkuCategory> eligibleSkuCategories = GetEligibleSkuCategories("AzureSqlManagedInstance", parameters.IncludePreviewSkus);
ElasticStrategySKURecommendationPipeline pi = new ElasticStrategySKURecommendationPipeline(eligibleSkuCategories);
DataTable SqlMISpec = pi.SqlMISpec.Copy();
if (!parameters.IncludePreviewSkus)
{
SqlMISpec = pi.SqlMISpec.AsEnumerable().Where(
p => !p.Field<string>("SLO").Contains("Premium")).CopyToDataTable();
}
MISkuRecParams MiSkuRecParams = new MISkuRecParams(pi.SqlGPMIFileSpec, SqlMISpec, elasticaggregator.FileLevelTs, elasticaggregator.InstanceTs, pi.MILookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
DbSkuRecParams DbSkuRecParams = new DbSkuRecParams(pi.SqlDbSpec, elasticaggregator.DatabaseTs, pi.DbLookupTable, Convert.ToDouble(parameters.ScalingFactor) / 100.0, parameters.TargetSqlInstance);
resultSet.sqlMiResults = pi.ElasticStrategyGetSkuRecommendation(MiSkuRecParams, DbSkuRecParams, req);
// if no result was generated, create a result with a null SKU
if (!resultSet.sqlMiResults.Any())
{
resultSet.sqlMiResults.Add(new SkuRecommendationResult()
{
SqlInstanceName = parameters.TargetSqlInstance,
DatabaseName = null,
TargetSku = null,
MonthlyCost = null,
Ranking = -1,
PositiveJustifications = null,
NegativeJustifications = null,
});
}
sqlMiStopwatch.Stop();
resultSet.sqlMiDurationInMs = sqlMiStopwatch.ElapsedMilliseconds;
@@ -761,19 +706,8 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
// generate SQL VM recommendations, if applicable
if (parameters.TargetPlatforms.Contains("AzureSqlVirtualMachine"))
{
// elastic model currently doesn't support VM recommendation, return null SKU for now
resultSet.sqlVmResults = new List<SkuRecommendationResult> {
new SkuRecommendationResult()
{
SqlInstanceName = parameters.TargetSqlInstance,
DatabaseName = null,
TargetSku = null,
MonthlyCost = null,
Ranking = -1,
PositiveJustifications = null,
NegativeJustifications = null,
}
};
// elastic model currently doesn't support VM recommendation, return empty list
resultSet.sqlVmResults = new List<SkuRecommendationResult> { };
resultSet.sqlVmDurationInMs = -1;
resultSet.sqlVmReportPath = String.Empty;
}
@@ -994,24 +928,20 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
AzureSqlPaaSServiceTier.GeneralPurpose,
ComputeTier.Provisioned,
AzureSqlPaaSHardwareType.PremiumSeries));
// Premium Memory Optimized BC/GP
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
AzureSqlTargetPlatform.AzureSqlManagedInstance,
AzureSqlPurchasingModel.vCore,
AzureSqlPaaSServiceTier.BusinessCritical,
ComputeTier.Provisioned,
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
if (includePreviewSkus)
{
// Premium Memory Optimized BC/GP
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
AzureSqlTargetPlatform.AzureSqlManagedInstance,
AzureSqlPurchasingModel.vCore,
AzureSqlPaaSServiceTier.BusinessCritical,
ComputeTier.Provisioned,
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
AzureSqlTargetPlatform.AzureSqlManagedInstance,
AzureSqlPurchasingModel.vCore,
AzureSqlPaaSServiceTier.GeneralPurpose,
ComputeTier.Provisioned,
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
}
eligibleSkuCategories.Add(new AzureSqlSkuPaaSCategory(
AzureSqlTargetPlatform.AzureSqlManagedInstance,
AzureSqlPurchasingModel.vCore,
AzureSqlPaaSServiceTier.GeneralPurpose,
ComputeTier.Provisioned,
AzureSqlPaaSHardwareType.PremiumSeriesMemoryOptimized));
break;
case "AzureSqlVirtualMachine":
@@ -1031,7 +961,6 @@ namespace Microsoft.SqlTools.ServiceLayer.Migration
vmCapabilities.AddRange(vmPreviewCapabilities);
}
foreach (VirtualMachineFamily family in AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.GeneralPurpose]
.Concat(AzureVirtualMachineFamilyGroup.FamilyGroups[VirtualMachineFamilyType.MemoryOptimized]))
{