You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/dma/dma-sku-recommend-sql-db.md
+26-35Lines changed: 26 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,10 +18,10 @@ ms.author: aciortea
18
18
19
19
# Identify the right Azure SQL Database or SQL Managed Instance SKU for your on-premises database
20
20
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.
22
22
23
23
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).
25
25
26
26
The following are instructions to help you determine the SKU recommendations and provision corresponding databases in Azure using DMA.
27
27
@@ -31,27 +31,26 @@ The following are instructions to help you determine the SKU recommendations and
31
31
32
32
- 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.
33
33
- 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.
35
35
36
36
> [!NOTE]
37
37
> 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.
38
38
39
39
## Collect performance data
40
40
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.
42
42
43
+
In the DMA installation folder, locate the SQLAssessmentConsole folder and the SqlAssessment.exe application
43
44
44
-
1. In the DMA installation folder, locate the SQLAssessmentConsole folder and
45
+

45
46
46
-

47
+
In order to start the data collection process, specify the `PerfDataCollection` action in the console application, with the following arguments:
47
48
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)
55
54
56
55
57
56
Here's a sample invocation:
@@ -63,13 +62,13 @@ The collected data includes limited information about the hardware configuration
63
62
```
64
63
65
64
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:
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:
73
72
74
73
```
75
74
{
@@ -81,32 +80,32 @@ The collected data includes limited information about the hardware configuration
81
80
"outputFolder": "C:\\Output"
82
81
}
83
82
```
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.
85
84
86
85
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.
87
87
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
91
88
92
-
Use the performance data points output file you created as input for this process.
89
+
## Use the console application to get SKU recommendations
93
90
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.
95
92
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.
97
94
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.
98
96
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:
100
98
101
99
- **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)
102
100
- **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)
103
101
- **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)
104
102
- **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)
106
104
- **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)
107
105
- **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)
108
106
- **overwrite**: [Optional] Whether or not to overwrite any existing SKU recommendation reports. (Default: true)
109
107
- **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)
110
109
111
110
To run the SKU recommendations using a JSON configuration file, run the executable without an action but provide a value for configFile, as follows:
112
111
@@ -125,14 +124,6 @@ To run the SKU recommendations using a JSON configuration file, run the executab
125
124
}
126
125
```
127
126
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
-
136
127
Below are some sample invocations:
137
128
138
129
**Sample 1: Getting SKU recommendations for Azure SQL Database.**
0 commit comments