SQL Database
SQL Database Rightsizing
As a result of low utilization, we recommend reducing the size of the DTU / vCore, which will reduce Azure SQL cost.
Recommendation algorithm:
-
DTU: Take from CUE where: “service” = “SQL Database” and “meter_name” LIKE “%DTU%”
-
vCore: “service” = “SQL Database” and “meter_name” = “vCore”
-
Filtering vCore databases covered by RI.
-
DB information:
-
identify that the DB is a ‘single DB type’
-
For DTU identity the service tier and type (e.g S4)
-
For vCore identify the hardware type and amount of vCore (e.g DC-series 6vCore) [https://learn.microsoft.com/en-us/rest/api/sql/databases/list-by-server?view=rest-sql-2014-04-01&tabs=HTTP] (https://learn.microsoft.com/en-us/rest/api/sql/databases/list-by-server?view=rest-sql-2014-04-01\&tabs=HTTP)
-
-
Each recommended option is being validated to meet the original Storage.
-
vCore purchase type:
- We will recommend only within the same hardware type.
- We do not take into consideration the memory.
Example: Let's say I have 12 vCore under ‘DC-series’, we utilize 40%. We can recommend moving to 4 vCore.
Recommendation Flow:
Identify relevant resources (for vCore type we need to make sure RI does not cover it)
⬇
Collect utilization data + IOPS for DTU type
⬇
Identify un-utilized database according to the defined preferences
⬇
Trigger recommendation
Savings Calculation
- DTU purchase type:
- Current costs: As the customer can have a discount for his SQL and we do not have the discount numbers, we will take the current costs as ‘List Price’. (for comparison, we are doing it for VM right-sizing recommendation as well)
- New costs: from public pricing
- vCore purchase type:
-
Current costs: As the customer can have a discount for his SQL and we do not have the discount numbers, we will take the current costs as ‘List Price’. (for comparison, we are doing it for VM right-sizing recommendation as well)
-
New costs: from public pricing
- Days to check, default 30.
- DTU/ vCore utilization aggregation function - the options are: average, max. The default is average.
- Minimum potential savings (%), default value is 5.
- Un-utilization threshold - what is the minimum threshold we define in order to define a database as un-utilized. The default is 60%.
Umbrella validation (Detailed validation logic).
SQL Idle
Identifying the resource as Idle if the number of requests is no more than 1 within the past 14 days.
Recommendation is being triggere basing on the folloiwng conditions:
- The database is in a 'Succeeded' state.
- The connection_successful metrics show minimal or no activity (max count ≤ 1).
- The potential savings exceed the minimum potential savings > $5 as defualt.
- The size properties can be successfully retrieved.
- Days To Check, default 14 days.
Umbrella.
SQL Reserved Capacity
Analyzing the usage on past 30 days and recommending to purchase reserved capacity to optimize costs.
Azure Reserved Capacity Recommendation system:
- 30-day period for usage analysis.
- Default recommendation: 1-year terms.
- Considers 3-year terms as alternatives.
N/A.
Native + Umbrella validation
Updated about 1 year ago
