Paras Doshi is known SQL Azure Expert has written following guest blog post to keep alive the spirit of Interview Questions and Answers Series. I encourage all the readers to read his excellent blog and follow him on twitter.

1.What is SQL Azure?

SQL Azure is a cloud based relational database as a Service offered by Microsoft. Conceptually it is SQL server in the cloud.

2.What is cloud computing?

National Institute of standards and computing definition of cloud computing:

Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

[TIP: Remember Key words On Demand, Scalable, Self-service, and Measurable. Now take the first word from each key word which gives us OSSM which can be pronounced as Awesome. Thus remember cloud computing is Awesome! Tip courtesy: Dave Nielsen]

3.How is SQL Azure different than SQL server?

SQL Azure is a cloud based service and so it has own set of pros and cons when compared to SQL server. SQL Azure service benefits includes on demand provisioning, high availability, reduced management overhead and scalability. But SQL Azure abstracts some details from the subscriber which can be good or bad which depends on the context of the need.

4.How many replicas are maintained for each SQL Azure database?

For each database, three replicas are maintained for each database that one provisions. One of them is primary replica. All read/write happen on primary replica and other replicas are kept in sync with primary replica. If for some reason, primary goes down, other replica is promoted to primary. All this happens under the hood.

5.How can we migrate from SQL server to SQL Azure?

For Data Migration, we can use BCP or SSIS. And for schema Migration we can use Generate Script Wizard. Also, we could use a Tool called SQL Azure migration wizard available on codeplex.

6.Which tools are available to manage SQL Azure databases and servers?

SQL Azure service allows blocking a request based on its IP address through SQL Azure firewall. It uses SQL server Authentication mechanism to authenticate connections. Also connections to SQL Azure are SSL-encrypted by default.

8.What is SQL Azure Firewall?

SQL Azure firewall is a security mechanism that blocks requests based on its IP address.

9.What is the difference between web edition and business edition?

SQL Azure Web edition database Max Size is 5 GB whereas the business edition supports Max Size up to 50 GB. The size of a web edition database can be increased (/decreased) in the increments (/decrements) of 1 GB whereas the size of a business edition can be increased in the increments of 10 GB.

10.How do we synchronize On Premise SQL server with SQL Azure?

We could use a No code solution called DATA SYNC (currently in community technology preview) to synchronize on-premise SQL server with SQL Azure. We can also develop custom solutions using SYNC framework.

11.How do we Backup SQL Azure Data?

SQL Azure keeps three replicas of a database to tackle hardware level issues. To tackle user level errors, we can use COPY command that allows us to create a replica of a SQL Azure database. We can also backup SQL Azure data to local SQL server using BCP, SSIS, etc. but as of now, point in time recovery is not supported.

12.What is the current pricing model of SQL Azure?

Charges for SQL Azure consumption is based on 1) Size 2) Data Transfer.

As of now, we have to build custom solution at application level that can handle scale out of underlying SQL Azure databases. But Microsoft has announced, SQL Azure Federations that will assist scaling out of SQL Azure databases. And scale out means that we are splitting the data into smaller subsets spread across multiple databases.

15.What happens when the SQL Azure database reaches Max Size?

Read operations continue to work but create/insert/update operations are throttled. You can drop/delete/truncate data.

16.How many databases can we create in a single server?

150 databases (including master database) can be created in a single SQL Azure server.

17.How many servers can we create in a single subscription?

As of now, we can create six servers under a single subscription.

18.How do you improve the performance of a SQL Azure Database?

We can tune a SQL Azure database using information available from execution plan and statistics of a query. We could use SQL Azure’s Dynamic Management views to monitor and manage SQL Azure database.

[A constantly updated list of SQL Azure features is available at http://beyondrelational.com/whatisnew/sqlserver/azure.aspx]

21.When does a workload on SQL Azure get throttled?

When database reaches its maximum size update/insert/create operations get throttled. Also there are policies in place that does not allow to a workload to exploit a shared physical server. In other words, the policies make sure that all workload get a fair share of shared physical server. Now, a workload can get soft throttled that means that the workload has crossed the safety threshold. A workload can also got hard throttled which means that a SQL Azure machine is out of resources and it does not accept new connections. We can know more about what happened by decoding reason codes.

These were SQL Azure specific interview questions but remember that SQL server specific interview questions that we have seen so far can also appear in SQL Azure context since SQL Azure is “SQL server in the cloud”. Also questions specific to supported/unsupported features can be asked. I have not included the questions specific to unsupported features because it keeps on changing. Read general guidelines and limitations. Also note that SQL Azure is evolving very fast and it is important to keep a tab on the features that are added in service releases.

Recently we started experimenting with MS Azure platform as the new base for about a hundred sites that we host on a shared server elsewhere for clients.

The biggest hurdle we faced was “Dates”. SQL Azure only handles US date format. This is not only a huge hassle for the end user, but also an absolute showstopper for our proposed project.

We tried to go up the MS ladder to get someone to help us resolve this issue, and all we get back is that either we handle all dates as US in our code, or that all SQL statements in out code get prefixed with “SET DATEFORMAT DMY;”.

There is nothing new in both these solutions, but the amount of effort and cost involved in modding those hundred odd sites with the above fixes is unjustifiable. The code wasn’t written with “best practices” in mind and so, changing it will be a laborious unchargable task.

Hi Pinal…need some assistance regarding moving file groups…the requirement is as follows ————————————- – Move all non-clustered indexes to INDEX01 file group – Move all user (U) type tables and clustered indexes to DATA01 file group ————————- I need to perform teh above in 3 databases,and in each database we have 4 schemas,and in each database we have more than 100+ tables,can you please provied me some scripts if you have to move the tables all at a time or do we have any alternative to do this…

Nice article about SQL Azure. As SQL Azure don’t support trace flags and profiler, I want record all the TSQL’s running in a particular time interval as we are tracing TSQL’S in sql profiler is there any way to sort this? Thanks in advance.

While Migrating my database to Windows Azure i am getting this below error.Can Any one help me with some suggestions.. Error SQL71005: Error validating element [dbo].[GetStockDetails_StoreWise]: The reference to the column ItemName could not be resolved.

Error SQL71564: The permission ‘CONNECT’ is not valid for the target object ‘guest’ in Microsoft Azure SQL Database v12.

While Migrating my database to Windows Azure i am getting this below error.Can Any one help me with some suggestions. Error SQL71005: Error validating element [dbo].[GetStockDetails_StoreWise]: The reference to the column ItemName could not be resolved.

Error SQL71564: The permission ‘CONNECT’ is not valid for the target object ‘guest’ in Microsoft Azure SQL Database v12.

I do agree with alll of the ideas you have introduced for your post. They’re really convincing and will certainly work. Still, the postss are too short for newbies. Could you please prolong them a little from subsequent time? Thanks for the post.

Pinal Dave is a technology enthusiast and an independent consultant. He has authored 11 SQL Server database books, 21 Pluralsight courses and have written over 3800 articles on the database technology on his blog at a http://blog.sqlauthority.com. Along with 14+ years of hands on experience he holds a Masters of Science degree and a number of database certifications. For any SQL Server Performance Tuning Issue send email at pinal @ sqlauthority.com .

Nupur Dave is a social media enthusiast and and an independent consultant.