Performance and Scalability
Optimizing PerformanceScaling UpScaling Out
Real-world, predictable performance Scale up with today’s hardware Scale out for the enterprise TPC benchmarks Workload prioritization Tuning and optimization tools Enterprise health monitoring Improved BI performance Multi- instance architecture 64-bit technologies NUMA Support Hot-add hardware Scalable shared databases Distributed partitioned views Peer-to-peer replication Query notifications Service Broker Data dependent routing Scale-out Analysis Services
Historical Perspective Relational Database Performance
Enterprise Manager On-Demand Memory On-Demand Disk SQL Server 7.0 Multiple Server Instances Distributed Partitioned Views, Indexed Views 64-GB Memory Support (AWE) SQL Server 2000 SQL Server Management Studio 64-bit Support, Partitioning, Snapshot Isolation Database Maintenance Plans SQL Server 2005 Resource Governor Performance Studio Plan Freezing SQL Server 2008
Measurable, real-world performance TPC-C TPC-E TPC-H Performance optimization tools SQL Server Profiler Database Engine Tuning Advisor Performance Studio High performance query processing engine Cost-based optimization Read-ahead scans Partitioning
SQL Server Admin Workload Backup Admin Tasks Report WorkloadOLTP Workload OLTP Activity Executive Reports Ad-hoc Reports High Min Memory 10% Max Memory 20% Max CPU 20% Admin Pool Max CPU 90% Application Pool Ability to differentiate workloads e.g. app_name, login, etc. Per-request limits Max memory % Max CPU time Grant timeout Max Requests Resource monitoring
Data providers SQL Trace Performance Counters Transact-SQL Low overhead performance data collection Management Data Warehouse Centralized performance data storage Comprehensive performance data reporting
Freeze Plan Clear Plan Cache Freeze Plan Export Plan Enable/Disable Script Frozen Plan Use Frozen Plan Execute Script Enable/Disable
Hardware Support Concurrency
64-bit Multi-core, multi- processor Large-scale memory NUMA hardware Hot-Add hardware Memory Processor
Transaction isolation Read uncommitted Read committed Repeatable read Serializable Read committed (with row versioning) Snapshot Lock escalation granularity Row Page Partition Table
Scalable Shared Databases Distributed Partitioned Views Peer-to-Peer Replication
Read-only database in SAN Mounted by multiple reporting servers Applications access a consistent copy from any server
Data is partitioned horizontally across multiple servers Transact-SQL view retrieves all data with a UNION ALL clause Requests can be directed by using data dependent routing
Data is replicated to local servers Local modifications are propagated throughout the enterprise
Query Notifications LINQ – Language Integrated Querying
Database ServerDatabase Schema Client Application
Application notified when queried data changes Optimal cache refresh behavior
SQL is generated from standard querying language Based on classes mapped to the tables var query = from c in context.Customers where c.Country = “Luxembourg” select new { c.LastName, c.FirstName }; var query = from c in context.Customers where c.Country = “Luxembourg” select new { c.LastName, c.FirstName };
© 2007 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.