Using SQL Server in Microsoft Azure Virtual Machine? Then you need to read this…

Over the past few months we noticed some of our customers struggling with optimizing performance when running SQL Server in a Microsoft Azure Virtual Machine, specifically around the topic of I/O Performance.

We researched this problem further, did a bunch of testing, and discussed the topic at length among several of us in CSS, the SQL Server Product team, the Azure Customer Advisory Team (CAT), and the Azure Storage team.

Based on that research, we have revised some of the guidelines and best practices on how to best configure SQL Server in this environment. You can find this collective advice which includes a quick “checklist” at this location on the web:

If you are running SQL Server already in Microsoft Azure Virtual Machine or making plans to do so, I highly encourage you to read over these guidelines and best practices.

There is other great advice in our documentation that covers more than just Performance Considerations. You can find all of these at this location:

If you deploy any of these recommendations and find they are not useful, cause you problems. or are not effective, I want to hear from you. Please contact me at with your experiences

Bob Ward


Comments (4)
  1. says:

    Great suggestions. Why not give this as SET DEFAULT option when user chooses to create a SQL Server on Windows Azure Virtual Machine, that way every user DOES NOT have to worry about setting these options individually

  2. Niklas H says:

    Question: Why do you suggest disabling geo replication for the storage account? According to documents, the replication is done asynchronously and should not affect performance?

  3. Bob Ward says:

    Prasanna, thank you for your suggestion. We are always looking to make the process of deploying on Azure Virtual  Machine simpler and easier so your suggestion is something we are certainly looking into.

  4. Bob Ward says:


    Our suggestion for disable geo-replication is explained later in the same document

    In addition, we recommend that you create your Azure storage account in the same data center as your SQL Server virtual machines to reduce transfer delays. When creating a storage account, disable geo-replication as consistent write order across multiple disks is not guaranteed. Instead, consider configuring a SQL Server disaster recovery technology between two Azure data centers. For more information, see High Availability and Disaster Recovery for SQL Server in Azure Virtual Machines.

Comments are closed.

Skip to main content