Automatic scaling of Azure SQL Databases - Enable blog
Summary
In general, each DealTrack client will have their own SQL database within Azure containing their own data, varying wildly in usage patterns and performance needs. This results in Enable being able to offer its clients a solution with a solid user experience and strong computational performance, while truly minimizing the associated running costs. The first rule to be evaluated in our solution is the ScalingInProgressAutoScaleRule, which simply determines whether the elastic pool in question is currently in the process of scaling. "Rules": [ { "Name": "Auto scale rule #1", "Schedule": { "StartTime": "07:00:00", "EndTime": "19:00:00", "DaysOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] }, "Trigger": { "Metric": "dtu_consumption_percent", "Operator": "GreaterThanOrEqual", "Aggregation": "Average", "Threshold": 70, "TimeWindow": "00:10:00" }, "Action": { "Capacity": 200 } }, { "Name": "Auto scale rule #2", "Schedule": { "StartTime": "07:00:00", "EndTime": "19:00:00", "DaysOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] }, "Trigger": { }, "Action": { "Capacity": 100 } }, { "Name": "Default rule", "Schedule": { "StartTime": "00:00:00", "EndTime": "23:59:59", "DaysOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] }, "Trigger": { }, "Action": { "Capacity": 50 } } ] It may seem confusing at first glance, but its not so bad when you understand what they are saying. Enable has built up a flexible and extendable solution capable of automatically scaling Azure elastic pools based on highly configurable rules and triggers.