0% found this document useful (0 votes)
55 views50 pages

Chapter 1 - Database Performance Tuning and Query Optimization

This chapter discusses database performance tuning and query optimization. It covers basic performance tuning concepts, how a DBMS processes SQL queries, the importance of indexes for query processing, and common practices for writing efficient SQL code and optimizing query performance.

Uploaded by

sara.belhadj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
55 views50 pages

Chapter 1 - Database Performance Tuning and Query Optimization

This chapter discusses database performance tuning and query optimization. It covers basic performance tuning concepts, how a DBMS processes SQL queries, the importance of indexes for query processing, and common practices for writing efficient SQL code and optimizing query performance.

Uploaded by

sara.belhadj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 50

The National Higher School of

Artificial Intelligence

DATABASES
Chapter 7 : Database Performance Tuning and
Query Optimization

Pr. Kamel BOUKHALFA


Slides From the Textbook :
Carlos Coronel and Steven Morris, Database Systems: Design, Implementation, and Management
16/10/2022 Tenth Edition
Objectives
• In this chapter, you will learn:
– Basic database performance-tuning concepts
– How a DBMS processes SQL queries
– About the importance of indexes in query
processing

th 2
Database
16/10/2022
Systems, 8 Edition
Objectives (continued)
• In this chapter, you will learn: (continued)
– About the types of decisions the query optimizer
has to make
– Some common practices used to write efficient
SQL code
– How to formulate queries and tune the DBMS for
optimal performance

th 3
Database
16/10/2022
Systems, 8 Edition
Database Performance-Tuning
Concepts
• Goal of database performance is to execute
queries as fast as possible
• Database performance tuning
– Set of activities and procedures designed to
reduce response time of database system
• All factors must operate at optimum level with
minimal bottlenecks
• Good database performance starts with
good database design

th 4
Database
16/10/2022
Systems, 8 Edition
th 5
Database
16/10/2022
Systems, 8 Edition
Performance Tuning:
Client and Server

• Client side
– Generate SQL query that returns correct answer
in least amount of time
• Using minimum amount of resources at server
– SQL performance tuning
• Server side
– DBMS environment configured to respond to
clients’ requests as fast as possible
• Optimum use of existing resources
– DBMS performance tuning
th 6
Database
16/10/2022
Systems, 8 Edition
DBMS Architecture
• All data in database are stored in data files
• Data files
– Automatically expand in predefined increments
known as extends
– Grouped in file groups or table spaces
• Table space or file group:
– Logical grouping of several data files that store
data with similar characteristics

th 7
Database
16/10/2022
Systems, 8 Edition
th 8
Database
16/10/2022
Systems, 8 Edition
DBMS Architecture (continued)

• Data cache or buffer cache: shared, reserved


memory area
– Stores most recently accessed data blocks in
RAM
• SQL cache or procedure cache: stores most
recently executed SQL statements
– Also PL/SQL procedures, including triggers and
functions
• DBMS retrieves data from permanent storage
and places it in RAM

th 9
Database
16/10/2022
Systems, 8 Edition
DBMS Architecture (continued)
• Input/output request: low-level data access
operation to/from computer devices
• Data cache is faster than data in data files
– DBMS does not wait for hard disk to retrieve data
• Majority of performance-tuning activities focus on
minimizing I/O operations
• Typical DBMS processes:
– Listener, User, Scheduler, Lock manager, Optimizer

th 10
Database
16/10/2022
Systems, 8 Edition
Database Statistics
• Measurements about database objects and
available resources
– Tables
– Indexes
– Number of processors used
– Processor speed
– Temporary space available

th 11
Database
16/10/2022
Systems, 8 Edition
Database Statistics (continued)
• Make critical decisions about improving query
processing efficiency
• Can be gathered manually by DBA or
automatically by DBMS

th 12
Database
16/10/2022
Systems, 8 Edition
th 13
Database
16/10/2022
Systems, 8 Edition
Query Processing

• DBMS processes queries in three phases


– Parsing
• DBMS parses the query and chooses the most
efficient access/execution plan
– Execution
• DBMS executes the query using chosen
execution plan
– Fetching
• DBMS fetches the data and sends the result back
to the client

th 14
Database
16/10/2022
Systems, 8 Edition
th 15
Database
16/10/2022
Systems, 8 Edition
SQL Parsing Phase

• Break down query into smaller units


• Transform original SQL query into slightly
different version of original SQL code
– Fully equivalent
• Optimized query results are always the same as
original query
– More efficient
• Optimized query will almost always execute faster
than original query

th 16
Database
16/10/2022
Systems, 8 Edition
SQL Parsing Phase (continued)

• Query optimizer analyzes SQL query and finds


most efficient way to access data
– Validated for syntax compliance
– Validated against data dictionary
• Tables, column names are correct
• User has proper access rights
– Analyzed and decomposed into components
– Optimized
– Prepared for execution

th 17
Database
16/10/2022
Systems, 8 Edition
SQL Parsing Phase (continued)
• Access plans are DBMS-specific
– Translate client’s SQL query into series of
complex I/O operations
– Required to read the data from the physical data
files and generate result set
• DBMS checks if access plan already exists for
query in SQL cache
• DBMS reuses the access plan to save time
• If not, optimizer evaluates various plans
– Chosen plan placed in SQL cache

th 18
Database
16/10/2022
Systems, 8 Edition
th 19
Database
16/10/2022
Systems, 8 Edition
SQL Execution Phase
SQL Fetching Phase
• All I/O operations indicated in access plan are
executed
– Locks acquired
– Data retrieved and placed in data cache
– Transaction management commands processed
• Rows of resulting query result set are returned
to client
• DBMS may use temporary table space to store
temporary data
th 20
Database
16/10/2022
Systems, 8 Edition
Query Processing Bottlenecks

• Delay introduced in the processing of an I/O


operation that slows the system
– CPU
– RAM
– Hard disk
– Network
– Application code

th 21
Database
16/10/2022
Systems, 8 Edition
Indexes and Query Optimization

• Indexes
– Crucial in speeding up data access
– Facilitate searching, sorting, and using
aggregate functions as well as join operations
– Ordered set of values that contains index key
and pointers
• More efficient to use index to access table than
to scan all rows in table sequentially

th 22
Database
16/10/2022
Systems, 8 Edition
Indexes and Query Optimization
(continued)
• Data sparsity: number of different values a
column could possibly have
• Indexes implemented using:
– Hash indexes
– B-tree indexes
– Bitmap indexes
• DBMSs determine best type of index to use

th 23
Database
16/10/2022
Systems, 8 Edition
th 24
Database
16/10/2022
Systems, 8 Edition
Optimizer Choices

• Rule-based optimizer
– Preset rules and points
– Rules assign a fixed cost to each operation
• Cost-based optimizer
– Algorithms based on statistics about objects
being accessed
– Adds up processing cost, I/O costs, resource
costs to derive total cost

th 25
Database
16/10/2022
Systems, 8 Edition
th 26
Database
16/10/2022
Systems, 8 Edition
Using Hints to Affect
Optimizer Choices
• Optimizer might not choose best plan
• Makes decisions based on existing statistics
– Statistics may be old
– Might choose less efficient decisions
• Optimizer hints: special instructions for the
optimizer embedded in the SQL command text

th 27
Database
16/10/2022
Systems, 8 Edition
th 28
Database
16/10/2022
Systems, 8 Edition
SQL Performance Tuning
• Evaluated from client perspective
– Most current relational DBMSs perform
automatic query optimization at the server end
– Most SQL performance optimization techniques
are DBMS-specific
• Rarely portable
• Majority of performance problems related to
poorly written SQL code
• Carefully written query usually outperforms a
poorly written query

th 29
Database
16/10/2022
Systems, 8 Edition
Index Selectivity

• Indexes are used when:


– Indexed column appears by itself in search
criteria of WHERE or HAVING clause
– Indexed column appears by itself in GROUP BY
or ORDER BY clause
– MAX or MIN function is applied to indexed
column
– Data sparsity on indexed column is high
• Measure of how likely an index will be used

th 30
Database
16/10/2022
Systems, 8 Edition
Index Selectivity (continued)

• General guidelines for indexes:


– Create indexes for each attribute in WHERE,
HAVING, ORDER BY, or GROUP BY clause
– Do not use in small tables or tables with low
sparsity
– Declare primary and foreign keys so optimizer
can use indexes in join operations
– Declare indexes in join columns other than
PK/FK

th 31
Database
16/10/2022
Systems, 8 Edition
Conditional Expressions

• Normally expressed within WHERE or HAVING


clauses of SQL statement
• Restricts output of query to only rows matching
conditional criteria

th 32
Database
16/10/2022
Systems, 8 Edition
Conditional Expressions (continued)

• Common practices for efficient SQL:


– Use simple columns or literals in conditionals
– Numeric field comparisons are faster
– Equality comparisons faster than inequality
– Transform conditional expressions to use literals
– Write equality conditions first
– AND: Use condition most likely to be false first
– OR: Use condition most likely to be true first
– Avoid NOT

th 33
Database
16/10/2022
Systems, 8 Edition
Query Formulation

• Identify what columns and computations are


required
• Identify source tables
• Determine how to join tables
• Determine what selection criteria is needed
• Determine in what order to display output

th 34
Database
16/10/2022
Systems, 8 Edition
DBMS Performance Tuning

• Includes managing DBMS processes in primary


memory and structures in physical storage
• DBMS performance tuning at server end
focuses on setting parameters used for:
– Data cache
– SQL cache
– Sort cache
– Optimizer mode

th 35
Database
16/10/2022
Systems, 8 Edition
DBMS Performance Tuning
(continued)
• Some general recommendations for creation of
databases:
– Use RAID (Redundant Array of Independent
Disks) to provide balance between performance
and fault tolerance
– Minimize disk contention
– Put high-usage tables in their own table spaces
– Assign separate data files in separate storage
volumes for indexes, system, high-usage tables

th 36
Database
16/10/2022
Systems, 8 Edition
DBMS Performance Tuning
(continued)
• Some general recommendations for creation of
databases: (continued)
– Take advantage of table storage organizations in
database
– Partition tables based on usage
– Use denormalized tables where appropriate
– Store computed and aggregate attributes in
tables

th 37
Database
16/10/2022
Systems, 8 Edition
Query Optimization Example

• Example illustrates how query optimizer works


• Based on QOVENDOR and QOPRODUCT
tables
• Uses Oracle SQL*Plus

th 38
Database
16/10/2022
Systems, 8 Edition
th 39
Database
16/10/2022
Systems, 8 Edition
th 40
Database
16/10/2022
Systems, 8 Edition
th 41
Database
16/10/2022
Systems, 8 Edition
th 42
Database
16/10/2022
Systems, 8 Edition
th 43
Database
16/10/2022
Systems, 8 Edition
th 44
Database
16/10/2022
Systems, 8 Edition
th 45
Database
16/10/2022
Systems, 8 Edition
th 46
Database
16/10/2022
Systems, 8 Edition
th 47
Database
16/10/2022
Systems, 8 Edition
Summary
• Database performance tuning
– Refers to activities to ensure query is processed
in minimum amount of time
• SQL performance tuning
– Refers to activities on client side to generate
SQL code
• Returns correct answer in least amount of time
• Uses minimum amount of resources at server end
• DBMS architecture represented by processes
and structures used to manage a database

th 48
Database
16/10/2022
Systems, 8 Edition
Summary (continued)

• Database statistics refers to measurements


gathered by the DBMS
– Describe snapshot of database objects’
characteristics
• DBMS processes queries in three phases:
parsing, execution, and fetching
• Indexes are crucial in process that speeds up
data access

th 49
Database
16/10/2022
Systems, 8 Edition
Summary (continued)

• During query optimization, DBMS chooses:


– Indexes to use, how to perform join operations,
table to use first, etc.
• Hints change optimizer mode for current SQL
statement
• SQL performance tuning deals with writing
queries that make good use of statistics
• Query formulation deals with translating
business questions into specific SQL code

th 50
Database
16/10/2022
Systems, 8 Edition

You might also like