Sql azure dec_2010 Lynn & Ike


Published on

Survey of SQL Azure, SQL Azure Data Sync, SQL Azure OData Feeds, SQL Azure Data Migration Wizard, Roadmap, and PowerPivot Integration. Given on Day of Azure 2, Dec 4th, 2010. Presented by Ike Ellis & Lynn Langit

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Lynn then Ike
  • Lynn
  • LynnMany solutions will use a hybrid (i.e. mixed) approach
  • LynnWe have included this feature comparison table in anticipation of your likely questions about differences between using a relational database table as you may be currently doing with your SQL Server databases and the new Windows Azure Tables included in Windows Azure.
  • LynnCode Far works with any type of code – i.e. Java, etc.. Does NOT have to be Azure or .NET
  • IkeSLA InformationSQL Azure customers will have connectivity between the database and our Internet gateway. SQL Azure will maintain a “Monthly Availability” of 99.9% during a calendar month. “\\Monthly Availability Percentage” for a specific customer database is the ratio of the time the database was available to customer to the total time in a month. Time is measured in 5-minute intervals in a 30-day monthly cycle. Availability is always calculated for a full month. An interval is marked as unavailable if the customer’s attempts to connect to a database are rejected by the SQL Azure gateway.Download SQL Azure SLA.
  • Ikehttp://social.technet.microsoft.com/wiki/contents/articles/inside-sql-azure.aspx
  • Ike
  • Lynnhttp://www.microsoft.com/windowsazure/evidence/
  • Lynn talks, Ike types
  • Lynn talks, Ike types
  • Lynn
  • IkeSample code to handle re-try attempts for dropped connections - http://blogs.msdn.com/b/sqlazure/archive/2010/05/11/10011247.aspx
  • IkeIkeSteve Hale (Microsoft) authored this article at http://blogs.msdn.com/sqlnativeclient/archive/2010/02/12/using-sql-server-client-apis-with-sql-azure-vversion-1-0.aspxAlso updated MSDN Dev Guide 'How to connect' http://msdn.microsoft.com/en-us/library/ee621787.aspxUsing SQL Server Client APIs with SQL Azure Version 1.0 This post describes some of the issues that the application developer should be aware of when writing ODBC, ADO.NET SQLClient, BCP, and PHP code that connects to SQL Azure. See also SQL Azure documentation on MSDN (http://msdn.microsoft.com/en-us/library/ee336279.aspx). Supported components1. Microsoft SQL Server Native Client 10.0 ODBC Driver or newer. This is a free download.2. Microsoft PHP 1.1 driver or newer. Again a free download.3. SQL Server 2008 BCP.EXE or newer. The caution here is that the queryout option is not fully supported for SQL Server 2008 RTM. Queryout is expected to be fully supported in a future release of SQL Server.4. ADO.NET 3.5 SqlClient or newer.Any other components are NOT currently supported for connecting to SQL Azure. In particular it should be noted that OLEDB connections are not currently supported from any OLEDB provider, even SQL Server 2008 Native Client OLEDB provider. ODBC connections using the on-the-box ODBC driver “SQL Server” are not currently supported.Connecting1. valid server name, user ID, and password for SQL Azure2. On the SQL Azure portal, set the firewall rules to allow your client IP address to connect to SQL Azure. Additionally, in some corporate environments, you might need to install Microsoft Firewall Client for ISA Server on the client machines or connections will not succeed. And in those environments, using IIS might require the default IIS settings for Application Pool Identity to be changed. Here is how that setting is changed: Open IIS Manager in Admin Tools, select Application Pools, Pick the pool, Advanced Setting and under Process Model change Identity from BuiltInAccount\\ApplicationPoolIdentity to Custom account domain account. Restart IIS.SQL Azure supports only TCP/IP connections using port 1433 (default for most SQL Server APIs) if other protocol choices (named pipes or using other ports) Additionally, most client APIs do not send the server name when connecting, thus the server name should be included as part of the user ID. Currently the only exception to this is .NET 4.0 which does send the server name. ODBC, BCP, PHP, and .NET 3.5 all require the server name to be sent as part of the user ID. This may change in a future release. Connection strings are all similar for each API stack and require the server name, user ID, password, and optionally the database. Trusted connections (also known as Integrated Security or Windows Authentication) are not supported. MARS is not yet supported by SQL Azure so make sure MARS is not enabled in the connection string.Creating and Connecting to a DatabaseSQLCmd example: sqlcmd -S o8uyxb64fe.ctp.database.windows.net -U <MyUserID>@o8uyxb64fe -P <MyPassword>Note the required server name (in yellow) included as part of the user ID.In the above example the database was not specified. In that case the default database “master” is used. You must connect to the master database to create databases or drop databases. Since the “USE database” command is not supported, you must disconnect after creating a database and reconnect directly to the user database. In this example we connect directly to the Northwind database.sqlcmd -S o8uyxb64fe.ctp.database.windows.net -U <MyUserID>@o8uyxb64fe -P <MyPassword> -d NorthwindCreating tablesTable creation is restricted to user databases; you cannot create tables in the master database. Table creation is substantially the same as on SQL Server, with the exception that certain data types are not supported, for example CLR User Defined Types, Filestream, and row guid types. Also, it should be mentioned that SQL Azure requires a clustered index or primary key (which uses a clustered index by default) before data can be inserted into a table. For this reason a clustered index or primary key must always be created for any table intended to contain data.Example:Create table employees(EmployeeIDint primary key, EmployeeNamevarchar(30))OrCreate table employees(EmployeeIDint, EmployeeNamevarchar(30))Create clustered index empIndex on employees(EmployeeID) Unsupported features· “USE database” is not supported· 3-part names are not supported unless the database being referenced is the current database.· Creating or dropping a database when not in the master database· Insertion of data into a table without a clustered index.· MARS connections· Trusted connections· CLR UDTs· XML schema collections· Distributed transactions (local transactions are supported)· AttachDB· Certain stored procedures, for example sp_who and undocumented stored procedures used to support OLEDB schema rowsets. Deprecated functionalitySome features are deprecated in SQL Server and should not be used in new application development. In most cases SQL Azure does not support deprecated SQL Server features. Some examples of these are:· System tables such as sysobjects, sysusers, or sysdatabases. Use the new system views instead. See http://msdn.microsoft.com/en-us/library/ms187997.aspx for a mapping to the new system views.· Numbered stored procedures· “select into” syntax· “COMPUTE BY” clause· Two-part drop index statements See http://msdn.microsoft.com/en-us/library/ee336281.aspx for more detailed Transact-SQL support.Connection behaviorSQL Azure connections will behave somewhat differently than SQL Server connections. They can be dropped for a number of reasons:· Excessive resource usage· Long-running queries· Long-running single transactions· Idle connections· Failover due to server failuresFor this reason it’s best to avoid caching connections for later use. A better strategy is to open the connection when needed, use it, and then close it. Additionally, it is recommended that applications provide retry/reconnect logic to recover from dropped connections.LatencyLatency may be a concern when using SQL Azure unless the SQL Azure server is located near the application (“code near” scenario), such as with Windows Azure and a co-located SQL Azure. Making many round trips to the server can introduce noticeable delay in an application that previously performed adequately when running against a SQL Server on the intranet. Ensure the application connects to the nearest SQL Azure server and that round trips are minimized. SUMMARYü Use only supported client components to connectü Connect using TCP/IP and port 1433ü Use SQL Authentication only, not Trusted Connections/Integrated Authentication/Windows Authentication.ü Specify the server name in the user ID.ü Ensure the firewall rules in the SQL Azure portal permit your IP address.ü Install Microsoft Firewall Client for ISA Server if needed.ü Change the IIS Application Pool Identity if needed.ü Make sure MARS is not enabled.ü Connect to the master database to create or drop databasesü Create a user database for your application since tables cannot be created in masterü Disconnect and reconnect to change databasesü Create a clustered index or primary key on a table before inserting data.ü Remove any unsupported or deprecated features from the application.ü Avoid caching connections. Open the connection, use it, and then close it.ü Avoid making numerous round trips to the server.
  • Ike talk, Lynn typeSample Connection StringServer=tcp:server.ctp.database.windows.net;Database=<databasename>;User ID=user@server;Password=password;Trusted_Connection=False;
  • Ike talk, Lynn type
  • Ike talking, Lynn is typing
  • Ike talking
  • Lynn talkingFan 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 efficientlyAuto partitioning. Multi-spindle storage solution. 10 drives look like 1 logical drive.“Sharding” Utility written with .NET 4.0 TPL at http://enzosqlshard.codeplex.com/
  • LynnClustered 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
  • Lynn
  • LynnDatabase 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.
  • Lynn talks, Ike typesUnder “Set Scripting Options”, click Advanced and set “Script for database engine type” to SQL Azure DatabaseFor BCPScenario - BCP / Bulk CopyHigh speed programmable data import and export Best Practices Optimize Databases for Data ImportDisable/Delay creation of none Clustered IndexesOrder Data on the Clustered IndexDisable Triggers and Constraint checking-N Native mode so no data type conversion needed. -c Character mode for interoperability-b batchsize will let you control transaction size-h”TABLOCK, ORDER(…)” optimize writesFor SSISSSIS Design Surface - Data Flow TaskDiverse Source and destinationsTo/From Flat Files, ADO.Net, OleDBFully programmable flow Loops, Sorts, Conditional operators, XML/WebServices Processing etcVS Debugging support with data viewers, watches and conditional breakpointsBest Practices – Data Flow TaskRemember; Optimize Databases for Data ImportDisable/Delay creation of none Clustered IndexesOrder Data on the Clustered IndexDisable Triggers and Constraint checkingBatch Size: Adjust the transaction sizeBuffer and Blob temp storage area; spread over to multiple drives for large data transfersParallelization – based on execution trees, task will auto parallelize
  • SQL Azure firewall prevents all access to a SQL Azure server. The IP addresses of the machines that need access need to be granted access before they can attempt to connect to SQL Azure server. This can be done via the Firewall Settings tab under the Server Administration page on the SQL Azure portal. There is also a checkbox “Allow Microsoft Services access to this server”. Checking this will allow connections coming from your applications hosted in Windows Azure. The article How to Configure SQL Azure Firewall has more detailed information and instructions on configuring the firewall.http://msdn.microsoft.com/en-us/library/ee621782.aspxThe SQL Azure Database service is only available with TCP port 1433After you have used the SQL Azure portal to create a firewall setting that enables connection to your SQL Azure server, you can use the server-level principal login and the master database to view and edit your firewall settings.In the master database, the firewall settings are referred to as rules. The sys.firewall_rules view displays the current firewall settings and the sp_set_firewall_rule and sp_delete_firewall_rule stored procedures allow you to change the firewall settings. For Web roles - Check “Allow Microsoft Services access to this server” option under the Firewall Settings tab in the Server Administration page on the portal.
  • IKE talksFull list athttp://www.microsoft.com/sqlserver/2008/en/us/R2.aspx
  • Lynn
  • Lynn sys.dm_exec_connections – This view returns information about the connections established to your database.· sys.dm_exec_requests – This view returns information about each request that executes within your database · sys.dm_exec_sessions – This view shows information about all active user connections and internal tasks. · sys.dm_tran_database_transactions – This view returns information about transactions at the database level.· sys.dm_tran_active_transactions – This view returns information about transactions for your current logical database.· sys.dm_db_partition_stats – This view returns page and row-count information for every partition in the current database.
  • LynnFrom SSDS blog http://blogs.msdn.com/sqlazure/archive/2010/04/16/9997517.aspx
  • LynnFrom SSDS blog http://blogs.msdn.com/b/sqlazure/archive/2010/06/07/10020947.aspxSQL Azure Database is extending five-fold to offer 50GB of the database storage capacity to offer even more scalability to applications and data.  Provides higher scalability and easier management of applications and services. Available on June 28th worldwide, flexibility to buy 50GB database.  New SQL Azure Offer: SQL Azure Development Accelerator Core will be available on August 1st with a new promotional discount to customers and partners, allowing them to subscribe to larger SQL Azure database size at a 25 percent discount.  This new six month offer provides flexibility to purchase commitment quantities of SQL Azure Business Edition databases independent of other Windows Azure platform services at a deeply discounted monthly price.  You can purchase in 10 GB increments the amount of our Business Edition relational database that you require (each Business Edition database is capable of storing up to 50 GB).Please refer to our offer comparison table for more details by offer on our pricing.Support for Spatial Data: SQL Azure now offers support for the Geography and Geometry types as well as query support in T-SQL. This is a significant feature and now opens the Windows Azure Platform to support spatial and location aware applications.Data Sync Service for SQL Azure allows for more flexible control over data by deciding which data components should be distributed across multiple datacenters in different geographic locations, based on the customer’s internal policies and business needs.  Available in community technology preview at http://www.sqlazurelabs.com .Microsoft SQL Server Web Manager (SSWM) isan easy to use management tool for SQL Azure databases, and specifically designed for Web developers seeking a straightforward solution to quickly develop, deploy and manage their data-driven applications in the cloud. Available as a community technology preview in summer 2010. Access 10 Support for SQL Azure offers native data connectivity support from Microsoft Office 2010 to SQL Azure. This new feature provides an easy way to connect directly from Office applications to cloud-based relational databases, and more choices to integrate rich Office Business Applications that can connect directly to both on-premises or cloud databases.
  • LynnMSDN article: http://msdn.microsoft.com/en-us/library/ff951624.aspxSupport for database copy: Database copy allows you to make a real-time complete snapshot of your database into a different server in the data center. This new copy feature is the first step in backup support for SQL Azure, allowing you to get a complete backup of any SQL Azure database before making schema or database changes to the source database. The ability to snapshot a database easily is our top requested feature for SQL Azure, and goes above and beyond our database center replication to keep your data always available. The MSDN Documentation with more information is entitled: Copying Databases in SQL Azure.Update on Project Houstonhttp://blogs.msdn.com/b/sqlazure/archive/2010/08/25/10054230.aspx
  • LynnMSDN article: http://msdn.microsoft.com/en-us/library/ff951624.aspxSupport for database copy: Database copy allows you to make a real-time complete snapshot of your database into a different server in the data center. This new copy feature is the first step in backup support for SQL Azure, allowing you to get a complete backup of any SQL Azure database before making schema or database changes to the source database. The ability to snapshot a database easily is our top requested feature for SQL Azure, and goes above and beyond our database center replication to keep your data always available. The MSDN Documentation with more information is entitled: Copying Databases in SQL Azure.Update on Project Houstonhttp://blogs.msdn.com/b/sqlazure/archive/2010/08/25/10054230.aspx
  • Lynn
  • Lynn
  • Ike talks, Lynn demosFor MonitoringGRANT VIEW DATABASE STATE TO database_user;Example: Space UsedMonitor space used via ‘sys.dm_db_partition_stats’Trap ‘out of space exception’ – SQL Error 40544
  • Lynn talks, then IkePricing table - http://www.microsoft.com/windowsazure/pricing/#sqlWeb Edition: Up to 1 GB relational database = $9.99 / month Up to 5 GB relational database = $49.95 / month** Business Edition: Up to 10 GB relational database = $99.99 / month Up to 20 GB relational database = $199.98 / month** Up to 30 GB relational database = $299.97 / month** Up to 40 GB relational database = $399.96 / month** Up to 50 GB relational database = $499.95 / month** Data transfers = $0.10 in / $0.15 out / GB - ($0.30 in / $0.45 out / GB in Asia)* * No charge for inbound data transfers during off-peak times through October 31, 2010** SQL Azure 50 GB Business Edition Database and 5 GB Web Edition Database will be available starting on June 28, 2010.
  • Lynn
  • Lynn talks, Ike typeshttp://msdn.microsoft.com/en-us/library/ff951624.aspx-- execute on the master database-- retrieve state of the new databaseselect name, state, state_desc from sys.databaseswhere name = 'databaseBackup'-- retrieve copying detailsselect * from sys.dm_database_copieswhere database_id = DB_ID('databaseBackup')When the database copying completes, the new database will enter one of two states, as indicated by the state_desc column of the sys.databases view. If the copying was successful, the new database will enter the Online state.
  • Ike talks
  • Ike talks, Lynn types
  • Ike talks
  • http://www.silverlight.net/content/samples/odataexplorer/ - Odata viewer
  • Lynn talksCons – of ‘Generate Script’ areVerbose – INSERT Statements instead of raw dataData is scripted with a fixed 100 row batch size.Edit “GO” statements between small batchesRound-trip EfficiencyUse “SET NOCOUNT ON”
  • Lynn talks
  • Lynn talks
  • Lynn talks
  • Lynn talks
  • Lynn talks
  • Lynn talks
  • IkeFrom this URL - http://www.microsoft.com/sqlserver/2008/en/us/R2-editions.aspxWhat's New in SQL Server 2008 R2 EditionsWith SQL Server 2008 R2, Microsoft continues to be the value leader, offering rich functionality to support OLTP and BI workloads out of the box at a low cost of ownership relative to competitors. With increasing hardware innovations, SQL Server continues to be the only major database vendor who does not price per core for multi-core processors. What’s New in SQL Server 2008 R2 EditionsBuilt on SQL Server 2008, SQL Server 2008 R2 delivers higher mission-critical scale, more efficient IT, and expanded reporting and analytics through self-service business intelligence. SQL Server 2008 R2 introduces two new premium editions to meet the needs of large scale datacenters and data warehouses.SQL Server 2008 R2 DatacenterSQL Server 2008 R2 Parallel Data WarehouseNew Premium EditionsDatacenterBuilt on SQL Server 2008 R2 Enterprise, SQL Server 2008 R2 Datacenter is designed to deliver a high-performing data platform that provides the highest levels of scalability for large application workloads, virtualization and consolidation, and management for an organization’s database infrastructure. Datacenter helps enable organizations to cost effectively scale their mission-critical environment. Key features new to Datacenter:Application and Multi-Server Management for enrolling, gaining insights and managing over 25 instancesHighest virtualization support for maximum ROI on consolidation and virtualizationHigh-scale complex event processing with SQL Server StreamInsight™Supports more than 8 processors and up to 256 logical processors for highest levels of scaleSupports memory limits up to OS maximum Parallel Data WarehouseSQL Server 2008 R2 Parallel Data Warehouse is a highly scalable data warehouse appliance-based solution. Parallel Data Warehouse delivers performance at low cost through a massively parallel processing (MPP) architecture and compatibility with hardware partners – scale your data warehouse to tens and hundreds of terabytes.Key features new to Parallel Data Warehouse:10s to 100s TBs enabled by MPP architectureAdvanced data warehousing capabilities like Star Join Queries and Change Data CaptureIntegration with SSIS, SSRS, and SSASSupports industry standard data warehousing hub and spoke architecture and parallel database copyInvestments in Core EditionsSQL Server 2008 R2 EnterpriseSQL Server 2008 R2 Enterprise delivers a comprehensive data platform that provides built-in security, availability, and scale coupled with robust business intelligence offerings—helping enable the highest service levels for mission-critical workloads.The following capabilities are new to Enterprise:PowerPivot for SharePoint to support the hosting and management of PowerPivot applications in SharePointApplication and Multi-Server Management for enrolling, gaining insights and managing up to  25 instancesMaster Data Services for data consistency across heterogeneous systemsData Compression now enabled with UCS-2 Unicode support High-scale complex event processing with SQL Server StreamInsight™SQL Server 2008 R2 StandardSQL Server 2008 R2 Standard delivers a complete data management and business intelligence platform for departments and small organizations to run their applications—helping enable effective database management with minimal IT resources.The following capabilities are new to Standard:Backup Compression to reduce data backups by up to 60% and help reduce time spent on backups *Can be managed instance for Application and Multi-Server Management capabilitiesHigh-scale complex event processing with SQL Server StreamInsight™
  • Lynn
  • Lynn
  • Both
  • Lynn
  • Sql azure dec_2010 Lynn & Ike

    1. 1. Lynn Langithttp://blogs.msdn.com/SoCalDevGaltwitter - @llangit<br />Ike Ellishttp://EllisTeam.blogspot.comtwitter - @EllisTeam1<br />
    2. 2. Windows Azure Platform<br />Compute: Virtualized compute environment <br />Storage: Durable, scalable, & available storage<br />Management: Automated, model-driven management<br />Database:Relational processing for structured/unstructured data – Data Marketplace<br />Service Bus: General purpose application bus<br />Access Control: Rules-driven, claims-based access control<br />
    3. 3. Data Storage Choices<br />On-premise<br /> SQL Server or other s/w on-premise<br /> Resource governance @ machine<br /> Full h/w control – 100% compatibility<br />Roll your own HA/DR/scale<br />Dedicated<br />SQL Azure (RDBMS)<br />Hosted<br />Virtual DB server<br />Resource governance @ LDB<br /> Security @ LDB<br />Auto HA, Fault-Tolerance<br />Self-provisioning<br />High RDMS compatibility<br /> Hosted SQL Server or other<br />Roll-your-own HA/DR/scale<br /> Security @ DB Server/OS<br />Resources<br />Windows Azure <br />Storage<br />Tables<br />Queues<br /> Blobs (also VMs)<br />Shared<br />Low<br />“Friction”/Control<br />High<br />
    4. 4. Storage Comparison<br />SQL Azure Tables<br />Fully structured<br />Strongly typed<br />Relational (RDMS)<br />Highly scalable<br />Windows Azure Tables<br />Semi-structured<br />Loosely typed<br />Non-Relational (Not RDMS)<br />Massively scalable<br />
    5. 5. Application Topologies<br />SQL Server<br />App code/ Tools<br />App code/ Tools<br />Application/ Browser<br /> Data Sync<br />Windows<br />Azure<br />Windows<br />Azure<br />App Code<br />(ASP.NET)<br />App Code<br />(ASP.NET)<br />T-SQL / TDS<br />App Code<br />(ASP.NET)<br />App Code<br />(ASP.NET)<br />TSQLTDS<br />TSQLTDS<br />SQL Azure <br />SQL Azure <br />SQL Azure <br />Code Far<br />Code Near<br />Hybrid<br />
    6. 6. Database Replicas<br />Multiple Physical Replicas<br />Replica 1<br />Single Primary<br />Single Logical Database<br />Replica 2<br />DB<br />Replica 3<br />
    7. 7. Logical vs. Physical<br />
    8. 8. SQL Azure focus on logical administration<br />Schema creation and management<br />Query optimization<br />Security management (Logins, Users, Roles)<br />Service handles physical management<br />Automatically replicated with HA “out of box”<br />Transparent failover in case of failure<br />Load balancing of data to ensure SLA<br />Logical vs. Physical Administration<br />DBA role places more focus on logical management<br />
    9. 9. Customer Evidence<br />
    10. 10. Demo – SQL Azure Portal<br />
    11. 11. Demo - Portal for DB (Houston)<br />
    12. 12. Each account has zero or more servers<br />Azure wide, provisioned in a common portal<br />Billing instrument<br />Each server has one or more databases<br />Contains metadata about the databases and usage<br />Unit of authentication<br />Unit of Geo-location<br />Generated DNS based name<br />Each database has standard SQL objects<br />Unit of consistency<br />Unit of multi-tenancy<br />Contains Users, Tables, Views, Indices, etc.<br />Most granular unit of billing<br />Service Provisioning Model<br /> Account<br /> Server<br /> Database<br />
    13. 13. SQL Azure Database Access<br />Web Portal<br />(API)<br />Your App<br />Change Connection String<br />
    14. 14. Use ADO.NET, ODBC, PHP (NOT OLE DB)<br />Client libraries pre-installed in Azure roles<br />Support for ASP.NET controls<br />Clients connect directly to a database<br />Cannot hop across DBs (no USE)<br />May need to include <login>@<server><br />Use familiar tools (sqlcmd, osql, SSMS, etc)<br />Use connection pooling for efficiency<br />SSMS 2008 R2 can connect <br />http://blogs.msdn.com/ssds/archive/2009/11/11/9921041.aspx<br />Connection Model<br />
    15. 15. Connecting to SQL Azure with SSMS 2008 R2 <br />Houston Client – Silverlight (Portal)<br />SQLCMD – can also be used<br />SSIS – can also be used<br />SSRS/SSIS/SSAS – w/SQL Azure as source data – use R2 versions<br />Demo – Connect via tools<br />
    16. 16. SSMS 2008 R2 – Cloud vs. On Premise<br />
    17. 17. Query Optimizer and Client Statistics can be used with SQL Azure data<br />
    18. 18. Feature not yet implemented<br />Physical layer – Microsoft handles it<br />Commodity vs. Business <br />Multi-tenant<br />We must play nice together<br />Compatibility Overview<br />
    19. 19. Maximum single database size is 50GB<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 />Announced CTP support for auto-partitioning & fan-out queries (Federation) <br />Currently must handle partitioning logic within the application<br />Also called Database ‘sharding’<br />Sharding Utility, using TPL at http://enzosqlshard.codeplex.com/<br />Database Size Limits<br />
    20. 20. Compatibility <br />In Scope<br /><ul><li> Tables, indexes and views
    21. 21. w/ clustered indices
    22. 22. Stored Procedures
    23. 23. Triggers
    24. 24. Constraints
    25. 25. Table variables
    26. 26. Session temp tables
    27. 27. Spatial datatype</li></ul>Out of Scope<br /><ul><li> Distributed Transactions
    28. 28. Distributed Query
    29. 29. CLR
    30. 30. Service Broker
    31. 31. Physical server or catalog DDL and views</li></li></ul><li>Tables (joins) , Views , Stored Procedures, Triggers<br />Indices <br />Index Management<br />Statistics Management<br />Spatial data<br />Local Transactions<br />Supported T-SQL <br /><ul><li>T-SQL elements
    32. 32. Reserved keywords
    33. 33. Create/drop databases
    34. 34. Create/alter/drop tables
    35. 35. Create/alter/drop users and logins
    36. 36. Constants, Constraints, Cursors, Local temporary tables
    37. 37. Table Variables</li></li></ul><li>CLR<br />Database file placement<br />Database mirroring<br />Distributed queries<br />Distributed transactions<br />Filegroup management<br />Full Text Search<br />Unsupported T-SQL <br /><ul><li>Global temporary tables
    38. 38. SQL Server configuration options
    39. 39. SQL Server Service Broker
    40. 40. System tables
    41. 41. Profiler / Trace Flags</li></li></ul><li>Generating, then modifying, the SQL DDL script<br />Loading in the data (bcp, SSIS, etc…)<br />-OR-<br />SQL Azure Migration Wizard<br />http://sqlazuremw.codeplex.com<br />Demo – SQL Migration Wizard<br />
    42. 42. SQL Migration Wizard<br />
    43. 43. What Could Go Wrong?<br />
    44. 44. Progress!<br />
    45. 45. Success!<br />
    46. 46. Remove unsupported features, such as…<br />Migrating By Hand<br /><ul><li>USE DATABASE
    47. 47. ON PRIMARY (Filegroups)
    48. 48. Extended Properties
    50. 50. Various Index options (WITH)
    51. 51. Windows logins
    52. 52. Unsupported XML features
    54. 54. Encrypted Stored Procedures
    55. 55. No Heap tables (all tables must have clustered indices)
    56. 56. UDTs</li></li></ul><li>3 month release cycle<br />Active CTPs at sqlazurelabs.com<br />Roadmap<br />
    57. 57. Added new Dynamic Management Views (DMVs) <br />Allows return of state information for health monitoring & performance tuning<br />sys.dm_exec_connections, _requests , _sessions, _tran_database_transactions, _active_transactions, _partition_stats<br />Added ability to move between Web or Business edition<br />ALTER DATABASE database_name { MODIFY (MAXSIZE = {1 | 10} GB) }<br />Increased idle session conn timeout (from 5 to 30 minutes)<br />Improves experience while using connection pooling and other interactive tools<br />Improved long running transaction algorithm <br />Allows import and export of much larger amounts of data without having to chunk your data <br />Added - Feb 2010<br />
    58. 58. Addedavailability in 20 more countries (now 41 total)<br />Complete list here <br />Started with 21 countries, now doubled<br />Addedsupport for MARS<br />Simplifies the design process<br />Added support for ALTER (rename) Database<br />Adds features found in RDMS to SQL Azure<br />Included support in Visual Studio 2010 to manage SQL Azure<br />Allows direct management of SQL Azure databases via Server Explorer<br />Also found in SQL Server Management Studio<br />Added new labs feature - sandbox<br />https://www.sqlazurelabs.com/<br />Added - April 2010<br />
    59. 59. Addedupper size limit of 50 GB<br />Available June 28, 2010<br />Initial discount on upgrading maximum size<br />Addedsupport for Spatial Data Types<br />Support for Geography & Geometry data types and queries<br />Support for HierarchyID data types (tree-like database structures)<br />Added support DataSync Service for SQL Azure<br />Initially available in CTP via sqlazurelabs.com<br />Announced SQL Server Web Manager <br />Web-based SQL Azure management tool<br />Initially available as CTP in summer 2010<br />Added Access 10 support for SQL Azure<br />Support from Office 2010 to SQL Azure<br />Added - June 2010<br />
    60. 60. Added Database copy capabilities<br />Same server or cross server<br />CREATE DATABASE DB2A AS COPY OF Server1.DB1A <br />Monitor via sys.dm_database_copies<br />Increased MSDN documentation for common programming scenarios (with code examples)<br />Enhanced Project Houston<br />Supported in multiple data centers<br />View and StoredProc designers added<br />Added - August 2010<br />
    61. 61. Improved Portal at sql.azure.com<br />Enhanced Houston (Silverlight) portal<br />Connected to main Azure portal<br />Announced Betas<br />SQL Azure Reporting Services<br />SQL Azure Federation<br />SQL Azure Data Sync v 2<br />Added - Nov 2010<br />
    62. 62. Opportunities and Futures<br />SQL Web Management and Administration (SWA)<br />Partitioning Utility in CTP soon (Federation)<br />Profiler-like traces / deadlock graphs<br />Geo-location and geo-redundancy<br />Distributed query<br />Security w/Active Directory, Windows Live ID, etc<br />Support for multiple levels of hardware and software isolation<br />BI features – SSRS, SSIS, SSAS<br />
    63. 63. What’s Your Idea?<br />
    64. 64. Second Hour = DEMOs<br />
    65. 65. Pricing<br />
    66. 66. Data Migration Tools<br />Wizards<br />SQL Azure Migration Wizard (CodePlex) – here<br />Migration Assistant for Access or for MySQL – here or here<br />Import/Export Wizard<br />Generate Script Wizard<br />Copy Database command<br />CREATE DATABASE DB2A AS COPY OF Server1.DB1A <br />Other Tools <br />SSIS <br />BCP<br />DataSync (CTP)<br />OData (CTP)<br />
    67. 67. COPY Database (same or different servers)<br />CREATE DATABASE destination_database_name AS COPY OF [source_server_name.]source_database_name<br />CREATE DATABASE Database2A AS COPY OF Server1.Database1A <br />Check the DMVs<br />Progress<br />History<br />Other DMVs<br />Database COPY and DEMO<br />
    68. 68. SQL Azure Data Sync Service <br /><ul><li>Scale-out read or read/write
    69. 69. Geo replication of data
    70. 70. Edge network data distribution
    71. 71. Content delivery networks</li></ul>SQL Azure<br />Sync Group<br />SQL Server<br />SQL Azure<br />On-Premises Applications<br />
    72. 72. Data Sync - Demo<br />
    73. 73. Table Order in Sync<br />
    74. 74. Tracking Objects Created<br /><ul><li>Tracking Tables
    75. 75. On Source / on Destination
    76. 76. Triggers
    77. 77. Stored Procedures</li></li></ul><li>OData Support (Labs) - Demo<br />Open Data Protocol<br />ATOM PUB <br />JSON <br />HTTP<br />https://www.sqlazurelabs.com<br />
    78. 78. Odata Query & Results<br />
    79. 79. Data-tier Application Components<br />Data-tier Application Component (DAC)<br />New unit of deployment for T-SQL apps<br />Supports Install, Uninstall, and in the future Upgrade and Repair<br />Contains developer intent as policies.<br />Data-tier Application Component<br />Future - DAC Deployment Profile<br />Deployment Requirements, Management Policies, Failover Policies<br />Unit of Deployment<br />Schema<br />LOGICAL<br />Tables, Views, Constraints, SProcs, UDFs,<br />PHYSICAL<br />Users, Logins, Indexes<br />
    80. 80. DAC Pack = Single unit (Package) for authoring, deploying, and managing the data-tier objects through the development lifecycle<br />Development Lifecycle (VS 2010) - editing DACs<br />Schema and DB Code Development, <br />Code Analyses, Deployment Policy Settings, <br />Schema Comparison and more…<br />Building DACs – the self contained database package <br />Management Lifecycle (SSMS 2008 R2) – managing DACs<br />Registering existing database as DACs<br />Deploying and Upgrading databases using DACs, <br />DAC (Data-tier Application) Packages<br />
    81. 81. DACPAC – DEMO in SSMS<br />In SSMS<br /><ul><li>Extract
    82. 82. Register
    83. 83. Monitor w/UCPs</li></ul>In VS 2010<br /><ul><li>Import
    84. 84. Create</li></li></ul><li>DACPAC – DEMO in VS<br />
    85. 85. Summary– Database Migration<br />
    86. 86. Custom applications<br />Can use Windows Azure – not required<br />Can connect via any client with valid connection string<br />Microsoft applications<br />Connectivity into Office applications<br />Excel, Excel PowerPivot, SharePoint, etc…<br />Connectivity into BI applications<br />SSRS, SSIS, SSAS<br />Application Integration<br />
    87. 87. Local and Cloud-Based<br />No SDK required – simply change connection string from local to cloud copy of DB<br />
    88. 88. Simple – just change the connection string!<br />All compatibility requirements must be met (T-SQL) in the DDL<br />Create destination DB schema and populate with data<br />Firewall rules set up via SQL Azure portal (test connectivity)<br />Nothing to install, no SDK required<br />SQL Azure application<br />
    89. 89. Show SQL Azure Reporting<br />
    90. 90. Office 2010 - DEMO<br />Report Builder<br />PowerPivot<br />
    91. 91.
    92. 92. SQL Server 2008 R2 Editions<br />
    93. 93. Windows Azure Platform –here<br />Windows Azure Platform Training Kit – here <br />MSDN Development Center – here <br />Team Blogs – SSDS and SQLAzure<br />Want to Know More?<br />
    94. 94. Lynn Langit<br />Blog: http://blogs.msdn.com/SoCalDevGal<br />Twitter: @llangit<br />Ike EllisBlog: http://EllisTeam.blogspot.comtwitter - @EllisTeam1<br />Contact Me<br />
    95. 95. TeachingKidsProgramming.org<br /><ul><li>Do a Recipe  Teach a Kid
    96. 96. Free Courseware (recipes)
    97. 97. Ages 10 ++
    98. 98. Microsoft SmallBasic</li>