Very Large Databases @murilocmiranda http://www.sql.pt/ Administration @murilocmiranda http://www.sql.pt/ murilo.miranda@gmail.com.

Slides:



Advertisements
Similar presentations
TempDB: Performance and Manageability
Advertisements

Burt King We will cover: Essentials --No command line needed here (mott) What is SQL Server How does it come to life What are the.
SQL Server AlwaysOn: Active Secondaries Luis Vargas Program Manager Microsoft Corporation DBI312.
5 Copyright © 2005, Oracle. All rights reserved. Managing Database Storage Structures.
Big Data Working with Terabytes in SQL Server Andrew Novick
Module 4 Working with Databases. Module Overview Overview of SQL Server Databases Working with Files and Filegroups Moving Database Files.
Database Optimization & Maintenance Tim Richard ECM Training Conference#dbwestECM Agenda SQL Configuration OnBase DB Planning Backups Integrity.
SharePoint and SQL Server integration Demo: SQL Server Optimizing Configurations SQL Server 2014 for SharePoint 2013 Avoiding ginormous transaction.
Chapter 7: Configuring Disks. 2/24 Objectives Learn about disk and file system configuration in Vista Learn how to manage storage Learn about the additional.
Proper Care and Feeding of your SQL MDB -Recommendations for General MDB Maintenance -Read the notes on the foils! -Revised October
Working with SQL and PL/SQL/ Session 1 / 1 of 27 SQL Server Architecture.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Database Configuration and Maintenance Database Configuration and Maintenance Exam / 30.
Optimizing SQL Server 2012 for SharePoint 2013 SharePoint Saturday/Friday, Honolulu March 27, 2015.
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
Chapter 2 Administrating DB Engine. Database Engine  The Database Engine is the core service for storing, processing, and securing data.  It provides.
Russ Houberg Senior Technical Architect, MCM KnowledgeLake, Inc.
SQL Server 2008 & Solid State Drives Jon Reade SQL Server Consultant SQL Server 2008 MCITP, MCTS Co-founder SQLServerClub.com, SSC
Building Highly Available Systems with SQL Server™ 2005 Vineet Gupta Evangelist – Data and Integration Microsoft Corp.
SQL Server 2008 Implementation and Maintenance Chapter 7: Performing Backups and Restores.
Chapter 10 : Designing a SQL Server 2005 Solution for High Availability MCITP Administrator: Microsoft SQL Server 2005 Database Server Infrastructure Design.
Exam QUESTION CertKiller.com has hired you as a database administrator for their network. Your duties include administering the SQL Server 2008.
Troubleshooting SQL Server Enterprise Geodatabase Performance Issues
Chapter 2: Designing Physical Storage MCITP Administrator: Microsoft SQL Server 2005 Database Server Infrastructure Design Study Guide (70-443)
Module 3: Managing Database Files. Overview Introduction to Data Structures Creating Databases Managing Databases Placing Database Files and Logs Optimizing.
Chapter 18: Windows Server 2008 R2 and Active Directory Backup and Maintenance BAI617.
Extents, segments and blocks in detail. Database structure Database Table spaces Segment Extent Oracle block O/S block Data file logical physical.
Agenda for Today Chapter 5 –Skip Lesson 2 Review questions Midterm Chapter 6 Review questions.
Rajib Kundu Agenda Definitions Failover Cluster Database Snapshots Log shipping Database Mirroring.
Module 6 Backup of SQL Server 2008 R2 Databases. Module Overview Backing up Databases and Transaction Logs Managing Database Backups Working with Backup.
MCTS Guide to Microsoft Windows Vista Chapter 4 Managing Disks.
Module 16: Performing Ongoing Database Maintenance
© 2008 Quest Software, Inc. ALL RIGHTS RESERVED. Perfmon and Profiler 101.
Week 7 : Chapter 7 Agenda SQL 710 Maintenance Plan:
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Infrastructure for Data Warehouses. Basics Of Data Access Data Store Machine Memory Buffer Memory Cache Data Store Buffer Bus Structure.
MISSION CRITICAL COMPUTING Siebel Database Considerations.
Hands-On Microsoft Windows Server 2008 Chapter 7 Configuring and Managing Data Storage.
Praveen Srivatsa Director| AstrhaSoft Consulting blogs.asthrasoft.com/praveens |
Log Shipping, Mirroring, Replication and Clustering Which should I use? That depends on a few questions we must ask the user. We will go over these questions.
Making DBCC CHECKDB Go Faster Argenis Fernandez Senior Database Engineer
Digging Out From Corruption Eddie Wuerch, MCM - Principal, Database Performance - Salesforce Marketing Cloud Data protection and loss recovery with SQL.
SQL SERVER MAINTENANCE PLANS Kat
Backing Up and Restoring Databases Advanced Database Dr. AlaaEddin Almabhouh.
Strategies for Working with Texas-sized Databases Robert L Davis Database Engineer
SQL Server 2016 – New Features Tilahun Endihnew March 12, 2016.
SQL Server High Availability Introduction to SQL Server high availability solutions.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
You Inherited a Database Now What? What you should immediately check and start monitoring for. Tim Radney, Senior DBA for a top 40 US Bank President of.
Hitting the SQL Server “Go Faster” Button Rob Douglas #509 | Brisbane 2016.
ProgressBook Suite Maintenance
Get the Most out of SQL Server Standard Edition
You Inherited a Database Now What?
Automated Restore Script Output for Ola Hallengren’s Maintenance Solution 1) Start SQL Services on Local 2) Connect to Azure AlwaysOn 3) Delete all maintenance.
Hitting the SQL Server “Go Faster” Button
Very Large Databases in your future
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
Designing Database Solutions for SQL Server
Introduction to SQL Server Management for the Non-DBA
Dynamics AX Performance
Hitting the SQL Server “Go Faster” Button
Configuring SQL Server
Real world In-Memory OLTP
Very large Databases in your future Eric Peterson.
Configuring SQL Server
AlwaysOn Availability Groups
SQL Server Performance Tuning
It’s TEMPDB Why Should You Care?
You Inherited a Database Now What?
Hybrid Buffer Pool The Good, the Bad and the Ugly
Presentation transcript:

Very Large Databases @murilocmiranda http://www.sql.pt/ Administration @murilocmiranda http://www.sql.pt/ murilo.miranda@gmail.com

AGENDA

AGENDA What is a VLDB? Typical Troubles OS Config Instance Config DB Config Maintenance AGENDA

VLDB??

There’s no official definition. VLDB??

There’s no official definition. Typically occupying TB range. VLDB??

VLDB?? There’s no official definition. Typically occupying TB range. Billions of rows. VLDB??

VLDB?? There’s no official definition. Typically occupying TB range. Billions of rows. Typically: OLAP or OLTP with large amount of users. VLDB??

Wikipedia… A very large database, or VLDB, is a database that contains an extremely high number of tuples (database rows), or occupies an extremely large physical filesystem storage space. The most common definition of VLDB is a database that occupies more than 1 terabyte or contains several billion rows, although naturally this definition changes over time. VLDB??

SQL vs. VLDB

Maximum database size SQL vs. VLDB

Maximum database size 524,272 TB SQL vs. VLDB

SQL vs. VLDB 16 TB 2 TB Maximum data file size Maximum log file size A limit of 32.767 files which can be distributed between 32.767 filegroups. SQL vs. VLDB

Typical Troubles

Maintenance Typical Troubles

Backups Maintenance Typical Troubles

Backups Maintenance Indexes Typical Troubles

Backups Maintenance Indexes Statistics Typical Troubles

Typical Troubles Maintenance Backups Indexes Statistics Disaster Recovery Typical Troubles

Typical Troubles Performance Maintenance Backups Indexes Statistics Disaster Recovery Typical Troubles

OS CONFIG

Perform Volume Maintenance OS CONFIG

Turning on Instant Initialization to speed up data file growth and restores. OS CONFIG

Storage Layout OS CONFIG

Plan an efficient storage layout. OS CONFIG

OS CONFIG Plan an efficient storage layout. Normally, the more spread, the more effective. OS CONFIG

OS CONFIG Plan an efficient storage layout. Normally, the more spread, the more effective. Suggestion: SQL BIN SQL DATA SQL IDX SQL LOGS SQL TMP OS CONFIG

Mountpoints OS CONFIG

Mountpoints could be a good strategy. OS CONFIG

OS CONFIG Mountpoints could be a good strategy. Mountpoints are persistent directories that point to disk volumes. OS CONFIG

OS CONFIG Pros: Scalable. Save drive letters (limited to 26). Easy to add. No need to restart SQL Server. OS CONFIG

OS CONFIG Cons: Looks like a simple folder. Need a different approach to monitor. OS CONFIG

So, if you don’t know the server…. OS CONFIG

OS CONFIG Partition Alignment Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

Setting the partition offset properly can improve up to 30% the performance. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

Setting the partition offset properly can improve up to 30% the performance. Partition alignment increases throughput (bytes/sec) and reduce disk queues. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

Setting the partition offset properly can improve up to 30% the performance. Partition alignment increases throughput (bytes/sec) and reduce disk queues. A partition that is track misaligned will occasionally cause 2 I/O operations instead of one. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

Unless performed at the time of partition creation, the default alignment offset (31,5 Kb) will result in unaligned partitions on versions of Windows up to and including Windows Server 2003. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

OS CONFIG This offset is associated with hidden sectors, which basically store partition information. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

OS CONFIG This offset is associated with hidden sectors, which basically store partition information. Considering that: Each disk sector has 512 bytes. Win. 2003 has 63 hidden sectors. OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

This offset is associated with hidden sectors, which basically store partition information. Considering that: Each disk sector has 512 bytes. Win. 2003 has 63 hidden sectors. 512 * 63 = 31,5 Kb OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

OS CONFIG Example: Stripe Unit Size: 64Kb* Allocation Unit Size: 64Kb Optimal values OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10 * Defined by storage team.

OS CONFIG Example: Stripe Unit Size: 64Kb* Allocation Unit Size: 64Kb Optimal values Data (Alloc. Unit Size) Stripe Size OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10 * Defined by storage team.

OS CONFIG Optimal solution: Data (Alloc. Unit Size) Stripe Size Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

OS CONFIG Best Practice: Set an offset of 1024 Kb. This value works for mostly disks out there. Allocation Unit Size = Stripe Unit Size. The rule: Offset / Allocation unit = INTEGER Eg: 1024/64=16 OS CONFIG Track = Group of Sectors and CLusters Cluster = File allocation Unit – Um Cluster tem N Sectors – Para um allocation unit de 64K -> 512 b (sector size) * 128 = 64K!! Sector = Smallest accessible unit in a physical disk (usually 512 bytes) Stripe Unit Size = Define o tamanho que os dados serão distribuidos entre os discos de um grupo RAID-0, RAID-5, RAID-10

WARNIG Some I/O subsystem vendors intercepting what Windows is trying to do and are still creating partitions with the incorrect offset – Even for Windows 2008+. ALWAYS check!

Anti-Virus in servers… is really a need? OS CONFIG

OS CONFIG Cost money to license. Maintenance costs. Can cause problems in Prod. Can’t protect to zero-day exploits. OS CONFIG

What can we do instead? OS CONFIG

OS CONFIG Keep the servers patched. Configure the firewall properly. Restrict server’s access. You can install AV… in workstations! OS CONFIG

What’s the big problem for SQL Server? OS CONFIG

OS CONFIG One more app fighting for resources. SQL Server files can be locked. OS CONFIG

How can AV and SQL Server live together? OS CONFIG

Add exceptions! OS CONFIG

OS CONFIG Basically the AV should ignore: SQL Server data and log files (.mdf, .ndf and .ldf). Backup files (.bak and .trn). Full-text Catalog files. Trace files (.trc). ERRORLOG files. SQL Server binaries folder. Filestream folder. OS CONFIG More on: http://support.microsoft.com/kb/309422

Instance Config

Memory Instance Config

Memory This is a very open subject. Instance Config

Instance Config Memory This is a very open subject. There are lots of discussions about that… Instance Config

Instance Config Memory This is a very open subject. There are lots of discussions about that… There’s no perfect formula, because the correct awnser is…. Instance Config

Instance Config Memory … it depends !! This is a very open subject. There are lots of discussions about that… There’s no perfect formula, because the correct answer is…. … it depends !! Instance Config It depends: HBAs or FusionIO storage, both of which require a lot of free memory for the drivers. Concurrent applications in the server. Number of instance instance or SQL Services

Instance Config Memory An efficient general rule… Baseline: 1 GB for the OS Up to 16 GB available 1 GB for each 4 GB More than 16 GB 1 GB for every 8 GB Instance Config

Instance Config Memory This is for 64 bit servers… For 32 bit, here is a good article to follow: http://www.eraofdata.com/understanding-and-configuring-sql-servers-memory-settings/ Instance Config 32-bit applications are natively restricted to a 2 GB VAS /3GB allows a 32-bit process to increase its VAS to 3 GB To address more than 4 GB of RAM on 32-bit Windows, the OS needs to have the /PAE switch added to the boot.ini file

TempDB Instance Config

TempDB Two common behaviors: Instance Config

TempDB Two common behaviors: Ignore. Overvalue. Instance Config

“TempDb is the SQL’s public toilet” As per Brent Ozar: “TempDb is the SQL’s public toilet” Instance Config

TempDB And this is true! Instance Config

TempDB Instance Config

Instance Config TempDB There’s a myth: tempdb should always have one data file per processor core. Instance Config

Instance Config Again…. TempDB There’s a myth: tempdb should always have one data file per processor core. Again…. Instance Config

Instance Config Again…. It depends! TempDB There’s a myth: tempdb should always have one data file per processor core. Again…. It depends! Instance Config

The more files, the more costly. TempDB Execute large operations, like a sort or store a huge temporary table, may be slowed down because of the round-robin operation. The more files, the more costly. Instance Config

Instance Config TempDB Common wait types on TempDB: PAGELATCH_*: Contention for In-memory allocation bitmaps. PAGEIOLATCH_*: Contention at the I/O subsystem level. Instance Config

TempDB How many tempdb data files should we have? Instance Config

Instance Config TempDB How many tempdb data files should we have? A recommended approach is: Up to 8 cores: Number of files = Number of cores. More than 8 cores: Add 8 files. Monitor PAGELATCH_*. Add 4 more files at a time, if necessary. Instance Config

Instance Config TempDB Other TempDB best practices: Isolate the TempDB in a different storage system. Depending of the load, you might need to separate LDF and M(N)DF. Use a fast drive (SSD :). Set an initial size, equally to all the files. Set the auto-growth accordingly. If you have a heavy operation using constantly the TempDB, consider create a staging table into your own database. Instance Config

Instance Config TempDB From SQL Server 2012, local disk TempDB in SQL Server cluster. Instance Config

Instance Config TempDB From SQL Server 2012, local disk TempDB in SQL Server cluster. More flexibility. Use PCIe bus instead of HBA, and have more throughput. Data and Log are in SAN, TempDB locally: Avoid congestion or contention on a shared storage network or array. Instance Config

DB CONFIG

DB CONFIG Don’t rely on auto-grow. You can manage file growth and control the free disk space and avoids performance problems. DB CONFIG chunks less than 64MB and up to 64MB = 4 VLFs chunks larger than 64MB and up to 1GB = 8 VLFs chunks larger than 1GB = 16 VLFs Huge t-logs cause huge VLFs Huge VLFs are hard to clear (performance issue) SQL Server can only clear (backup) inactive VLFs, so a huge VLF can take time to be free and will take time to be backed up.

DB CONFIG Don’t rely on auto-grow. Have page checksums turned on. You can manage file growth and control the free disk space and avoids performance problems. Have page checksums turned on. To detect damaged pages. DB CONFIG chunks less than 64MB and up to 64MB = 4 VLFs chunks larger than 64MB and up to 1GB = 8 VLFs chunks larger than 1GB = 16 VLFs Huge t-logs cause huge VLFs Huge VLFs are hard to clear (performance issue) SQL Server can only clear (backup) inactive VLFs, so a huge VLF can take time to be free and will take time to be backed up.

DB CONFIG Don’t rely on auto-grow. Have page checksums turned on. You can manage file growth and control the free disk space and avoids performance problems. Have page checksums turned on. To detect damaged pages. Make sure auto-stats update is turned on. For OLTP consider turning auto-stats update off only for heavily updated tables, and schedule a job that periodically updates the statistics for those tables. DB CONFIG chunks less than 64MB and up to 64MB = 4 VLFs chunks larger than 64MB and up to 1GB = 8 VLFs chunks larger than 1GB = 16 VLFs Huge t-logs cause huge VLFs Huge VLFs are hard to clear (performance issue) SQL Server can only clear (backup) inactive VLFs, so a huge VLF can take time to be free and will take time to be backed up.

DB CONFIG

DB CONFIG Make sure you’re managing the transaction log correctly: Full recovery requires log backups. No advantage in have multiple log files. Control the file growth or this could cause VLF fragmentation. Performance issues. Slow backup time. Don’t set the log file growth size to a multiple of 4 in older SQL Server versions. http://connect.microsoft.com/SQLServer/feedback/details/481594/log-growth-not-working-properly-with-specific-growth-sizes-vlfs-also-not-created-appropriately DB CONFIG

MAINTENACE

Few questions… MAINTENANCE

MAINTENANCE How to meet your SLAs dealing with a TB database? Is data-loss acceptable? What about the recovery time? Are you able to UPDATE STATS, do INDEX MAINTENANCE and run a INTEGRITY CHECK in time and WITHOUT PROBLEMS? MAINTENANCE

DISASTER RECOVERY MAINTENANCE

MAINTENANCE First of all, think in a Disaster Recovery plan! SQL Server is not Oracle, we have “free” included options: Log Shipping (HA and DR) Database Mirroring (HA and DR) DB Snapshot advantage Replication (HA, DR and LB) AlwaysOn (HA, DR and LB) We can still be safe with a storage level replication. MAINTENANCE

Partition Compress Clean MAINTENANCE

MAINTENANCE Partition, Compress and Clean Using the partitioning feature you can devise the maintenance. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Using the partitioning feature you can devise the maintenance. You can use the DBCC CHECKFILEGROUP command. DBCC CHECKFILEGROUP and DBCC CHECKDB are. The main difference is that DBCC CHECKFILEGROUP is limited to the single specified filegroup and required tables. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Using the partitioning feature you can devise the maintenance. Devising a filegroup architecture allows piecemeal restores with low TTR Online piecemeal restore: After the PRIMARY FG restore the DB can be online. The tables will come available while each FG is restored. Design the database accordingly: Keep the necessary into the PRIMARY FG. Configuration tables, indispensable data, etc… Think in the consistency: keep related tables in the same FG. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Compress backups Vs. Compress Data Backup compression: More CPU usage to backup/restore (avg ~20%). Less time to backup/restore (avg ~40%). Good compression ratio. SELECT backup_size/compressed_backup_size FROM msdb..backupset; A backup set will not be able to contain both compressed and uncompressed backups. No advantage with TDE enabled. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Compress backups Vs. Compress Data Data compression (ROW and PAGE): One time operation. Reduce the physical database size. Reduce the I/O required for a workload. Allows more data to be stored in the buffer cache. More CPU usage. Usually good for DW systems For OLTP may also benefit. FILESTREAM data is not compressed. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Compress backups Vs. Compress Data Data compression (ROW and PAGE): TDE and Data Compression play together! Backup and Data Compression can coexist! MAINTENANCE

MAINTENANCE Partition, Compress and Clean Compress backups Vs. Compress Data Data compression (ROW and PAGE): ROW or PAGES compression? You can use “SQL Server Compression Estimator” MAINTENANCE

MAINTENANCE Partition, Compress and Clean Purge and Archive the data Purging data: If data is needed no more… Save storage. Faster backups. Improves the performance. MAINTENANCE

MAINTENANCE Partition, Compress and Clean Purge and Archive the data Archiving data: If data is still needed… Isolate in a different FG. Set as Read-Only: Avoids locking. For faster scans: 100% fill factor. Update statistics with FULLSCAN. You can adapt the backup strategy. You can adapt the backup strategy using Partial Backups. This allows you to exclude read-only filegroups. MAINTENANCE

MAINTENANCE More about DBCC CHECKDB CHECKDB takes time and uses resources. Run a DBCC CHECKDB using the WITH PHYSICAL_ONLY option. Limits the checking to the integrity of the physical structure of the page and record headers and the allocation consistency of the database. Faster, but a full CHECKDB is required periodically. MAINTENANCE

MAINTENANCE More about DBCC CHECKDB We can divide up the consistency checking over several days, Paul Randal’s prescription is: Divide tables in two buckets (bigger ones and the rest) On Sunday: Run a DBCC CHECKALLOC Run a DBCC CHECKCATALOG Run a DBCC CHECKTABLE on each table in the first bucket On Monday, Tuesday, Wednesday: Run a DBCC CHECKTABLE on each table in the 2nd, 3rd, 4th buckets, respectively On Thursday: Run a DBCC CHECKTABLE on each table in the 5th bucket On Friday and Saturday: Run a DBCC CHECKTABLE on each table in the 6th and 7th buckets, respectively MAINTENANCE More on: http://www.sqlskills.com/blogs/paul/checkdb-from-every-angle-consistency-checking-options-for-a-vldb/

MAINTENANCE More about BACKUPS Besides doing PARTIAL BACKUPS we have more options… A MULTISTREAM BACKUP is an option to run faster: File 1 E: DB File 2 F: File 3 G: MAINTENANCE

MAINTENANCE More about BACKUPS To make sure it will be well stored, we can use a MIRROR. File 1 File 1 E: DB File 2 File 2 F: File 3 File 3 G: MAINTENANCE

MAINTENANCE More about BACKUPS If storing to the network: Use a separate network card to avoid network congestion. Don’t forget about T-LOG backups! Create a good backup strategy. Verify the backups periodically. MAINTENANCE

MAINTENANCE INDEXES MAINTENANCE Only rebuild/defrag indexes that are really fragmented (avoid unnecessary work in short maintenance windows) If you defrag instead of rebuild, make sure you manually update stats. Be wary of doing large index maintenance jobs if you use log shipping or DBM They contribute to large log backups Index rebuilds are always full-logged when DBM is present MAINTENANCE

QUESTIONS?

OBRIGADO! @murilocmiranda http://www.sql.pt/ murilo.miranda@gmail.com