Amit Shukla, Michael Wang SQL Server Engineering Team Microsoft Session Code: DAT201
Agenda Best practices Connect with SQL Server product team SQL Server Futures
Part I: Building great solutions using an increasingly feature rich product is hard!
You are looking for guidance on how to best architect your applications difficult to pick the right technologies for your application Learn how to better integrate SQL Server 2008 features into common scenarios
Turn on Data Compression RowPage Compression white paper
The general guideline is to use “ROW” compression for OLTP 2% - 5% CPU 20% Compression Compression white paper
The general guideline is to use “PAGE” compression for Data Warehousing 10% - 15% CPU 60% - 70% Compression Compression white paper Data Warehousing white paper
Backup compression Backup Compression
Use Resource Governor to prevent runaway queries Resource Governor by ExampleBackup Admin Tasks Backup OLTP Activity High High Admin Workload OLTP Workload Min Memory 10% Max Memory 20% Max CPU 20% Min Memory 10% Max Memory 20% Max CPU 20% Max CPU 90% Admin Pool Application Pool
Use MERGE for ETL SQL Server 2005SQL Server 2008 MERGE StockTable st USING TradesTable tt ON st.stock = tt.stock WHEN MATCHED THEN UPDATE SET st.quantity += tt.quantity WHEN NOT MATCHED THEN INSERT (stock, quantity) VALUES (tt.stock, tt.quantity) ; IF StockTable contains stock UPDATE quantity from TradesTable ELSE INSERT row into StockTable How to use MERGE
Predictable Performance and Concurrency Lock Escalation Plan Freezing Ad hoc workloads
Details of lock escalation Partition level lock escalation
Use improved Plan Freezing mechanisms Understanding plan guides
Use improved Plan Freezing mechanisms Understanding plan guides
Use improved Plan Freezing mechanisms Understanding plan guides
Optimize SQL Server 2008 for ad hoc workloads
Use Sparse Columns to store data efficiently Optimize NULLs White paper
Use Filtered Indexes to improve query performance by indexing efficiently White paper
Use TVP to perform large data set loading White paperBatchingBatching
Use the best practices site to learn how to take advantage of new features
The site contains whitepapers More white papers at:
Part II: How can I get SQL Server to help me?
The product team seems to operate in isolation
Use some of the large variety of ways to communicate with the product team
Enhancements to the OVER clause are popular
Use Other Feedback Channels
TLC is the feedback mechanism at TechEd
Ask your questions using MSDN Forums
Use Formal Feedback Channels
Visit our customer lab
Get invited to a System Design Review
Our automated data gathering identifies feature usage and bugs
You can opt-in for anonymous & automated gathering of feature usage
Some 2008 feature usage collected: Editions and hardware configuration
SQL Server 2008: Data type usage Increasing usage Sparse Time Geometry Geography Date
SQL Server 2008: Objects per database
You can opt-in to report crashes and unexpected errors
Bugs are automatically filed by Watson and tracked by bucket and IP address
Bugs appear in Product team’s bug database automatically
You can now declare and set a variable OLD INT; = 5; NEW INT = 5;
You now have to type fewer characters when adding a variable to itself OLD UPDATE Tbl SET c1 = c1 + 5 WHERE c1 < 10; NEW UPDATE Tbl SET c1 += 5 WHERE c1 < 10; This also works for *, -, /
We made inserting multiple rows into a table much easier OLD INSERT (custid,name) VALUES (1, 'cust 1'); INSERT (custid,name) VALUES (2, 'cust 2'); INSERT (custid,name) VALUES (3, 'cust 3'); INSERT (custid,name) VALUES (4, 'cust 4'); INSERT (custid,name) VALUES (5, 'cust 5'); NEW INSERT (custid, name) VALUES (1, 'cust 1'), (2, 'cust 2'), (3, 'cust 3'), (4, 'cust 4'), (5, 'cust 5');
We made using a constant table super easy as well! OLDNEW SELECT * FROM ( VALUES (1, 'cust 1'), (2, 'cust 2'), (3, 'cust 3'), (4, 'cust 4'), (5, 'cust 5') ) MyCustomers(custid, name); TABLE (custid INT, name VARCHAR(20)) INSERT (custid,name) VALUES (1, 'cust 1'); INSERT (custid,name) VALUES (2, 'cust 2'); INSERT (custid,name) VALUES (3, 'cust 3'); INSERT (custid,name) VALUES (4, 'cust 4'); INSERT (custid,name) VALUES (5, 'cust 5'); SELECT *
Part III: Give you a glimpse into what is coming up in SQL Server 2008 R2
2008 R2 will have support for 256 logical processors
2008 R2 will support Unicode compression CompressCompress
Themes That Remain Unchanged From Release to Release Enterprise data platform Dynamic development Beyond Relational Pervasive Insight
Summary Best practices Connect with SQL Server product team SQL Server Futures
Call to Action Get in touch with the SQL Development Team Leverage the mechanisms available to provide feedback to Microsoft Participate in the Customer Experience Improvement Program, Error Reporting Visit TLC – we want to hear from you! Leverage the “Delighters” in SQL Server 2008 Help us make SQL Server even better. Help us make SQL Server work for you!
SQL Server Word of the Day POLICY-BASED MANAGEMENT Monday, May 11 *Game cards may be picked up at the SQL Server booths in the TLC
SQL Server Community Resources Become a FREE PASS Member: Learn more about the PASS organization Additional Community Resources SQL Server Community Center TechNet Community for IT Professionals Developer Center SQL Server 2008 Learning Portal Connect: Local Chapters, Special Interest Groups, Online Community Share: PASSPort Social Networking, Community Connection Event Learn: PASS Summit Annual Conference, Technical Articles, Webcasts More about the PASS organization Connect: Local Chapters, Special Interest Groups, Online Community Share: PASSPort Social Networking, Community Connection Event Learn: PASS Summit Annual Conference, Technical Articles, Webcasts More about the PASS organization The Professional Association for SQL Server (PASS) is an independent, not-for-profit association, dedicated to supporting, educating, and promoting the Microsoft SQL Server community.
Additional Resources External Resources SQL Server 2008 Business Value Calculator:
Related Content DAT320-Breakout: Optimizing Microsoft SQL Server 2008 Applications Using Table Valued Parameters, XML, and MERGE DAT04-TLC: Using the HIERARCHYID Datatype in Microsoft SQL Server 2008 to Maintain and Query Hierarchies DAT313-Breakout: Inside T-SQL: 2008 Enhancements, Techniques, Tips & Tricks DAT304-Breakout: Auditing in Microsoft SQL Server 2008 DAT321-Breakout: Taking Your Database beyond Relations with Microsoft SQL Server 2008 DAT302-Breakout: All You Need to Know about Microsoft SQL Server 2008 Failover Clusters DAT317-Breakout: Microsoft SQL Server 2008 Data Warehousing by Demonstration
Sessions On-Demand & Community Resources for IT Professionals Resources for Developers Microsoft Certification and Training Resources Microsoft Certification & Training Resources Resources Required Slide Speakers, TechEd 2009 is not producing a DVD. Please announce that attendees can access session recordings at TechEd Online. Required Slide Speakers, TechEd 2009 is not producing a DVD. Please announce that attendees can access session recordings at TechEd Online.
Complete an evaluation on CommNet and enter to win! Required Slide
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Required Slide