17
Database Tuning in - Philip K. Kuruvilla

Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Embed Size (px)

Citation preview

Page 1: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

- Philip K. Kuruvilla

Page 2: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

2

Login

Page 3: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

3

The World Wide Wait

Page 4: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

4

Looks Familiar ?

Page 5: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

5

Agenda

• Why tune databases• Scope for tuning• Parameters• Design• Monitor and Analyze• Trivia

Page 6: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

6

Why is it so critical?

Web Server

Database

The Database lies at the root of an e-commerce application !

Page 7: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

7

Scope for Tuning

• System level• Operating System, Hardware

• Database level• Temporary space, Rollback segments

• Application level• Query Tuning, Design

Page 8: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

8

Tuning Parameters

• Throughput and Response Time• Throughput: Ratio of total data read to

total time spent in servicing the request• Response Time: Difference between

time at which a request is completed and response is received

• Type of Application• OLTP (requires better throughput)• Batch processing (requires shorter

response time)

Page 9: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

9

Design

• Normalization• Not always a good idea to Normalize

• Better to have a single table here

Banner ID Professor

B0000001 G. Sullivan

B0000002 T. Trappenberg

B0000003 S. Marche

B0000004 A. Uteck

Banner ID Course

B0000001 ECMM6000

B0000002 ECMM6010

B0000003 ECMM6020

B0000004 ECMM6030

Page 10: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

10

Application Design

• Simple and efficient queries• Minimise the number of query blocks

SELECT * FROM ALL_STUDENTS A WHERE A.NAME IN

(SELECT GS.NAME FROM GRAD_STUDENTS GS)

SELECT * FROM ALL_STUDENTS A, GRAD_STUDENTS GS WHERE A.NAME = GS.NAME=

• Return efficient batch sizes• Use Stored Procedures/ Functions/ Triggers•Startup costs are high. Running costs are low

Page 11: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

11

Indexes• What are they?

• Defined on a column• Avoid full table scans

• How do they work• When do they NOT work !• Trade off between insert/update

and select• Primary keys are automatically

indexed

rowID (hidden )

Banner ID

Name Age Tel

1 B001 Chris 20 23232

2 B005 Bates 21 23232

3 B003 Hugh 29 23902

4 B010 Mark 28 23902

5 B008 Martin 33 23920

6 B002 Jones 22 32902

Banner ID Row ID

B001 1

B002 6

B003 3

B005 2

B008 5

B010 4

Page 12: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

12

Monitoring

• Plan table• Shows how an SQL query is executed• Shows use of indexes, effect of

Optimizers• Gives a “cost factor” for a query

Page 13: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

13

Explain Plan table

LNAME

FNAME

CUST_ID

CUSTOMER

TOTAL

CUST_ID

ORDER_ID

PRODUCT_ORDER

QTY

PRODUCT ID

ORDER_ID

ORDER_DETAIL

Indexed ColumnNon Indexed Column

SELECT POD.PROD_ID, POD.QTY FROM CUSTOMER C, PRODUCT_ORDER PO, PRODUCT_ORDER_DETAIL PODWHERE C.CUST_ID = 2 AND PO.CUST_ID = C.CUST_ID AND PO.ORDER_ID = POD.ORDER_ID

SELECT POD.PROD_ID,

POD.QTY

FROM CUSTOMER C,

PRODUCT_ORDER PO,

PRODUCT_ORDER_DETAIL POD

WHERE PO.CUST_ID = 2

AND PO.CUST_ID = C.CUST_ID

AND PO.ORDER_ID = POD.ORDER_ID

SELECT POD.PROD_ID,

POD.QTY

FROM PRODUCT_ORDER PO,

ORDER_DETAIL POD

WHERE PO.CUST_ID = 2

AND PO.ORDER_ID = POD.ORDER_ID

SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=51)

NESTED LOOPS (Cost=3 Card=1 Bytes=51)

NESTED LOOPS (Cost=2 Card=1 Bytes=39)

INDEX (UNIQUE SCAN) OF SYS_C003983 (UNIQUE)

TABLE ACCESS (FULL) OF PRODUCT_ORDER (Cost=1 Card=1 Bytes=13)

TABLE ACCESS (FULL) OF PRODUCT_ORDER_DETAIL (Cost=1 Card=7 Bytes=84)

SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=38)

NESTED LOOPS (Cost=3 Card=1 Bytes=38)

NESTED LOOPS (Cost=2 Card=1 Bytes=26)

INDEX (UNIQUE SCAN) OF SYS_C003983 (UNIQUE)

TABLE ACCESS (FULL) OF PRODUCT_ORDER (Cost=1 Card=1 Bytes=13)

TABLE ACCESS (FULL) OF PRODUCT_ORDER_DETAIL (Cost=1 Card=7 Bytes=84)

SELECT STATEMENT Optimizer=CHOOSE (Cost=2

Card=1 Bytes=25)

NESTED LOOPS (Cost=2 Card=1 Bytes=25)

TABLE ACCESS (FULL) OF PRODUCT_ORDER (

Cost=1 Card=1 Bytes=13)

TABLE ACCESS (FULL) OF PRODUCT_ORDER_DETAIL (Cost=1 Card=7 Bytes=84)

Page 14: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

14

Advanced• Trace functionality

• Real time data• Can identify deadlocks, excessive waits

• Optimizers within Oracle • Rule Based Optimizer (RBO)

• Uses Pre–determined rules• Independent of data

• Cost Based Optimizer (CBO)• Optimizes based on table/ index information gathered• Requires that database is analyzed frequently• Default in Oracle

Page 15: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

15

Summary

• Tuning is a series of trade offs• Always better to tune during the

design phase than after implementation

• Sometimes it’s plain common sense !

Page 16: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

16

Trivia• Oracle has been the leading database

manufacturer for the last 5 years. (source: IDC, 2003)• Oracle: 39.4%, DB2: 33.6%, SQL Server: 11.1%

• Broad coverage of OS (Windows, Unix & Linux)• “Unbreakable Campaign”

• Advertising campaign in Late 2001. Declared that Oracle 9i was “unbreakable”

• Open challenge to hackers

• Windows “Long Horn”. Will feature a new File system “WinFS” which will store files using “database technologies” (source: Microsoft)

Page 17: Database Tuning in - Philip K. Kuruvilla. Database Tuning in 2 Login

Database Tuning in

17

References• Metalink – http://metalink.oracle.com• Oracle Performance Tuning - Richard J.Niemiec, - Oracle

Press • Database Design Fundamentals – Naphtali Rishe,1988 –

Prentice Hall• “Oracle Market share”

http://www.oracle.com/ip/index.html?database1.html• “Unbreakable system”

http://www.oracle.com/oramag/oracle/02-mar/index.html?o22break.html

• “Microsoft LongHorn” http://msdn.microsoft.com/Longhorn/understanding/pillars/WinFS/default.aspx