What is most valuable?
- Memory-optimized tables
- Elastic scale
- Azure portal management tools
How has it helped my organization?
Some customers' applications require very large tables (large number of records). Here are examples of how this solution helped them:
- Performance of memory-optimized tables in SQL Azure exceeds that of an on premise SQL Server
- Microsoft adds new features, including bug fixing, to SQL Azure every fortnight on the average.
- Performance benchmark: There is a benchmark suite that is relevant, Azure SQL Database Benchmark (ASDB). This benchmark includes metrics in plans for the three-service tiers, Basic, Standard and Premium. (In-Memory OLTP support is only available in Premium tier plans.)
The main reason for the business case of using SQL Azure for a few large tables for our customer was as follows:
- Most of the tables in the data model (DM) for the application are small enough to have required performance in a Standard Edition of an on premise SQL Server instance. Only four tables are large enough and have peaks of concurrent transactions per minute that are large enough to require in-memory OLTP support.
- We needed to compare TCO for an Enterprise on premise SQL Server instance for the entire DM (that would be mainly under-utilized) versus TCO of a Standard on-premises for most of the DM + TCO of SQL Database with in-memory OLTP support for these four tables. (TCO for this scenario includes an estimate of changes in the design of the application.)
- This TCO comparison was calculated for a period of two years. That is the time between a given version of on premise SQL Server and the next version.
- The end result was a lower TCO for the second scenario. The first scenario implies paying an Enterprise instance up-front at the start of the two year period.
- In the second scenario, the application would have two data repositories. Transactional control for the app is the reason why I mentioned the limitation of the SQL database. It only supports distributed transactions between instances of SQL Azure. That was a technical problem to solve. This was one of the main reasons for the changes in the app in the second scenario.
- We had to make some changes to the app to separate transactions and their contexts for the two repositories.
- In this case, it would be an improvement if Microsoft were to provide support of distributed transactions between SQL Azure instances. We would also like to see support for other kinds of services for Microsoft and other vendors who support standard distributed transactions.
What needs improvement?
SQL Azure only supports distributed transactions with other instances of SQL Azure. This has been an obstacle for us.
For how long have I used the solution?
I have been using this product for almost four years.
What was my experience with deployment of the solution?
You can deploy your solution to a SQL Azure database directly from SQL Server Management Studio (the same tool used to manage solutions for On Premises SQL Server editions), so, the transition from SQL Server On Prem deployment to SQL Azure deploy presents no issues.
What do I think about the stability of the solution?
There have been no issues with stability.
What do I think about the scalability of the solution?
There have been no issues with scalability. This is a strong feature of the product.
How is customer service and technical support?
Microsoft has very good customer service, both free and paid customer service (by free customer service I mean customer service on free cloud solutions like Outlook.com) Technical Support
Microsoft has very good technical support for this service and product, as usual. Regarding SQL Azure, the amount of free online resources for developers is huge and relevant.
Which solutions did we use previously?
For some customers' applications, we switched from memory optimized tables with on premise instances to SQL Azure instances. The switch happened under the same SQL Server umbrella.
How was the initial setup?
It takes some time to get accustomed to the Azure portal and to navigate through its tools and options. You can also connect directly from the SQL Server Management Studio. It is fairly easy to configure the proper parameters for connection. Once you are connected, it is transparent for any experienced SQL Server DBA or SQL developer.
What's my experience with pricing, setup cost, and licensing?
Even if you are an experienced SQL Server DBA, there is some learning to do to be able to develop, deploy and manage SQL Azure solutions. At Microsoft Virtual Academy there is a set of free courses to learn all this.
You can use a free SQL Azure account to do some of the required practice while learning (bear in mind that the free account for all Azure tools, including SQL Azure, requires that you provide credit card information), but you will also need to license a SQL Azure plan for actual deployment and use of the solution: Basic plans, Standard Plans, Premium Plans.
You can choose a plan according to the amount of resources used by your solution (storage required, number of transactions, etc.), such that the hourly rate of the chosen plan is tied to the range of resources used.
The main setup cost that we have experienced is basically time required to do the training, and payment of a plan during the development and testing of the solution.
Which other solutions did I evaluate?
I did not evaluate anything else. I started using SQL Azure through teaching some MOC courses that included it, in early 2013. I had the chance to get to really know the product and the service.
What other advice do I have?
For any potential customer who is considering migrating an app to SQL Azure, my advice is:
- Spend enough time analyzing if SQL Azure offers you a viable business case for the said app. It may or may not offer this to you!
- It is very important that you have a thorough understanding of the performance details and issues of the current app from a standpoint of the database engine. This is mainly with DMVs and DMFs, if you are using an on premise SQL Server.
Disclosure: My company has a business relationship with this vendor other than being a customer: I teach MOC courses (Visual Studio, SQL Server) at a Microsoft Certified Training Center, on a continuous basis since 2007. This is as far as I have a relationship with the vendor (Microsoft).
Aug 02 2017