SlideShare una empresa de Scribd logo
1 de 29
Charley Hanania :: QS2 AG – Quality Software Solutions
B.Sc (Computing), MCP
, MCDBA, MCITP
,MCTS, MCT
, Microsoft MVP: SQL Server
Principal Consultant - Senior Database Specialist
Database Design Patterns for
Keeping Database Applications
Available and Performing Well.
About Charley Hanania
Now:
Microsoft MVP: SQL Server
Database Consultant at QS2 AG
Formerly:
Production Product Owner of MS SQL Server Platform at UBS Investment Bank
Consultant
DB Team Leader at Other Banks
ITIL v3 Certified
SQL Server Certified since 1998
On SQL Server since 1995
Version 4 on OS/2
IT Professional since 1992
PASS
Chapter Leader – Switzerland
Regional Mentor – Europe
24 Hours of PASS Committee Member
Event Speaker
Presentation Summary
DBA's will give you reasons and methods for achieving database availability
for your application, but not many can broach the concept of keeping parts
of your application running during an outage from the development
perspective through partitioning your application database logically
into levels of criticality.
Adding this logical Layer to your database design and development allows
you to bring your core application functionality online faster and
more simply during failures and in disaster scenarios decide which
areas of your application should come online first to maintain basic
application operations. It also allows you to place your data better to
cater for space and performance for an overall better performing system.
This presentation will drill into this conceptually as well as provide some
examples you can take back to the workplace to incorporate into your next
evolutionary changes.
Agenda
Design Patterns by any Other Name…
Industry “norms” in using databases
Logically Partitioning your DB for Clarity
Logically Partitioning your DB for Performance
Logically Partitioning your DB for Availability
Appendixes (time permitting):
Partitioned Tables and Views
Asynchronous Queues
Agenda
Design Patterns by any Other Name…
Design Patterns are template-like methodologies.
Focussed on particular goals.
Architect-level focussed, but with follow-on
implementation considerations.
Design Patterns by any Other Name…
Evolutionary Growth of Features and Functions
Industry “norms” in Using Databases
Industry “norms” in Using Databases
Industry “norms” in Using Databases
Logically Partitioning your DB for Clarity
Interdependent Objects
Differing schema complexities
Differing Criticalities
Differing Interfaces
Differing “Personalities”
Logically Partitioning your DB for Clarity
Logically Partitioning your DB for Clarity
Step 1 - User Schema Separation
Separating out objects into schemas to help define
business use and Criticality
Logically Partitioning your DB for Performance
Logically Partitioning your DB for Performance
Performance-related issues:
Disk I/O is the one most critical element to improving
performance for data intensive workloads.
When data objects are created in the default filegroup
they share space and allocate more as needed.
Extent fragmentation occurs as data from objects with
differing “personalities” are persisted.
Hotspots can occur on system pages that track the
allocation and use of pages in the file.
Read-ahead is affected as the data you’re retrieving is
not laid out contiguously.
User Schema Separation is done, now to look at the next layer down.
Logically Partitioning your DB for Performance
Resolutions:
Creating additional files and filegroups helps to isolate
where the objects are written to and lowers
fragmentation.
System pages are spread out per file, lowering contention.
With Trace Flag 1117 and correct sizing of your data
files, “Round-Robin” writes are possible, giving higher
throughput on insert intensive workloads.*
Performance Critical data can be placed on LUNS/Disk
Arrays that have more spindles (eg RAID 1+0 mirrored)
or on mirrored Solid State Drives. Conversely, archive
data can be placed on inexpensive (eg. slower) disks.
*Note: Recommendation valid for systems that have >1 CPU/Core and >1 Disk Spindle
otherwise zero or detrimental performance may be experienced. Test First!
Step 2 - Filegroup Separation
Separating out objects into filegroups for isolation,
placing them according to granular performance
needs.
Quick Recap – So Far
1. Don’t put user defined objects in the Primary Filegroup
i. Allows the Primary Filegroup to load faster
2. Schema Separate user defined objects
i. For clarity of purpose and operational use
ii. Try not to use dbo schema (good design/operational practice)
iii. DBA’s will schematize objects in a similar fashion to what was in
the Adventureworks sample. You should look to map your
schema’s around your application’s core functionality / use cases
/ criticality
3. Create Filegroups for each Schema
i. Multiple if you want to partition historical data horizontally etc
ii. Name them in a fashion that allows easy understanding of what
is in them, or how they should be used.
Logically Partitioning your DB for Availability
Logically Partitioning your DB for Availability
Major Points to availability when focussed on Logical
Partitioning
Time taken to open the database on restart, to start
taking connections.
Decreasing the size of the backup to restore through
differential backups of read/write filegroups.
Partial Database availability: a file/disk can go offline
without it affected unrelated objects in the same
database
If architected/implemented correctly, most subsystems
can run unaffected until non peak period for outage
Management & Operations staff can decide which
filegroups & subsystems to bring online first when
recovering from disaster
.
Step 3 – Partial Database Availability
What happens when a file or disk goes offline? How are
other running subsystems affected?
Appendices - 1
Partitioned Tables and Views
Step 4 – Partitioning Tables
Partitioning the Sales Table into smaller
, manageable
objects
Appendices - 2
Asynchronous Queues
Step 5 – Service Broker Queues
Writing messages to an asynchronous queue rather
than directly to a table
Links and Resources
AdventureWorks Database Diagram
http://www.microsoft.com/downloads/details.aspx?FamilyID=0f6e0bcf-a1b5-4760-8d79-
67970f93d5ff&DisplayLang=en
Whitepaper: “Partial Database Availability” (Danny T
ambs, May 2007)
http://technet.microsoft.com
Whitepaper: “Partitioned T
able and Index Strategies Using SQL Server 2008” (Ron
T
almage, March 2009)
http://technet.microsoft.com
Kimberly Tripp’s Scripts for Creating and Partitioning SalesDB
www.sqlskills.com
Allen White’s Service Broker Session at the PASS Summit 2011
www.sqlpass.org
Please help us make TechDays even better
by Evaluating this Session. Thank you!
Give us your feedback!
© 2011 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.

Más contenido relacionado

La actualidad más candente

W2 k3 ad_integration-how_to
W2 k3 ad_integration-how_toW2 k3 ad_integration-how_to
W2 k3 ad_integration-how_toMeka SriHari
 
The High Performance DBA Optimizing Databases For High Performance
The High Performance DBA Optimizing Databases For High PerformanceThe High Performance DBA Optimizing Databases For High Performance
The High Performance DBA Optimizing Databases For High PerformanceEmbarcadero Technologies
 
Informatica Power Center - Workflow Manager
Informatica Power Center - Workflow ManagerInformatica Power Center - Workflow Manager
Informatica Power Center - Workflow ManagerZaranTech LLC
 
A Primer To Sybase Iq Development July 13
A Primer To Sybase Iq Development July 13A Primer To Sybase Iq Development July 13
A Primer To Sybase Iq Development July 13sparkwan
 
DBM 380 HELP Redefined Education--dbm380help.com
DBM 380 HELP Redefined Education--dbm380help.comDBM 380 HELP Redefined Education--dbm380help.com
DBM 380 HELP Redefined Education--dbm380help.comGVlaxmi7
 
DBM 380 EDU Achievement Education--dbm380edu.com
DBM 380 EDU Achievement Education--dbm380edu.comDBM 380 EDU Achievement Education--dbm380edu.com
DBM 380 EDU Achievement Education--dbm380edu.comclaric163
 
DBM 380 EDU Become Exceptional--dbm380edu.com
DBM 380 EDU Become Exceptional--dbm380edu.comDBM 380 EDU Become Exceptional--dbm380edu.com
DBM 380 EDU Become Exceptional--dbm380edu.comclaric113
 
New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)naveen
 
DBM 380 EDU Education Counseling--dbm380edu.com
DBM 380 EDU Education Counseling--dbm380edu.comDBM 380 EDU Education Counseling--dbm380edu.com
DBM 380 EDU Education Counseling--dbm380edu.comclaric63
 
Tasks of database administrator
Tasks of database administratorTasks of database administrator
Tasks of database administratorAttia Qamar
 
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...Embarcadero Technologies
 
DBM 380 EDU Redefined Education--dbm380edu.com
DBM 380 EDU Redefined Education--dbm380edu.comDBM 380 EDU Redefined Education--dbm380edu.com
DBM 380 EDU Redefined Education--dbm380edu.comclaric202
 
DBM 380 HELP Education Counseling--dbm380help.com
DBM 380 HELP Education Counseling--dbm380help.comDBM 380 HELP Education Counseling--dbm380help.com
DBM 380 HELP Education Counseling--dbm380help.comclaric63
 
Extensis DAM Forum at MCN
Extensis DAM Forum at MCNExtensis DAM Forum at MCN
Extensis DAM Forum at MCNesmithextensis
 
Informatica Server Manager
Informatica Server ManagerInformatica Server Manager
Informatica Server Managerganblues
 
Joel Chamberlain Business Intelligence Portfolio
Joel Chamberlain Business Intelligence PortfolioJoel Chamberlain Business Intelligence Portfolio
Joel Chamberlain Business Intelligence Portfoliojwchamb
 

La actualidad más candente (19)

W2 k3 ad_integration-how_to
W2 k3 ad_integration-how_toW2 k3 ad_integration-how_to
W2 k3 ad_integration-how_to
 
Power BI Interview Questions
Power BI Interview QuestionsPower BI Interview Questions
Power BI Interview Questions
 
The High Performance DBA Optimizing Databases For High Performance
The High Performance DBA Optimizing Databases For High PerformanceThe High Performance DBA Optimizing Databases For High Performance
The High Performance DBA Optimizing Databases For High Performance
 
Informatica Power Center - Workflow Manager
Informatica Power Center - Workflow ManagerInformatica Power Center - Workflow Manager
Informatica Power Center - Workflow Manager
 
12363 database certification
12363 database certification12363 database certification
12363 database certification
 
A Primer To Sybase Iq Development July 13
A Primer To Sybase Iq Development July 13A Primer To Sybase Iq Development July 13
A Primer To Sybase Iq Development July 13
 
DBM 380 HELP Redefined Education--dbm380help.com
DBM 380 HELP Redefined Education--dbm380help.comDBM 380 HELP Redefined Education--dbm380help.com
DBM 380 HELP Redefined Education--dbm380help.com
 
DBM 380 EDU Achievement Education--dbm380edu.com
DBM 380 EDU Achievement Education--dbm380edu.comDBM 380 EDU Achievement Education--dbm380edu.com
DBM 380 EDU Achievement Education--dbm380edu.com
 
DBM 380 EDU Become Exceptional--dbm380edu.com
DBM 380 EDU Become Exceptional--dbm380edu.comDBM 380 EDU Become Exceptional--dbm380edu.com
DBM 380 EDU Become Exceptional--dbm380edu.com
 
New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)New Microsoft Office WordDatabase administration and automation Document (2)
New Microsoft Office WordDatabase administration and automation Document (2)
 
DBM 380 EDU Education Counseling--dbm380edu.com
DBM 380 EDU Education Counseling--dbm380edu.comDBM 380 EDU Education Counseling--dbm380edu.com
DBM 380 EDU Education Counseling--dbm380edu.com
 
Tasks of database administrator
Tasks of database administratorTasks of database administrator
Tasks of database administrator
 
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...
DB Optimizer Datasheet - Automated SQL Profiling & Tuning for Optimized Perfo...
 
DBM 380 EDU Redefined Education--dbm380edu.com
DBM 380 EDU Redefined Education--dbm380edu.comDBM 380 EDU Redefined Education--dbm380edu.com
DBM 380 EDU Redefined Education--dbm380edu.com
 
DBM 380 HELP Education Counseling--dbm380help.com
DBM 380 HELP Education Counseling--dbm380help.comDBM 380 HELP Education Counseling--dbm380help.com
DBM 380 HELP Education Counseling--dbm380help.com
 
Extensis DAM Forum at MCN
Extensis DAM Forum at MCNExtensis DAM Forum at MCN
Extensis DAM Forum at MCN
 
Informatica Server Manager
Informatica Server ManagerInformatica Server Manager
Informatica Server Manager
 
Joel Chamberlain Business Intelligence Portfolio
Joel Chamberlain Business Intelligence PortfolioJoel Chamberlain Business Intelligence Portfolio
Joel Chamberlain Business Intelligence Portfolio
 
A to z for sql azure databases
A to z for sql azure databasesA to z for sql azure databases
A to z for sql azure databases
 

Destacado

Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Charley Hanania
 
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...Charley Hanania
 
Kits cadena distribución FAI
Kits cadena distribución FAIKits cadena distribución FAI
Kits cadena distribución FAIrectificadorajs
 
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaSQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaCharley Hanania
 
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...Charley Hanania
 

Destacado (6)

Comunicato n 12 16 dicembre
Comunicato n 12 16 dicembreComunicato n 12 16 dicembre
Comunicato n 12 16 dicembre
 
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
Pass chapter meeting dec 2013 - compression a hidden gem for io heavy databas...
 
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
SQLBits 2008 - SQL Server High Availability and Disaster Recovery Overview - ...
 
Kits cadena distribución FAI
Kits cadena distribución FAIKits cadena distribución FAI
Kits cadena distribución FAI
 
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hananiaSQL Server Club - SQL Server Enterprise Consolidation - charley hanania
SQL Server Club - SQL Server Enterprise Consolidation - charley hanania
 
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
TehDays Basel - Auditing in sql server 2012 - charley hanania - tech days bas...
 

Similar a Tech days 2011 - database design patterns for keeping your database applications available and performing well - charley hanania

Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?samthemonad
 
SQL Server Cluster Presentation
SQL Server Cluster PresentationSQL Server Cluster Presentation
SQL Server Cluster Presentationwebhostingguy
 
Database Performance Management in Cloud
Database Performance Management in CloudDatabase Performance Management in Cloud
Database Performance Management in CloudDr. Amarjeet Singh
 
Sql Server tips from the field
Sql Server tips from the fieldSql Server tips from the field
Sql Server tips from the fieldInnoTech
 
Microsoft access powerpoint final
Microsoft access  powerpoint finalMicrosoft access  powerpoint final
Microsoft access powerpoint finaljtaylor2229
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)James Serra
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Martin Bém
 
1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part isqlserver.co.il
 
Data Management - Full Stack Deep Learning
Data Management - Full Stack Deep LearningData Management - Full Stack Deep Learning
Data Management - Full Stack Deep LearningSergey Karayev
 
Database Design and Implementation
Database Design and ImplementationDatabase Design and Implementation
Database Design and ImplementationChristian Reina
 
Data Engineer's Lunch #55: Get Started in Data Engineering
Data Engineer's Lunch #55: Get Started in Data EngineeringData Engineer's Lunch #55: Get Started in Data Engineering
Data Engineer's Lunch #55: Get Started in Data EngineeringAnant Corporation
 
Large Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsLarge Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsJoel Oleson
 
Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Ivan Sanders
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...Editor IJCATR
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...Editor IJCATR
 
DATABASE Fp304 chapter 1
DATABASE Fp304   chapter 1DATABASE Fp304   chapter 1
DATABASE Fp304 chapter 1Radio Deejay
 
DBA, LEVEL III TTLM Monitoring and Administering Database.docx
DBA, LEVEL III TTLM Monitoring and Administering Database.docxDBA, LEVEL III TTLM Monitoring and Administering Database.docx
DBA, LEVEL III TTLM Monitoring and Administering Database.docxseifusisay06
 
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseNoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseMohammad Shaker
 

Similar a Tech days 2011 - database design patterns for keeping your database applications available and performing well - charley hanania (20)

Agile data lake? An oxymoron?
Agile data lake? An oxymoron?Agile data lake? An oxymoron?
Agile data lake? An oxymoron?
 
SQL Server Cluster Presentation
SQL Server Cluster PresentationSQL Server Cluster Presentation
SQL Server Cluster Presentation
 
Database Performance Management in Cloud
Database Performance Management in CloudDatabase Performance Management in Cloud
Database Performance Management in Cloud
 
Sql Server tips from the field
Sql Server tips from the fieldSql Server tips from the field
Sql Server tips from the field
 
Microsoft access powerpoint final
Microsoft access  powerpoint finalMicrosoft access  powerpoint final
Microsoft access powerpoint final
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
 
Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27Prague data management meetup 2018-03-27
Prague data management meetup 2018-03-27
 
1 extreme performance - part i
1   extreme performance - part i1   extreme performance - part i
1 extreme performance - part i
 
Supporting SQLserver
Supporting SQLserverSupporting SQLserver
Supporting SQLserver
 
Data Management - Full Stack Deep Learning
Data Management - Full Stack Deep LearningData Management - Full Stack Deep Learning
Data Management - Full Stack Deep Learning
 
Database Design and Implementation
Database Design and ImplementationDatabase Design and Implementation
Database Design and Implementation
 
Data Engineer's Lunch #55: Get Started in Data Engineering
Data Engineer's Lunch #55: Get Started in Data EngineeringData Engineer's Lunch #55: Get Started in Data Engineering
Data Engineer's Lunch #55: Get Started in Data Engineering
 
Large Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint DeploymentsLarge Scale SQL Considerations for SharePoint Deployments
Large Scale SQL Considerations for SharePoint Deployments
 
Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013Real world business workflow with SharePoint designer 2013
Real world business workflow with SharePoint designer 2013
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...
 
A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...A Review of Data Access Optimization Techniques in a Distributed Database Man...
A Review of Data Access Optimization Techniques in a Distributed Database Man...
 
DATABASE Fp304 chapter 1
DATABASE Fp304   chapter 1DATABASE Fp304   chapter 1
DATABASE Fp304 chapter 1
 
DBA, LEVEL III TTLM Monitoring and Administering Database.docx
DBA, LEVEL III TTLM Monitoring and Administering Database.docxDBA, LEVEL III TTLM Monitoring and Administering Database.docx
DBA, LEVEL III TTLM Monitoring and Administering Database.docx
 
NoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to CouchbaseNoSQL - A Closer Look to Couchbase
NoSQL - A Closer Look to Couchbase
 
DATABASE ADMINSTRATION
DATABASE ADMINSTRATION DATABASE ADMINSTRATION
DATABASE ADMINSTRATION
 

Más de Charley Hanania

2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptxCharley Hanania
 
Swiss pass chapter deck lausanne - june 2011
Swiss pass chapter deck   lausanne - june 2011Swiss pass chapter deck   lausanne - june 2011
Swiss pass chapter deck lausanne - june 2011Charley Hanania
 
Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Charley Hanania
 
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesPass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesCharley Hanania
 
Sql server operational best practices notes from the field - charley hanan...
Sql server operational best practices    notes from the field - charley hanan...Sql server operational best practices    notes from the field - charley hanan...
Sql server operational best practices notes from the field - charley hanan...Charley Hanania
 
Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Charley Hanania
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Charley Hanania
 

Más de Charley Hanania (7)

2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
2024.03.01 - My weakness, Your Glory - Contemplations on Jonah.pptx
 
Swiss pass chapter deck lausanne - june 2011
Swiss pass chapter deck   lausanne - june 2011Swiss pass chapter deck   lausanne - june 2011
Swiss pass chapter deck lausanne - june 2011
 
Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011Swiss pass chapter deck - zurich - april 2011
Swiss pass chapter deck - zurich - april 2011
 
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck DivesPass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
Pass camp 2010 - DBA 101 to 401 - From Spring Board to Deep Wreck Dives
 
Sql server operational best practices notes from the field - charley hanan...
Sql server operational best practices    notes from the field - charley hanan...Sql server operational best practices    notes from the field - charley hanan...
Sql server operational best practices notes from the field - charley hanan...
 
Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...Sql server club - performance management methodologies and enhancements in sq...
Sql server club - performance management methodologies and enhancements in sq...
 
Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...Sql connections germany - migration considerations when migrating your on pre...
Sql connections germany - migration considerations when migrating your on pre...
 

Último

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Último (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Tech days 2011 - database design patterns for keeping your database applications available and performing well - charley hanania

  • 1. Charley Hanania :: QS2 AG – Quality Software Solutions B.Sc (Computing), MCP , MCDBA, MCITP ,MCTS, MCT , Microsoft MVP: SQL Server Principal Consultant - Senior Database Specialist Database Design Patterns for Keeping Database Applications Available and Performing Well.
  • 2. About Charley Hanania Now: Microsoft MVP: SQL Server Database Consultant at QS2 AG Formerly: Production Product Owner of MS SQL Server Platform at UBS Investment Bank Consultant DB Team Leader at Other Banks ITIL v3 Certified SQL Server Certified since 1998 On SQL Server since 1995 Version 4 on OS/2 IT Professional since 1992 PASS Chapter Leader – Switzerland Regional Mentor – Europe 24 Hours of PASS Committee Member Event Speaker
  • 3. Presentation Summary DBA's will give you reasons and methods for achieving database availability for your application, but not many can broach the concept of keeping parts of your application running during an outage from the development perspective through partitioning your application database logically into levels of criticality. Adding this logical Layer to your database design and development allows you to bring your core application functionality online faster and more simply during failures and in disaster scenarios decide which areas of your application should come online first to maintain basic application operations. It also allows you to place your data better to cater for space and performance for an overall better performing system. This presentation will drill into this conceptually as well as provide some examples you can take back to the workplace to incorporate into your next evolutionary changes.
  • 5. Design Patterns by any Other Name… Industry “norms” in using databases Logically Partitioning your DB for Clarity Logically Partitioning your DB for Performance Logically Partitioning your DB for Availability Appendixes (time permitting): Partitioned Tables and Views Asynchronous Queues Agenda
  • 6. Design Patterns by any Other Name…
  • 7. Design Patterns are template-like methodologies. Focussed on particular goals. Architect-level focussed, but with follow-on implementation considerations. Design Patterns by any Other Name…
  • 8. Evolutionary Growth of Features and Functions Industry “norms” in Using Databases
  • 9. Industry “norms” in Using Databases
  • 10. Industry “norms” in Using Databases
  • 11. Logically Partitioning your DB for Clarity
  • 12. Interdependent Objects Differing schema complexities Differing Criticalities Differing Interfaces Differing “Personalities” Logically Partitioning your DB for Clarity
  • 13. Logically Partitioning your DB for Clarity
  • 14. Step 1 - User Schema Separation Separating out objects into schemas to help define business use and Criticality
  • 15. Logically Partitioning your DB for Performance
  • 16. Logically Partitioning your DB for Performance Performance-related issues: Disk I/O is the one most critical element to improving performance for data intensive workloads. When data objects are created in the default filegroup they share space and allocate more as needed. Extent fragmentation occurs as data from objects with differing “personalities” are persisted. Hotspots can occur on system pages that track the allocation and use of pages in the file. Read-ahead is affected as the data you’re retrieving is not laid out contiguously. User Schema Separation is done, now to look at the next layer down.
  • 17. Logically Partitioning your DB for Performance Resolutions: Creating additional files and filegroups helps to isolate where the objects are written to and lowers fragmentation. System pages are spread out per file, lowering contention. With Trace Flag 1117 and correct sizing of your data files, “Round-Robin” writes are possible, giving higher throughput on insert intensive workloads.* Performance Critical data can be placed on LUNS/Disk Arrays that have more spindles (eg RAID 1+0 mirrored) or on mirrored Solid State Drives. Conversely, archive data can be placed on inexpensive (eg. slower) disks. *Note: Recommendation valid for systems that have >1 CPU/Core and >1 Disk Spindle otherwise zero or detrimental performance may be experienced. Test First!
  • 18. Step 2 - Filegroup Separation Separating out objects into filegroups for isolation, placing them according to granular performance needs.
  • 19. Quick Recap – So Far 1. Don’t put user defined objects in the Primary Filegroup i. Allows the Primary Filegroup to load faster 2. Schema Separate user defined objects i. For clarity of purpose and operational use ii. Try not to use dbo schema (good design/operational practice) iii. DBA’s will schematize objects in a similar fashion to what was in the Adventureworks sample. You should look to map your schema’s around your application’s core functionality / use cases / criticality 3. Create Filegroups for each Schema i. Multiple if you want to partition historical data horizontally etc ii. Name them in a fashion that allows easy understanding of what is in them, or how they should be used.
  • 20. Logically Partitioning your DB for Availability
  • 21. Logically Partitioning your DB for Availability Major Points to availability when focussed on Logical Partitioning Time taken to open the database on restart, to start taking connections. Decreasing the size of the backup to restore through differential backups of read/write filegroups. Partial Database availability: a file/disk can go offline without it affected unrelated objects in the same database If architected/implemented correctly, most subsystems can run unaffected until non peak period for outage Management & Operations staff can decide which filegroups & subsystems to bring online first when recovering from disaster .
  • 22. Step 3 – Partial Database Availability What happens when a file or disk goes offline? How are other running subsystems affected?
  • 23. Appendices - 1 Partitioned Tables and Views
  • 24. Step 4 – Partitioning Tables Partitioning the Sales Table into smaller , manageable objects
  • 26. Step 5 – Service Broker Queues Writing messages to an asynchronous queue rather than directly to a table
  • 27. Links and Resources AdventureWorks Database Diagram http://www.microsoft.com/downloads/details.aspx?FamilyID=0f6e0bcf-a1b5-4760-8d79- 67970f93d5ff&DisplayLang=en Whitepaper: “Partial Database Availability” (Danny T ambs, May 2007) http://technet.microsoft.com Whitepaper: “Partitioned T able and Index Strategies Using SQL Server 2008” (Ron T almage, March 2009) http://technet.microsoft.com Kimberly Tripp’s Scripts for Creating and Partitioning SalesDB www.sqlskills.com Allen White’s Service Broker Session at the PASS Summit 2011 www.sqlpass.org
  • 28. Please help us make TechDays even better by Evaluating this Session. Thank you! Give us your feedback!
  • 29. © 2011 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.

Notas del editor

  1. [Tambs] While the database is in a state of partial availability, the filegroups that remain online can support queries. However, queries that depend on data that resides in filegroups that are offline return error 8653: Msg 8653, Level 16, State 1, Line 3 The query processor is unable to produce a plan for the table or view 'X' because the table resides in a filegroup which is not online.