0% found this document useful (0 votes)
63 views26 pages

Performing Database Maintenance

This module discusses performing database maintenance in SQL Server. It covers ensuring database integrity using DBCC CHECKDB, maintaining indexes by rebuilding and reorganizing them, and automating routine tasks using maintenance plans. The module demonstrates how to use DBCC CHECKDB, maintain indexes, and configure a database maintenance plan. It also includes a lab where students will use DBCC CHECK, rebuild indexes, and create maintenance plans on the AdventureWorks database.

Uploaded by

douglas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
63 views26 pages

Performing Database Maintenance

This module discusses performing database maintenance in SQL Server. It covers ensuring database integrity using DBCC CHECKDB, maintaining indexes by rebuilding and reorganizing them, and automating routine tasks using maintenance plans. The module demonstrates how to use DBCC CHECKDB, maintain indexes, and configure a database maintenance plan. It also includes a lab where students will use DBCC CHECK, rebuild indexes, and create maintenance plans on the AdventureWorks database.

Uploaded by

douglas
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 26

Module 5

Performing Database Maintenance


Module Overview

• Ensuring Database Integrity


• Maintaining Indexes
• Automating Routine Maintenance Tasks
Lesson 1: Ensuring Database Integrity

• Introduction to Database Integrity


• Overview of DBCC CHECKDB
• DBCC CHECKDB Options
• DBCC CHECKDB Repair Options
• Demonstration: Using DBCC CHECKDB
Introduction to Database Integrity

• Physical integrity
• Data pages are written to physical storage as SQL Server
requested and can be read correctly

• Logical integrity
• The data within the pages is logically correct so that they
can refer to each other as required to instruct SQL Server to
fetch related pages
Overview of DBCC CHECKDB

• Checks logical and physical database integrity


• Allocation of all pages in the database
• Consistency of tables and indexes
• Consistency of the database catalog

• Offers repair options


• Some options permit data loss

• Uses an internal database snapshot or table locks


• Should be run frequently
• Synchronize executions with your backup strategy

• Optimised check might be possible with


• DBCC CHECKFILEGROUP
DBCC CHECKDB Options

Option Description
PHYSICAL_ONLY Only checks the physical integrity to
reduce overhead
NOINDEX Does not perform logical checks on
nonclustered indexes
EXTENDED_LOGICAL_CHECKS Performs additional logical checks of
indexed views, spatial, and XML
indexes
TABLOCK Uses locks instead of database
snapshots
ALL_ERRORMSGS Returns all error messages instead of
the default action that returns the first
200
NO_INFOMSGS Returns only error messages and no
informational message
ESTIMATEONLY Estimates the amount of tempdb space
that it requires to run
DBCC CHECKDB Repair Options

• Database needs to be in SINGLE_USER mode


• DBCC CHECKDB output:
• REPAIR_REBUILD
• REPAIR_ALLOW_DATA_LOSS
• Consider restoring a database instead of allowing data loss
Demonstration: Using DBCC CHECKDB

In this demonstration, you will see how to:


• Use the DBCC CHECKDB command
Lesson 2: Maintaining Indexes

• How Indexes Affect Performance


• Types of Indexes
• Dynamic Management Objects
• Index Fragmentation
• FILLFACTOR and PAD_INDEX
• Ongoing Maintenance of Indexes
• Online Index Operations
• Updating Statistics
• Demonstration: Maintaining Indexes
How Indexes Affect Performance

• Table Scan
• SQL Server reads all data pages

• Index
• SQL Server uses index pages to find rows
Types of Indexes

• Clustered index has data pages in the leaf level


• Nonclustered index has pointers to data rows in leaf level

Root Node

Intermediate
Level Nodes

Leaf-Level Nodes/
Data Pages
Dynamic Management Objects

• Dynamic Management Objects


• Dynamic Management Views
• Dynamic Management Functions

• Categories of DMO
• Index-Related DMOs
• sys.dm_db_index_usage_stats
• sys.dm_db_index_operational_stats
• sys.dm_db_index_physical_stats
• sys.dm_db_missing_index_details
Index Fragmentation

• Fragmentation occurs when data modification


causes index pages to split:
• Internal fragmentation when pages are not full
• External fragmentation when pages are not in logical
sequence

• Detecting fragmentation:
• Index properties in SQL Server Management Studio
• sys.dm_db_index_physical_stats
FILLFACTOR and PAD_INDEX

• Leave free space in indexes to avoid


fragmentation:
• FILLFACTOR (leaf level only)
• PAD_INDEX (intermediate and root levels also)

ALTER TABLE Person.Contact


ADD CONSTRAINT PK_Contact_ContactID
PRIMARY KEY CLUSTERED
(
ContactID ASC
) WITH (PAD_INDEX = OFF, FILLFACTOR = 70);
GO
Ongoing Maintenance of Indexes

• Rebuild:
• Rebuilds the whole index
• Needs free space in database
• Performed as a single transaction with potential
requirement for a large amount of transaction log space
ALTER INDEX CL_LogTime ON dbo.LogTime REBUILD
• Reorganize:
• Sorts the pages and is always online
• Less transaction log usage
• Can be interrupted but still retain work performed to
that point
ALTER INDEX ALL ON dbo.LogTime REORGANIZE;
Online Index Operations

• Can create, rebuild, and drop indexes online:


• Enables concurrent user access to the underlying table
and indexes
• Only needs short term shared locks at beginning and
end of the operation and schema locks during the
operation
• Typically slower than equivalent offline operation

ALTER INDEX IX_Contact_EmailAddress


ON Person.Contact REBUILD
WITH ( PAD_INDEX = OFF,
FILLFACTOR = 80,
ONLINE = ON,
MAXDOP = 4 );
Updating Statistics

• Distribution statistics become outdated


• They can be set to update automatically/manually
• Do not disable auto_update_statistics

Option Description
AUTO_CREATE_STATISTICS Database options that enable SQL
AUTO_UPDATE_STATISTICS Server to automatically
create/update statistics
Statement that updates all statistics
UPDATE STATISTICS
on a table or specified subset of
<table>
statistics on demand
System stored procedure that
SP_UPDATESTATS
updates all statistics in a database
Demonstration: Maintaining Indexes

In this demonstration, you will see:


• How to maintain indexes
Lesson 3: Automating Routine Maintenance
Tasks

• Overview of SQL Server Maintenance Plans


• Monitoring Database Maintenance Plans
• Demonstration: Configuring a Database
Maintenance Plan
Overview of SQL Server Maintenance Plans

• You can schedule many tasks:


• Checking database integrity
• Shrinking databases
• Rebuilding and reorganizing indexes in a database
• Updating database object statistics
• Cleanup of task history
• Activation of related SQL Agent jobs and alerts

• The SQL Agent uses SSIS packages to perform


the tasks
Monitoring Database Maintenance Plans

• Real-time monitoring in Job Activity Monitor


• Execution results stored in msdb and can also be:
• Written to a text file
• Sent to an operator

• Cleanup tasks to implement retention policies


Demonstration: Configuring a Database
Maintenance Plan

In this demonstration, you will see:


• How to create a database maintenance plan
Lab: Performing Ongoing Database Maintenance

• Exercise 1: Use DBCC CHECK to Verify Data


Integrity
• Exercise 2: Rebuild Indexes
• Exercise 3: Create Database Maintenance Plans

Logon Information
Virtual machine: 20765C-MIA-SQL
User name : ADVENTUREWORKS\Student
Password: Pa55w.rd

Estimated Time: 45 minutes


Lab Scenario

You are a database administrator at Adventure


Works Cycles, with responsibility for databases on
the MIA-SQL Server instance. You must perform
the ongoing maintenance of the database on this
instance—this includes ensuring database
integrity and managing index fragmentation.
Lab Review

• What is the difference between an OLTP database


and an OLAP database in terms of recoverability
and the probability that you will have to use
Emergency mode?
• Is fragmentation always a bad thing in a database?
Module Review and Takeaways

• Real-world Issues and Scenarios


• Best Practice

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy