Database Tuning Principles, Experiments and Troubleshooting

advertisement
Database Administration and
Performance Tuning
--Introduction
1
Course Structure
• Lecturers:
–
–
–
–
Dr. Yanghua Xiao (肖仰华)
Email: shawyh@fudan.edu.cn
Mobile phone: 13918452801
http://gdm.fudan.edu.cn/GDMWiki/Wiki.jsp?pa
ge=Dbtune
2
Goals of the Course
• Appreciation of DBMS architecture
• Study the effect of various components on the
performance of the systems
• Tune your application or system built upon DBMS
• Performance criteria for choosing a DBMS
• Tuning principles
• Troubleshooting techniques for chasing down
performance problems
3
Text/Reference Books:
•
•
•
•
•
•
•
•
•
•
Dennis Shasha and Phillipe Bonnet: Database Tuning : Principles Experiments
and Troubleshooting Techniques. Morgan Kaufmann Publishers. 2002
(released in June 2002). TEXT.
Dennis Shasha: Database tuning : a principled approach. Prentice Hall, 1992.
REFERENCE (a good reference if cannot get the text book)
Database Management Systems, 3rd edition. Raghu Ramakrishnan & Johannes
Gehrke, McGraw-Hill, 2002.
Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom: Database
Systems -- The Complete Book. Prentice Hall, 2001.
Sitansu S.Mittra, Database Performance Tuning and Optimization,
Springer,2003
G. J. Vaidyanatha, K. Deshpande and J. Kostelac: Oracle Performance Tuning
101. Osborne/Mc-Graw-Hill. 2001. REFERENCE.
Jim Gray (ed): The Benchmark handbook : for database and transaction
processing systems. M. Kaufmann Publishers, 1991. REFERENCE.
Richard J.Niemiec, Oracle Database 10g Performance Tuning tips and
techniques, Mc Graw Hill Education,2009
牛新庄, DB2 数据库性能调整与优化, 清华大学出版社, 2009
胡百敬,等, SQL Server 2005 Performance tuning, 电子工业出版社,2008
4
Copyright:
Many slides belong to the tutorial:
Database Tuning
Principles, Experiments and Troubleshooting Techniques
Dennis Shasha (shasha@cs.nyu.edu)
Philippe Bonnet (bonnet@diku.dk)
And lecture notes provided by
Database Management Systems, 3rd edition.
Raghu Ramakrishnan & Johannes Gehrke
McGraw-Hill, 2002.
and some from the web …
6
What is Database Tuning
• Database Tuning is the activity of making a
database application run more quickly.
• “More quickly”
– usually means higher throughput,
– though it may mean shorter response time for
time-critical applications
• A 5% improvement is significant.
7
Why Database Tuning?
• Troubleshooting:
– Make managers and users happy given an
application and a DBMS
• Capacity Sizing:
– Buy the right DBMS given application
requirements
• Application Programming:
– Coding your application for performance
Viewpoint about DB tuning
• Easy
– Need not to struggle with complicated formulas and
theorems
• Difficult
– Need broad and deep understanding about
•
•
•
•
DBMS
Application
OS
hardware
9
Why is Database Tuning hard?
sql
commands
PARSER
OPTIMIZER
EXECUTION
SUBSYSTEM
DISK
SYBSYSTEM
CACHE
MANAGER
LOCKING
SUBSYSTEM
The following query
runs too slowly
select *
from R
where R.a > 5;
LOGGING
SUBSYSTEM
What do you do?
MEMORY
CPU
DISK/
CONTROLLER
NETWORK
Where to tune?-physical
11
Where to tune? -logical
12
Optimization at each level
• Conceptual level
– E.g. normalization vs denormailization
• Internal level
– E.g. tablespace management, index strategy
• External level
– E.g. Query optimization, optimal access plan
13
How to tune?
process
• Process for DB tuning
– Localize the problem by starting at the location
where the problem surfaces for the first time
and trace it to the root
– Fix the root cause and test to ensure that the
problem does not reappear
– Look for any adverse side effects caused by the
fix
14
How to tune?
Troubleshooting Methodology
Troubleshooting Methodology:
– Troubleshooting (what is happening?)
– Hypothesis formulation
•
•
What is the cause of the problem?
Apply tuning principles to propose a fix
– Hypothesis verification (experiments)
15
Tuning Principles
• Think globally, fix locally
• Partitioning breaks bottlenecks (temporal
and spatial)
• Start-up costs are high; running costs are
low (disk transfer, cursors)
• Render unto server what is due unto server
• Be prepared for trade-offs (indexes and
inserts)
16
Think globally, fix locally
• Think globally to find the root case or best
solution for bottlenecks
– For example : High disk I/O may be caused by:
•
•
•
•
No index resulting into table scan
Log and data file reside in the same disk
Fail to increase the db buffer
…..
• Fix locally to minimize the adverse side-effect
– E.g. Optimize the critical query
17
Partitioning breaks bottlenecks
• Bottleneck: the ONE part of the system limits the overall
performance
• Partitioning
• Reducing the load on bottlenecks either by dividing the load over
more resources or by spreading the load over time
• Partitioning in space (physical resource)
– E.g. distribute account data to each branch
• Partitioning in logical space
– E.g. lock contention on free list will cause the free list to be a bottleneck
– Divide the free list into several pieces, each thread only lock one free list
• Partitioning in time
– Long transactions may lock resource for a long time, use large portion of
buffers, slowing down short transactions
– Serialize long transactions when there are little short transactions
18
Side-effect of partitioning
• Suppose we need to query data across branch of a
bank
• Merging data causes extra communication cost
• Lesson
– When you find a bottleneck, first try to speed up that
component; if that doesn’t work, then partition
Tuning Principles
• Start-up costs are high; running costs are low
– Start-up costs include
• Disk access
– Reading 64k segment from disk is less than twice as expensive as reading 0.5k
– Frequently scanned tables should be consecutively laid out on disk
– Vertical partitioning tables with hundreds of columns
• Data transfer
– Latency of sending message dominate the whole costs
• Packing data and send large chunk of data rather than small ones
• Query processing
– Compile often executed queries
• System calls
– Opening a call is expensive
– Cache connections
– Reduce the number of start-ups
20
An example:
Time =
Rule of
Thumb
Seek Time +
Rotational Delay +
Transfer Time +
Other
Random I/O: Expensive
Sequential I/O: Much less
• Ex:1 KB Block
» Random I/O:  20 ms.
» Sequential I/O:  1 ms.
21
Render onto server what is due
onto Server
• Task allocation between the server and the application
programs
– Factors:
• Relative computing resources and load of client,
application servers and data server
– Should checking be done in the middle tier?
• Where information is located?
– Trigger costs less cost than Polling
• Whether the database task involves the user interaction?
– Interaction with screen or user takes long time
– Separate the user interaction from a long transaction
22
Be prepared for trade-offs
• Performance vs cost/resource
– Adding Buffer size need more RAM
•
•
•
•
Query performance vs storage cost for index
Query performance vs Update performance
……
Keep in mind
– You want speed, how much are you willing to pay?
23
Tuning Mindset
1.
2.
3.
4.
5.
Set reasonable performance tuning goals
Measure and document current performance
Identify current system performance bottleneck
Identify current OS bottleneck
Tune the required components eg: application,
DB, I/O, contention, OS etc
6. Track and exercise change-control procedures
7. Measure and document current performance
8. Repeat step 3 through 7 until the goal is met
24
Date
Subject
Literature
1
Sep 14
Introduction (slides
2
Sep. 21
Schema Refinement(slides)
RG19-20,SP4.2
3
Sep. 28
Data Storage(slides)
HG 11.1-11.5
4
Sep.30
Storage Refinement(slides)
SP 2.5, HG 11.611.7
5
Oct. 7
Disk Organization(slides)
HG 12
6
Oct.14
Index Tuning-Convential Index(slides)
HG 13.1-13.2
7
Oct.21
Index Tuning-B+tree(slides)
RG 10, HG 13.3
8
Oct.28
External Sorting(slides),Index Tuning-Hash
Index(slides), Performance Tuning(slides)
HG13.4,RG 11, SP
3
9
Nov. 4
Operator Evaluation(slides)
RG14
10
Nov. 11
Query Optimization(slides)
RG15
11
Nov. 18
Query Tuning(slides)
SP 4.6-4.7
12
Nov. 25
Overview of Transaction Management(slides), Lock
Tuning(slides)
HG 16-17, SP 2.2
13
Dec. 2
Log Tuning(slides)
HG 18, SP 2.3
14
Dec.9
Troubleshooting(slides)
SB 7
)
Materia
(RG 1.5-1.8, RG
4.2); SP 1
database des
Reading and
Programming
DB Tuning Pr
2, Example 3
Download