Windows Azure SQL Database Deep Dive Chris Auld CTO – Intergen AZR432
Nomenclature SQL Database = SQL Azure
On Prem Provisioning ModelCloud Provisioning Model
Single tenant per database Multiple-tenants per databaseMultiple databases per tenant
Federations in SQL Azure
SalesDB Orders_federation fed_name Federation Members just SQL Database instances Federation Root just a SQL Database instance Federations member: Range [1000, 2000) AU PK=5 AU PK=25 AU PK=35 AU PK=5 AU PK=25 AU PK=35 AU PK=1005 AU PK=1025 AU PK=1035 Atomic Units Smallest granule of federation key Range Partitioning
SalesDB Orders_federation Orders_Fed [5000, 10000) ALTER FEDERATION Orders_Fed SPLIT AT (tenant_id=7500) [5000, 7500) & [7500, 10000)
SalesDB Orders_federation Orders_Fed USE FEDERATION Orders_Fed(tenant_id=7500)
A Quick Lap of Federations
Scale Out with SQL Database Database Design
SalesDB CustomerFederationeration CustomerFederation Federated Tables and Reference Tables Central Tables
Table Groups Orders_federation fed_name
Federation Columns Orders_federation fed_name
Scale Out with SQL Database Application Programming
SalesDB CustomerFederationeration CustomerFederation Range Distribution [min,1000, 2000, 3000 … , 10000, Max] -- Connect to Root Database USE FEDERATION CustomerFederation(customer_id = 5075) …
Connecting to Federations Filtering Connections Microsoft Confidential SalesDB member: Range [100,200) orders (federated) CustomerFederation orderdetails (federated) Uszipcodes (referece) CustomerFederation Customer_id=55
Connecting to Federations Member Connections Microsoft Confidential SalesDB member: Range [100,200) orders (federated) CustomerFederation orderdetails (federated) Uszipcodes (referece) CustomerFederation Customer_id=55
//MEMBER QUERY //start from the first member – min value USE FED f(id=min) WHILE (nextvalue != NULL) //get results into dataset DataAdapter.Fill(ds); //get the value to navigate to the next member nextvalue = SELECT range_high FROM sys.federation_member_distributions //SUMMARY QUERY LINQ2DataSet(ds)
Fan-out Queries Submitting Fan-out Queries with Sample Fan-out Query Utility Demo
Scale Out with SQL Database Administration
Managing Members Managing members and schemas with fan out tool Demo
Recent Changes Available Today Changes Coming in the Next Quarter
Gateway Nodes DB Nodes App Server #Users
DR simplified with Federations
SalesDB Orders_federation Orders_Fed Unavailable Federation Members Federation Root Federations db1
SalesDB Orders_federation Orders_Fed Federations DBCopy now PITR 6/11/ :00:00
SalesDB Orders_federation Orders_Fed Federations Swap Out Drop Copy Data In
P’ S’ S’ P S S