1 physical data organization and indexing lecture 14

31
1 Physical Data Organization and Indexing Lecture 14

Upload: hannah-french

Post on 11-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Physical Data Organization and Indexing Lecture 14

1

Physical Data Organization and Indexing

Lecture 14

Page 2: 1 Physical Data Organization and Indexing Lecture 14

2

HW#3 & Project

• Can use unix machines (Makefile provided)• Some filenames/locations have changed• Look at course web page for more info• I also have CD of oracle client• PROJECT: please form teams of 4 students

max. You may choose your partners, else random teams will be formed.– Email TA your group members

Page 3: 1 Physical Data Organization and Indexing Lecture 14

3

Access Path

• Refers to the algorithm and data structure (e.g., an index) used for retrieving and storing data in a table

• The choice of an access path to use in the execution of an SQL statement has no effect on the semantics of the statement

• The choice can have a major effect on the performance of the statement

Page 4: 1 Physical Data Organization and Indexing Lecture 14

4

Disks

• Capable of storing large quantities of data cheaply

• Non-volatile

• Extremely slow compared with cpu speeds

• Performance of DBMS largely a function of the number of disk I/O operations that must be performed

Page 5: 1 Physical Data Organization and Indexing Lecture 14

5

Pages and Blocks• Data files decomposed into pages

– Fixed size piece of contiguous information in the file– Unit of exchange between disk and main memory

• Disk divided into page size blocks of storage– Page can be stored in any block

• Application’s request for data satisfied by– Read data page to DBMS buffer in main memory– Transfer requested data from buffer to application

• Application’s request to change data satisfied by– Update DBMS buffer – (Eventually) copy buffer page to page on disk

Page 6: 1 Physical Data Organization and Indexing Lecture 14

6

I/O Time to Access a Page• Seek latency- time to position heads over cylinder

containing page (~ 10 - 20 ms)

• Rotational latency - additional time for platters to rotate so that start of page is under head (~ 5 - 10 ms)

• Transfer time - time for platter to rotate over page (depends on size of page)

• Latency = seek latency + rotational latency

• Goal - minimize average latency, reduce number of page transfers

Page 7: 1 Physical Data Organization and Indexing Lecture 14

7

Reducing Latency

• Store pages containing related information close together on disk– Justification: If application accesses x, it will next access data related

to x with high probability

• Page size tradeoff: – Large page size - data related to x stored in same page; hence

additional page transfer can be avoided– Small page size - reduce transfer time, reduce buffer size in main

memory– Typical page size - 4096 bytes

Page 8: 1 Physical Data Organization and Indexing Lecture 14

8

Reducing Number of Page Transfers

• Keep cache of recently accessed pages in main memory– Goal: request for page can be satisfied from

cache instead of disk– Purge pages when cache is full

• Use LRU algorithm

• Record clean/dirty state of page

Page 9: 1 Physical Data Organization and Indexing Lecture 14

9

Accessing Data Through Cache

cache

DBMS

Application

pageframe

Page 10: 1 Physical Data Organization and Indexing Lecture 14

10

Heap Files

• Rows appended to end of file as they are inserted – Hence the file is unordered

• Deleted rows create gaps in file– File must be periodically compacted to recover

space

Page 11: 1 Physical Data Organization and Indexing Lecture 14

11

Transcript Stored as a Heap File666666 MGT123 F1994 4.0123456 CS305 S1996 4.0 page 0987654 CS305 F1995 2.0

717171 CS315 S1997 4.0666666 EE101 S1998 3.0 page 1765432 MAT123 S1996 2.0515151 EE101 F1995 3.0

234567 CS305 S1999 4.0 page 2

878787 MGT123 S1996 3.0

Page 12: 1 Physical Data Organization and Indexing Lecture 14

12

Heap File - Performance

• Assume file contains F pages

• Insertion:– Avg. F/2 page transfers if duplicate row exists– F+1 page transfers if no duplicate row

• Deletion– Avg. F/2+1 page transfers if row exists– F page transfers if row does not exist

Page 13: 1 Physical Data Organization and Indexing Lecture 14

13

Heap File - Performance• Query

– Organization efficient if query involves all rows and order of access is not important• SELECT * FROM Transcript

– Organization inefficient if a unique row is requested• Avg. F/2 pages read to get information from a single page

SELECT T.GradeFROM Transcript TWHERE T.StudId=12345 AND T.CrsCode =‘CS305’ AND T.Semester = ‘S2000’

Page 14: 1 Physical Data Organization and Indexing Lecture 14

14

Heap File - Performance

– Organization inefficient when a subset of rows is requested: F pages must be read

SELECT T.Course, T.GradeFROM Transcript T -- equality searchWHERE T.StudId = 123456

SELECT T.StudId, T.CrsCodeFROM Transcript T --range search WHERE T.Grade BETWEEN 2.0 AND 4.0

Page 15: 1 Physical Data Organization and Indexing Lecture 14

15

Sorted File• Rows are sorted based on some attribute(s)

– Access path is binary search

– Equality or range query based on that attribute has cost log2F to retrieve page containing first row

– Successive rows are in same (or successive) page(s) and cache hits are likely

– By storing pages in sequence in physically contiguous blocks, seek time can be minimized

• Example - Transcript sorted on StudId :

SELECT T.Course, T.GradeFROM Transcript T WHERE T.StudId = 123456

SELECT T.Course, T.GradeFROM Transcript TWHERE T.StudId BETWEEN 111111 AND 199999

Page 16: 1 Physical Data Organization and Indexing Lecture 14

16

Transcript Stored as a Sorted File111111 MGT123 F1994 4.0111111 CS305 S1996 4.0 page 0123456 CS305 F1995 2.0

123456 CS315 S1997 4.0123456 EE101 S1998 3.0 page 1232323 MAT123 S1996 2.0234567 EE101 F1995 3.0

234567 CS305 S1999 4.0 page 2

313131 MGT123 S1996 3.0

Page 17: 1 Physical Data Organization and Indexing Lecture 14

17

Maintaining Sorted Order

• Problem: Inserting a row requires (on average) F/2 reads and F/2 writes

• (Partial) Solution: Leave empty space in each page: fillfactor

• (Partial) Solution: Use overflow pages (chains).– Disadvantages:

• Successive pages no longer stored contiguously

• Overflow chain not sorted, hence cost no longer log2 F

Page 18: 1 Physical Data Organization and Indexing Lecture 14

18

Overflow 3111111 MGT123 F1994 4.0111111 CS305 S1996 4.0 page 0111111 ECO101 F2000 3.0122222 REL211 F2000 2.0

-123456 CS315 S1997 4.0123456 EE101 S1998 3.0 page 1232323 MAT123 S1996 2.0234567 EE101 F1995 3.0

-234567 CS305 S1999 4.0 page 2

313131 MGT123 S1996 3.0

-111654 CS305 F1995 2.0 page 3

Pointer tooverflow chain

Page 19: 1 Physical Data Organization and Indexing Lecture 14

19

Index

• Mechanism for efficiently locating row(s) without having to scan entire table

• Based on a search key: a sequence of attributes. Row having particular values for search key attributes can be quickly located

• In contrast to a candidate key, more than one row can have same values for search key attributes

Page 20: 1 Physical Data Organization and Indexing Lecture 14

20

Index Structure

• Contains:– Index entries

– Location mechanism - algorithm + data structure for locating an entry with a given search key value

• An index entry is either:– The row itself

– Search key value and a pointer to a row having that value

Page 21: 1 Physical Data Organization and Indexing Lecture 14

21

Storage Structure

• Structure of file containing a table– Heap file (no index)– Sorted file (no index)– Integrated file containing index and rows

(index entry contains row in this case)• ISAM

• B+ tree

• Hash

Page 22: 1 Physical Data Organization and Indexing Lecture 14

22

Integrated Storage StructureContains tableand index

Page 23: 1 Physical Data Organization and Indexing Lecture 14

23

Index File With Separate Storage Structure (clustered)

Page 24: 1 Physical Data Organization and Indexing Lecture 14

24

Indices: The Down Side• Additional I/O to access index pages (except if index

is small enough to fit in main memory)

• Index must be updated when table is modified.

• SQL-92 does not provide for creation or deletion of indices– Index on primary key generally created automatically– Vendor specific statements:

• CREATE INDEX ind ON Transcript (CrsCode)

• DROP INDEX ind

Page 25: 1 Physical Data Organization and Indexing Lecture 14

25

Clustered vs. Unclustered Index

• Clustered (main) index: index entries and rows are ordered in the same way– An integrated storage structure is always clustered– There can be at most one clustered index on a table

• Unclustered (secondary) index: index entries and rows are not sorted on the same search key– An index file might be clustered or unclustered with

respect to the storage structure it references– There can be many secondary indices on a table

Page 26: 1 Physical Data Organization and Indexing Lecture 14

26

Unclustered Index

Page 27: 1 Physical Data Organization and Indexing Lecture 14

27

Clustered Index

• Good for range searches– Use location mechanism to locate index entry at

start of range• This locates first data record.

– Subsequent data records are contiguous if index is clustered (not so if unclustered)

– Minimizes page transfers and maximizes likelihood of cache hits

Page 28: 1 Physical Data Organization and Indexing Lecture 14

28

Example - Cost of Range Search• Data file has 10,000 pages, 100 rows in range

• Page transfers for rows (assuming 20 rows/page):– Heap: 10,000 (entire file must be scanned)– File sorted on search key:

• log2 10000 (search for start) + 5 (data pages) 19

– Unclustered index: 100 (depends on page order)– Clustered index: 5

Page 29: 1 Physical Data Organization and Indexing Lecture 14

29

Sparse Vs Dense Index

• Dense index: index entry for each data record – Unclustered index must be dense– Clustered index need not be dense (why?)

• Sparse index: index entry for each page of data file

Page 30: 1 Physical Data Organization and Indexing Lecture 14

30

Sparse Vs. Dense Index

Sparse, clusteredindex sortedon Id

Dense, unclusteredindex sortedon Name

data file sortedon Id

Id Name Dept

Page 31: 1 Physical Data Organization and Indexing Lecture 14

31

Sparse Index

•OK if search key is acandidate key ofdata file•Else additionalmeasures required:Start search at prior page