Recently I was at a community session talking to a bunch of computer science students about databases and the type of work I have been doing lately in consulting. I wanted to talk about Performance tuning and why it is critical to understand the basics. Some of the fundamental concepts I have learnt in my college days are still helping me solve some of the complex problems I do at consulting. With that in mind, I started my talk about some of the recent assignments and how I have been troubleshooting performance for both SQL Server on a VM and even SQL Server as a service on Azure. It was about 10 mins into the talk that I realized something was totally wrong, I could see blank faces just like when a professor teaches a complex topic. I have been there and could see the reaction. I said I need a glass of water and paused. I asked one of the students to what was going on – He said, “You mentioned the word ‘Azure’ close to 4-5 times now in the past 3 minutes. Can you tell us what Azure is? Is this a new Database in the industry?”
This was the moment of “Ah ha” for me. I told the group, before we can start talking about performance of SQL Server in Azure, we need to have a base understanding of what a cloud service, Azure, is and what it is not. So, the next 15 mins of my lecture were around that. I have brought a snapshot of it here so that I can use the same in future too.
Azure services are made up of networks, drives, servers, etc. all hosted by Microsoft to provide scalable, on-demand services. This architecture comes with many positive attributes, but there are trade-offs when compared to an on premise solution.
Azure has an advantage in cost, deployment time, reduction in administrative and management overhead and Azure can be used to easily scale up or down depending on the needed workload. However, as stated, the underlying infrastructure is hosted. As an administrator, you do not have the same level of control over the individual components and there is less opportunity for deeper performance tuning operations as there are four on premise servers. Azure hardware is commodity hardware meant for scaling out and handling many applications.
Due to these differences, performance tuning requires a slightly different approach. Some of the direct query tuning will be like a standard on-prem SQL Server install, but other aspects such as tuning IO is significantly different as the configuration of disks, HBAs, caching is all taken care of by Azure. Performance in Azure needs to be viewed from more architectural and design view to leverage the best aspects of Azure (cost, low maintenance) while continuing to have great performance with your solution.
Later, as the session expanded, I explained how the world has been moving from Packaged Software to IaaS (Infrastructure as a Service) to PaaS (Platform as a Service) to SaaS (Software as a Service). When I finished explaining these terms and taxonomies, it became clear to what the students wanted. They needed practical knowledge on what the industry trends are and what they need to be aware.
Reference: Pinal Dave (https://blog.sqlauthority.com)