Feeling your Sitecore Azure Paas website takes a long time to boot?
I had the same feeling. Upon investigation I saw that the bottleneck was the core database running at 100% of it’s resources.
Now with Azure Paas, boosting bottlenecks is piece of cake. Just scale that thing up!
Unfortunatly, the Azure Paas Cake isn’t free. And asking a larger piece of the cake costs money.
Databases performance is sold in DTU’s.
“DTUs are most useful for understanding the relative amount of resources between Azure SQL Databases at different performance levels and service tiers. For example, doubling the DTUs by increasing the performance level of a database equates to doubling the set of resource available to that database. For example, a Premium P11 database with 1750 DTUs provides 350x more DTU compute power than a Basic database with 5 DTUs.”
Doubling the number of DTU’s also means doubling the price. To have an ok performance, I upscaled my database to 100 DTU’s.
While this boosted the performance it is a bit sad that we pay for all those DTU’s that we are only using during startup.
Also, there are 12 databases powering a sitecore paas installation. Scaling up all those database can quickly become very costly. Wouldn’t it be nicer, if we could share our DTU’s accross those databases?
Well, income elastic datapools. Elastic datapools exactly provide this kind of functionality. Instead of paying for each individual database and it’s DTU’s. We create one pool of DTU’s that are shared amongst the different databases.
You can replace the small costs of the many small databases with one bigger elastic datapool. In this way, databases can use the DTU’s when they are most usefull for them.
Result of my test was a startup time of over 20 minutes on a vanilla sitecore install upto around 3 minutes.
How to create your elastic datapool
Creating an elastic datapool is piece of cake.
Go to your sql-server in azure portal and click on add pool.
Now give your pool a name, choose for standard pool and click configure.
Add the databases you want to take advantage of the pool.
Finally, select and acknowledge, and azure will start creating the pool and switching the databases to that pool.
One downside of this configuration is that a single database can claim all the resources.
To overcome this, in a production environment, you could introduce multiple pools.
For instance by splitting reporting and processing in a separate pool.
Or use a combination of elastic pools and dedicated pools.