I have multiple Azure SQL Databases and when I connect to them using SQL Server Management Studio, they all appear to be running on the same VM -- meaning, when I connect to the instance of SQL Server, I see my databases listed in Object Explorer.
With that said, should I assume that the DTU level set through the portal is only a throttling setting? In other words, should I assume that the databases are already running on a pretty powerful instance but based on DTU settings, Azure is throttling up/down allowed requests?
I don't think it would make a lot of sense for Microsoft to move a database to a new instance when the DTU level is increased.
Yes, you are correct, DTU is not a VM total capacity, just a way to cap database performance.
DTU is for individual databases, and can range from a small percentage of VM resources to the entire database taking one single machine. Azure doesn't guarantee all the databases under one server belongs to one physical sql server instance. The databases can potentially spread across multiple sql instances though they belongs to one logical server. For checks like firewall, it appears the instances cross connect to the master database and query the rules.
Related
The question: Is it possible to point a view in database A running on Azure SQL Database service to tables/views on a SQL server running in a VM? I've tried external tables but come up short.
Scenario:
Two applications that is exchanging data, from two different vendors.
We've got three databases in total. One for each application and an integration database with views that both applications use either directly or through views.
The issue now is that we want to migrate to Azure and would prefer to use the Azure SQL Database service as much as possible, but one of the applications is not ready for it and therefor it's database has to be hosted on either a managed instance or in a VM.
The issue now is that there's view's in database A (running on Azure SQL Database service) that points to views and tables in the integration database, which again references tables in database B (running on SQL Server on the VM).
The short answer is "no". You can use external tables to query other SQL Azure databases, but there is no exact analogue for linked servers in Azure SQL Database. You can use SQL Azure Managed Instance (which supports SQL-SQL linked servers but not arbitrary linked servers).
There is a workaround, however. You can run SQL Server in an Azure VM and have it point to SQL Azure as a target as well as the other sources you want to connect. Then you can push data to/from Azure SQL DB using the SQL Server in a VM. You don't have the same management overhead in this approach since you don't really need to host data in the SQL Server if you don't want to do so. Note that this will be slower than doing direct connections to SQL Azure, but you can try to do this for a period of time if it would help you during a migration.
I'd like to make a direct comparison of a physical server to a serverless Azure SQL environment by using an hour snapshot of all SQL Server activity from some existing infrastructure.
Is it possible to use the SQL Server Profiler to record trace data and replay this on an Azure SQL instance? I am not attempting to tweak or performance tune the existing system, but want to compare how an Azure server at various tiers will perform that workload.
Another option might be to use the SQL Server Distributed Replay functionality if this is an option in Azure.
SQL Server profiler and Distributed Replay are not available.
https://feedback.azure.com/forums/217321-sql-database/suggestions/431943-profiler-for-sql-azure
You may want to try SQL Workload Profiler.
https://cbailiss.wordpress.com/sql-workload-profiler/
SQL Azure Managed Instances will soon have SQL Profiler available:
https://www.youtube.com/watch?v=0uT46lpjeQE&feature=youtu.be&t=1415
your entire question boils down to how can i choose the correct tier in sql azure for my on premises instances..
As alberto points out,there is no way to handle this now directly,for now you can use below workaround
go to http://dtucalculator.azurewebsites.net/ and download powershell script and schedule it for some duration and upload the generated log files to azure website.Once done, you will be provided with chart like below ..
References:
https://www.simple-talk.com/cloud/platform-as-a-service/azure-sql-database-how-to-choose-the-right-service-tier/
I'm exploring whether to use Azure SQL Database or SQL Server in Virtual Machine. What are the pros and cons each of them?
Thank You.
Well...SQL Azure is PaaS, and Sql Server in VM is IaaS. Just to highlight some differences.
Control & Features - You got a greater control and features in IaaS where else in PaaS you got to stick with the features they have.
Redundancy & Backup - By default, SQL Azure comes with 3 copies of redundancy and you can enable geo-replication to nearest datacenter too. Backup is automatically done for 7 days and onwards depending on the pricing tier.
Cost & Ownership - Basic DB in SQL Azure cost you USD5, however in VM, you can host as many db possible albeit more expensive to rent a single VM.
Check this link out to find out more details
I'd like to compare Windows Azure SQL Database and SQL Server on VM. So I'd like to ask:
which SQL server edition on Windows Azure(S,M edition; Web or Standard) should I choose to compare it with Windows Azure SQL Database Web. I know that these are different concepts PaaS IaaS and so on. In my question I am referring to your experience with these two technologies and their performance. I know that it would be roughly comparison
I made comparison for Azure SQL and SQL Server Std hosted on Azure VM (Large (A3)) for 2GB database. I just copied DB from Azure to VM, so, basically, I had 2 Databases with identical data and was able to run same queries.
SQL Azure DB has known advantages, but when it goes to performance people starts crying:
Getting last 1000 transactions from ~100k transactions with many joins takes:
Azure SQL: 7:40 mins
SQLServer on VM: 2:30 mins
Getting 10 transactions with specific parameter's:
Azure SQL: 3:57 mins
SQLServer on VM: 1:05 mins
In this test I didn't care about query performance, I just want to see the difference for the same data/queries between Azure SQL and SQL Server on Azure VM. As you see, it's very differ.
Roughly, Windows Azure SQL Database is comparable to the features of SQL Server 2012 Standard Edition, but this comparison is only approximate, because each offer is meant for a different use case and offers a different balance of features.
In Understanding Azure SQL Database and SQL Server in Azure VMs you'll find a detailed comparison. Some distinctive characteristics are:
SQL Database is highly available; each database is backed by 3 servers; each operation will only be completed when it is accepted by at least 2 servers. This leads to a higher latency than SQL Server on a single server.
SQL Database runs on cloud infrastructure. Client applications must be fault-tolerant.
SQL Database runs on shared resources, so clients may experience performance fluctuations. The Premium Offer for Windows Azure SQL Database delivers more powerful and predictable performance.
SQL Database has a few limitations on support for features, Transact-SQL, Data Types and Tools and Utilities.
See also how to Compare SQL Server with Windows Azure SQL Database and the guidance on SQL Server in Windows Azure Virtual Machines.
Regarding Windows Azure SQL Database Web edition: Web and Business editions are identical except for storage capacity (see my detailed SO answer about this, here), so it doesn't matter for your comparison.
Regarding SQL Server editions, I think this is going to be primarily a difference in features and licensing, not performance. That said: If you choose the Enterprise edition, you may find more features are active, therefore consuming more resources. Fortunately the Web, Standard, and Enterprise editions are all in the Virtual Machine gallery, so you can deploy any of them without having to do a custom install.
When comparing Windows Azure SQL Database with SQL Server, you should probably start with this MSDN article which goes into detail about the limitations of SQL Database as well as T-SQL differences.
I'm trying to connect to my database that is located in a server with lots of other databases (that belongs to other people that are on the same hosting company).
Due to my low internet speed after I connect as I click on expanding databases most of the time I get no results waiting.
Is there a way that I can filter databases that only would load my databases ignoring the others?
Consider denying the server permission VIEW ANY DATABASE to yourself or ask the server's DBA to do it.