Fan out queries: where a query can be run against every container in parallel and the results returned and a union-all performed at the client. This is an important scenario for us and we are looking at how we can make this pattern run effiAuto partitioning. Multi-spindle storage solution. 10 drives look like 1 logical drive.
Here is my "current" take: In a pure multi-tenant architecture a single instance of the hosted application is capable of servicing all customers (tenants). Unlike more classical web applications or web services “in the cloud” which behave the same way for each requests, a multi-tenant architecture is designed to allow tenant-specific configurations at the UI (branding), business rules, business processes and data model layers. This is has to be enabled without changing the code as the same code is shared by all tenants, therefore transforming customization of software into configuration of softwre. As you can imagine, this drives the clear need for "metadata driven everything". The other main challenge is being able to co-locate (mingle and “de-mingle”) persistent data of multiple tenants in the same data infrastructure. In other words, the challenge for the multi-tenant application is to behave as if it was fully dedicated to a single tenant but is actually serving all of them in parallel on the same code base. I call this "you are my #1 customer" approach; which means every customer believe they are the #1 customer but in reality they are all served by a talented customer rep.http://blogs.msdn.com/gianpaolo/archive/2006/02/26/539717.aspx
Clustered indexes sort and store the data rows in the table based on their key values. There can only be one clustered index per table, because the data rows themselves can only be sorted in one order. For more information about clustered index architectureWith few exceptions, every table should have a clustered index defined on the column, or columns, that offer the following: Can be used for frequently used queries. Provide a high degree of uniqueness. Can be used in range queries.Distributed Query – reference multiple linked servers and can perform either updae or read operations against each individual linked serverDistributed transactions span two or more servers known as resource managers. The management of the transaction must be coordinated between the resource managers by a server component called a transaction manager.DDL – data definition language statement to create drop or alter mining models and multidimensional objects such as cubes and dimensions
Database files can be grouped together in filegroups for allocation and administration purposes. Some systems can improve their performance by controlling the placement of data and indexes onto specific disk drives. Filegroups can aid this process. The system administrator can create filegroups for each disk drive, then assign specific tables, indexes, or the text, ntext, or image data from a table, to specific filegroups.
mw1c22vaga.database.windows.netjamesLatringo09!IEDOTNET_StudyGroups.StudentsSELECT ToCreate DB. Right click, New DatabaseNew TableCREATE TABLE [dbo].[MyTable]( [Id] [int] IDENTITY(1,1) NOT NULL, [FName][nvarchar] (50) NOT NULL, [LName][nvarchar] (50) NOT NULL CONSTRAINT PK_MyTable PRIMARY KEY ([Id] ASC))GO
Real World Sql Azure
Real World SQL Azure<br />…and some other nifty stuff<br />James Johnson<br />Founder and President, Inland Empire .NET User’s Group<br />Microsoft MVP<br />e: firstname.lastname@example.org t:@latringo<br />www.duringlunch.com<br />
Founder and President of the Inland Empire .NET User’s Group<br />Microsoft MVP, Evangelist, Influencer, Software and Database Architect, Author, Coach, Facilitator, and Mentor<br />ADHD/ADD/OCD when it comes to new technology<br />Can’t stay away from the shiny new stuff.<br />Email: email@example.com<br />Blog: www.duringlunch.com<br />Twitter: @latringo<br />Who am I?<br />
Familiar SQL Server relational model<br />Uses existing APIs & tools<br />Friction free provisioning and reduced management<br />Built for the Cloud with availability and scale<br />Accessible to all from PHP, Ruby, and Java<br />What is SQL Azure<br />
Maximum single database size is currently 10GB<br />Database size calculation <br />Includes: primary replica data, objects and indexes<br />Does NOT include: logs, master database, system tables, server catalogs or additional replicas<br />V1 does not support auto-partitioning or fan-out queries<br />Must handle partitioning logic within the application<br />Special ConsiderationsDatabase Size<br />
Support common application patterns<br />Logical/policy based administration<br />Patterns work from SQL Server to SQL Azure<br />Multi-tenancy considerations<br />Throttling and load balancing<br />Limits on DB size, transaction duration<br />Compatibility Goals<br />
Compatibility for V1<br />In Scope<br /><ul><li> Tables, indexes and views
Trace Flags</li></li></ul><li>Connect via ADO.NET, ODBC, etc.<br />OLE DB is NOT supported<br />May need to include <login>@<server><br />Use familiar tools (sqlcmd, osql, SSMS, etc)<br />Current version of SSMS is not fully supported but it works<br />SSMS 2008 R2 CTP has connection capability<br />http://blogs.msdn.com/ssds/archive/2009/11/11/9921041.aspx<br />Connecting to SQL Azure<br />
Connecting to SQL Azure with SSMS 2008 R2<br />Demo<br />
Since SQL Azure supports only a subset of features, some modifications need to be made<br />Migrating an existing schema<br /><ul><li>User Defined Data Types