Skip to content

Commit a9eb90e

Browse files
committed
teamreview
1 parent 1f2fbb0 commit a9eb90e

1 file changed

Lines changed: 26 additions & 35 deletions

File tree

docs/dma/dma-sku-recommend-sql-db.md

Lines changed: 26 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ ms.author: aciortea
1818

1919
# Identify the right Azure SQL Database or SQL Managed Instance SKU for your on-premises database
2020

21-
Migrating databases to the cloud can be complicated, especially when trying to select the best Azure SQL Database, SQL Managed Instance or SQL Server on Azure VM target and SKU for your database. Our goal with the Database Migration Assistant (DMA) is to help address these questions and make your database migration experience easier by providing these SKU recommendations in a user-friendly output. Using performance data points DMA now recommends an appropriate target Azure SQL Database SKU, as well as an explanation for the recommendation.
21+
Migrating databases to the cloud can be complicated, especially when trying to select the best Azure SQL Database, SQL Managed Instance or SQL Server on Azure VM target and SKU for your database. Our goal with the Database Migration Assistant (DMA) is to help address these questions and make your database migration experience easier by providing these SKU recommendations in a user-friendly output. Using performance data points DMA now recommends an appropriate target Azure SQL SKU, as well as an explanation for the recommendation.
2222

2323

24-
The SKU Recommendations feature allows you to identify both the minimum recommended Azure SQL Database, Azure SQL Managed Instance or SQL Server on Azure VM SKU based on performance data points collected from your source SQL Server instances hosting your databases. The feature provides recommendations related to pricing tier, compute level, and max data size, as well as estimated cost per month. This functionality is currently available only via the Command Line Interface (CLI).
24+
The SKU recommendations feature allows you to identify both the minimum recommended Azure SQL Database, Azure SQL Managed Instance or SQL Server on Azure VM SKU based on performance data points collected from your source SQL Server instances hosting your databases. The feature provides recommendations related to pricing tier, compute level, and max data size. This functionality is currently available only via the Command Line Interface (CLI).
2525

2626
The following are instructions to help you determine the SKU recommendations and provision corresponding databases in Azure using DMA.
2727

@@ -31,27 +31,26 @@ The following are instructions to help you determine the SKU recommendations and
3131

3232
- Download and install the latest version of [DMA](https://aka.ms/get-dma). If you have already an earlier version of the tool, open it, and you'll be prompted to upgrade DMA.
3333
- Install the minimum version [.NET Core 3.1](https://dotnet.microsoft.com/download/dotnet-core/current/runtime) on the tools machine where the SKU recommendations console application is running.
34-
- Ensure the accounted used to connect to your SQL Server on-premises source has sysadmin permission.
34+
- Ensure the account used to connect to your SQL Server on-premises source has sysadmin permission.
3535

3636
> [!NOTE]
3737
> It is recommended that the tool is utilized from a separate tools (client) machine with connectivity to the target SQL instance(s), rather than from the machine hosting SQL Server itself, in order to minimize any potential overhead. When collecting performance data for SKU recommendations, it is recommended that the tool is ran with default option values over the span of several hours, covering both off-peak and on-peak workloads and excluding maintenance tasks such as index rebuild or backup database. Maintenance tasks can impact the CPU, Memory and IO consumption and subsequently drive higher recommended SKU tiers.
3838
3939
## Collect performance data
4040

41-
The collected data includes limited information about the hardware configuration of your server, as well SQL-specific performance counters from system Dynamic Management Views (DMVs) such as CPU, memory, and storage usage, as well as IO throughput and IO latency.The collected data is stored locally on your machine. The collected data can then be aggregated and analysed, and by examining the performance characteristics of your source instance, SKU recommendations can be determined for Azure SQL offerings (including SQL Database, SQL Managed Instance, and SQL on Azure VM) that best suit your workload while also being cost-effective.
41+
The collected data includes limited information about the hardware configuration of your server, as well SQL-specific performance counters from system Dynamic Management Views (DMVs) such as CPU, memory, and storage usage, as well as IO throughput and IO latency. The collected data is stored locally on your machine. The collected data can then be aggregated and analysed, and by examining the performance characteristics of your source instance, SKU recommendations can be determined for Azure SQL offerings (including SQL Database, SQL Managed Instance, and SQL on Azure VM) that best suit your workload while also being cost-effective.
4242

43+
In the DMA installation folder, locate the SQLAssessmentConsole folder and the SqlAssessment.exe application
4344

44-
1. In the DMA installation folder, locate the SQLAssessmentConsole folder and
45+
![SKUConsoleApplication.exe shown in DMA folder](../dma/media/dma-sku-recommend-console-location.jpg)
4546

46-
![SKUConsoleApplication.exe shown in DMA folder](../dma/media/dma-sku-recommend-console-location.jpg)
47+
In order to start the data collection process, specify the `PerfDataCollection` action in the console application, with the following arguments:
4748

48-
2. Run the SKU Recommendations console application with the following arguments:
49-
50-
- **sqlConnectionStrings**: Required. Quote-enclosed formal connection string(s) for the target SQL instance(s).
51-
- **perfQueryIntervalInSec**: Optional. Interval at which to query performance data, in seconds. (Default: 30)
52-
- **staticQueryIntervalInSec**: Optional. Interval at which to query and persist static configuration data, in seconds. (Default: 60)
53-
- **numberOfIterations**: Optional. Number of iterations of performance data collection to perform before persisting to file. For example, with default values, performance data will be persisted every 30 seconds * 20 iterations = 10 minutes. (Default: 20)
54-
- **outputFolder**: Optional. Folder which performance data, reports, and logs will be written to/read from. (Default: current directory)
49+
- **sqlConnectionStrings**: [Required] Quote-enclosed formal connection string(s) for the target SQL instance(s).
50+
- **perfQueryIntervalInSec**: [Optional] Interval at which to query performance data, in seconds. (Default: 30)
51+
- **staticQueryIntervalInSec**: [Optional Interval at which to query and persist static configuration data, in seconds. (Default: 60)
52+
- **numberOfIterations**: [Optional] Number of iterations of performance data collection to perform before persisting to file. For example, with default values, performance data will be persisted every 30 seconds * 20 iterations = 10 minutes. (Default: 20)
53+
- **outputFolder**: [Optional] Folder which performance data, reports, and logs will be written to/read from. (Default: current directory)
5554

5655

5756
Here's a sample invocation:
@@ -63,13 +62,13 @@ The collected data includes limited information about the hardware configuration
6362
```
6463
6564
66-
To run the data collection process using a .json configuration file, run the executable without an action but provide a value for configFile, as follows:
65+
Alternatively, the data collection process can be invoked by providing the appropriate arguments in a JSON configuration file, and passing the configuration file to the tool by running the executable without an action, as follows:
6766
68-
```
69-
.\SqlAssessment.exe --configFile C:\path\to\config.json
70-
```
67+
```
68+
.\SqlAssessment.exe --configFile C:\path\to\config.json
69+
```
7170
72-
Below is a sample config file equivalent to the performance data collection action described above:
71+
Below is a sample config file equivalent to the performance data collection action described above:
7372
7473
```
7574
{
@@ -81,32 +80,32 @@ The collected data includes limited information about the hardware configuration
8180
"outputFolder": "C:\\Output"
8281
}
8382
```
84-
Sample config files for all of the actions can be found in the Example folder under DMA installation path: AssessSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json, and GetSkuRecommendationSampleConfigFile.json.
83+
Sample config files for all of the actions can be found in the Example folder under DMA installation path: AssessSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json, and GetSkuRecommendationSampleConfigFile.json.
8584
8685
86+
After the command executes, the performance data and configuration data points are saved as a set of three *_Counters.csv files per target instance, each containing the server and instance name. You can use this file as input for the next part of the process, which will provide SKU recommendations for Azure SQL Database, Azure SQL Managed Instance or SQL Server on Azure VM.
8787
88-
After the command executes, the performance data and configuration data points are saved as a set of three *_Counters.csv files per target instance, each containing the server and instance name.. You can use this file as input for the next part of the process, which will provide SKU recommendations for Azure SQL Database, Azure SQL Managed Instance or SQL Server on Azure VM.
89-
90-
## Use the SQLAssessmentConsole.exe to get SKU recommendations
9188
92-
Use the performance data points output file you created as input for this process.
89+
## Use the console application to get SKU recommendations
9390
94-
For the single database option, DMA will provide recommendations for the Azure SQL Database single database pricing tier, the compute level, and the maximum data size for each database on your computer. If you have multiple databases on your computer, you can also specify the databases for which you want recommendations.
91+
The data points collected by the previous step will be used as the input for the SKU recommendation process.
9592
96-
For Azure SQL Managed Instance and SQL Server on Azure VM, the recommendations support a lift-and-shift scenario. As a result, SKU recommendations console app will provide you with recommendations for the Azure SQL Managed Instance or SQL Server on Azure VM pricing tier, the compute level, and the maximum data size for the set of databases on your computer. Again, if you have multiple databases on your computer, you can also specify the databases for which you want recommendations.
93+
For the single database option, DMA will provide recommendations for the Azure SQL Database single database pricing tier, the compute level, and the maximum data size for each database on your SQL instance. If you have multiple databases on your SQL instance, you can also specify the databases for which you want recommendations.
9794
95+
For Azure SQL Managed Instance and SQL Server on Azure VM, the recommendations support a lift-and-shift scenario. As a result, SKU recommendations console app will provide you with recommendations for the Azure SQL Managed Instance or SQL Server on Azure VM pricing tier, the compute level, and the maximum data size for the set of databases on your SQL instance. Again, if you have multiple databases on your SQLIns, you can also specify the databases for which you want recommendations.
9896
99-
To use the SKU recommendations, at the command prompt, run SqlAssessment.exe with GetSkuRecommendation the following arguments:
97+
In order to start the SKU recommendation process, specify the `GetSkuRecommendation` action in the console application, with the following arguments:
10098
10199
- **perfQueryIntervalInSec**: [Optional] Interval at which performance data was queried, in seconds. Note: This must match the value that was originally used during the performance data collection. (Default: 30)
102100
- **targetPlatform**: [Optional] Target platform for SKU recommendation: either AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine, or Any. If Any is selected, then SKU recommendations for all three target platforms will be evaluated, and the best fit will be returned. (Default: Any)
103101
- **targetSqlInstance**: [Optional] Name of the SQL instance that SKU recommendation will be targeting. (Default: outputFolder will be scanned for files created by the PerfDataCollection action, and recommendations will be provided for every instance found)
104102
- **targetPercentile**: [Optional] Percentile of data points to be used during aggregation of the performance data. (Default: 95)
105-
scalingFactor: [Optional] Scaling ('comfort') factor used during SKU recommendation. For example, if it is determined that there is a 4 vCore CPU requirement with a scaling factor of 150%, then the true CPU requirement will be 6 vCores. (Default: 100)
103+
- **scalingFactor**: [Optional] Scaling ('comfort') factor used during SKU recommendation. For example, if it is determined that there is a 4 vCore CPU requirement with a scaling factor of 150%, then the true CPU requirement will be 6 vCores. (Default: 100)
106104
- **startTime**: [Optional] UTC start time of performance data points to consider during aggregation, in "YYYY-MM-DD HH:MM" format. (Default: all data points collected will be considered)
107105
- **endTime**: [Optional] UTC end time of performance data points to consider during aggregation, in "YYYY-MM-DD HH:MM" format. (Default: all data points collected will be considered)
108106
- **overwrite**: [Optional] Whether or not to overwrite any existing SKU recommendation reports. (Default: true)
109107
- **displayResult**: [Optional] Whether or not to print the SKU recommendation results to the console. (Default: true)
108+
- **outputFolder**: [Optional] Folder which performance data, reports, and logs will be written to/read from. (Default: current directory)
110109
111110
To run the SKU recommendations using a JSON configuration file, run the executable without an action but provide a value for configFile, as follows:
112111
@@ -125,14 +124,6 @@ To run the SKU recommendations using a JSON configuration file, run the executab
125124
}
126125
```
127126
128-
In addition, you can also use one of the following customizable parameters:
129-
130-
- **outputFolder**: [Optional] Folder which performance data, reports, and logs will be written to/read from. (Default: current directory)
131-
**: If set to True, prevents the price refresh from occurring and assumes default prices. Use if running in offline mode. If you do not use this parameter, you must specify the parameters below to get the latest prices based on a specified region.
132-
- **CommandTimeoutInSeconds**:[Optional] The time in seconds to wait for SQL query commands to execute before timing out. (Default: 120)
133-
134-
Advanced settings for the tool can be found in the Console.Settings.json file in the root directory.
135-
136127
Below are some sample invocations:
137128
138129
**Sample 1: Getting SKU recommendations for Azure SQL Database.**

0 commit comments

Comments
 (0)