Sie sind auf Seite 1von 34

9

Storage Structure and Relationships

Copyright © Oracle Corporation, 2002. All rights reserved.


Objectives

After completing this lesson, you should be able to do


the following:
• Describe the logical structure of the database
• List the segment types and their uses
• List the keywords that control block space usage
• Obtain storage structure information

9-2 Copyright © Oracle Corporation, 2002. All rights reserved.


Storage and Relationship Structure

Database
PROD
TABLESPACES
SYSTEM USER_DATA RBS TEMP
DATA FILES
DISK2/ DISK3/ DISK1/ DISK1/
DISK1/SYS1.dbf USER1.dbf USER2.dbf UNDO1.dbf TEMP.dbf
SEGMENTS S_DEPT S_EMP S_DEPT S_EMP RBS1 RBS2 RBS1 RBS2
Temp
(cont'd) FIRST_N (cont'd) (cont'd)
D.D. D.D. AME
Index
Table Index RB RB RB RB
RB Data Data Data Seg Seg Seg Seg Temp
Data Index Index
Seg Seg Seg Seg Seg Seg
Seg Seg
EXTENTS
1 2 1 2 1 2 1 1 2 2 1 FREE 1 1 2 2 1

Oracle DATA BLOCKS

9-3 Copyright © Oracle Corporation, 2002. All rights reserved.


Types of Segments

Table Table
partition

Cluster Index

9-4 Copyright © Oracle Corporation, 2002. All rights reserved.


9-5 Copyright © Oracle Corporation, 2002. All rights reserved.
Types of Segments

Index-organized Index
table partition

Undo Temporary
segment segment

9-6 Copyright © Oracle Corporation, 2002. All rights reserved.


Types of Segments

LOB Nested table


segment

Bootstrap
segment

9-7 Copyright © Oracle Corporation, 2002. All rights reserved.


Storage Clause Precedence

Oracle default

Tablespace

Segment

9-8 Copyright © Oracle Corporation, 2002. All rights reserved.


Extent Allocation and Deallocation

• An extent is a chunk of space used by a segment


within a tablespace.
• An extent is allocated when the segment is:
– Created
– Extended
– Altered
• An extent is deallocated when the segment is:
– Dropped
– Altered
– Truncated

9-9 Copyright © Oracle Corporation, 2002. All rights reserved.


Used and Free Extents

Data file

File header Used extent Free extent

9-10 Copyright © Oracle Corporation, 2002. All rights reserved.


Database Block

• Minimum unit of I/O


• Consists of one or more operating system blocks
• Set at tablespace creation
• DB_BLOCK_SIZE is the default block size

9-11 Copyright © Oracle Corporation, 2002. All rights reserved.


Multiple Block Size Support

• A database can be created with a standard block


size and up to four nonstandard block sizes.
• Block sizes can have any power-of-two value
between 2 KB and 32 KB.

9-12 Copyright © Oracle Corporation, 2002. All rights reserved.


Standard Block Size

• Set at database creation using the DB_BLOCK_SIZE


parameter; cannot be changed without re-creating
the database
• Used for SYSTEM and TEMPORARY tablespaces
• DB_CACHE_SIZE specifies the size of the DEFAULT
buffer cache for standard block size:
– Minimum size = one granule (4 MB or 16 MB)
– Default value = 48 MB

9-13 Copyright © Oracle Corporation, 2002. All rights reserved.


9-14 Copyright © Oracle Corporation, 2002. All rights reserved.
Nonstandard Block Size

• Configure additional caches with the following


dynamic parameters:
– DB_2K_CACHE_SIZE for 2 KB blocks
– DB_4K_CACHE_SIZE for 4 KB blocks
– DB_8K_CACHE_SIZE for 8 KB blocks
– DB_16K_CACHE_SIZE for 16 KB blocks
– DB_32K_CACHE_SIZE for 32 KB blocks
• DB_nK_CACHE_SIZE is not allowed
if nK is the standard block size.
• Minimum size for each cache is one granule.

9-15 Copyright © Oracle Corporation, 2002. All rights reserved.


9-16 Copyright © Oracle Corporation, 2002. All rights reserved.
Creating Nonstandard
Block Size Tablespaces

CREATE TABLESPACE tbs_1


DATAFILE 'tbs_1.dbf'
SIZE 10M BLOCKSIZE 4K;

DESCRIBE dba_tablespaces
Name Null? Type
------------------ -------- ------------
TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
...

9-17 Copyright © Oracle Corporation, 2002. All rights reserved.


9-18 Copyright © Oracle Corporation, 2002. All rights reserved.
Multiple Block Sizing Rules

• All partitions of a partitioned object must reside in


tablespaces of the same block size.
• All temporary tablespaces, including the permanent
ones that are being used as default temporary
tablespaces, must be of standard block size.
• Index-organized table overflow and out-of-line LOB
segments can be stored in a tablespace with a block
size different from the base table.

9-19 Copyright © Oracle Corporation, 2002. All rights reserved.


Database Block Contents

Header

Free space

Data

9-20 Copyright © Oracle Corporation, 2002. All rights reserved.


Block Space
Utilization Parameters

INITRANS

MAXTRANS

PCTFREE

PCTUSED

9-21 Copyright © Oracle Corporation, 2002. All rights reserved.


9-22 Copyright © Oracle Corporation, 2002. All rights reserved.
Data Block Management

Two methods are available for managing data blocks:


• Automatic segment-space management
• Manual management

9-23 Copyright © Oracle Corporation, 2002. All rights reserved.


Automatic Segment-Space Management

• It is a method of managing free space inside


database segments.
• Tracking in-segment free and used space is done
using bitmaps as opposed to using free lists.
• This method provides:
– Ease of management
– Better space utilization
– Better performance for concurrent INSERT operations

9-24 Copyright © Oracle Corporation, 2002. All rights reserved.


Automatic Segment-Space Management

• Bitmap segments contain a bitmap that describes


the status of each block in the segment with respect
to its available space.
• The map is contained in a separate set of blocks
referred to as bitmapped blocks (BMBs).
• When inserting a new row, the server searches the
map for a block with sufficient space.
• As the amount of space available in a block
changes, its new state is reflected in the bitmap.

9-25 Copyright © Oracle Corporation, 2002. All rights reserved.


Configuring Automatic
Segment-Space Management

• Automatic segment-space management can be


enabled at the tablespace level only, for locally
managed tablespaces.
CREATE TABLESPACE data02
DATAFILE ‘/u01/oradata/data02.dbf’ SIZE 5M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K
SEGMENT SPACE MANAGEMENT AUTO;

• After a tablespace is created, the specifications


apply to all segments created in the tablespace.

9-26 Copyright © Oracle Corporation, 2002. All rights reserved.


Manual Data Block Management

• Allows you to configure data blocks manually using


parameters such as:
– PCTFREE
– PCTUSED
– FREELIST
• The only method available in previous Oracle
versions

9-27 Copyright © Oracle Corporation, 2002. All rights reserved.


Block Space Usage
PCTFREE=20 PCTUSED=40

80% Inserts
Inserts
(off freelist)

1 2

80%
Inserts Insert
40% (on freelist)

3 4

9-28 Copyright © Oracle Corporation, 2002. All rights reserved.


Obtaining Storage Information

Information about storage can be obtained by querying


the following views:
• DBA_EXTENTS
• DBA_SEGMENTS
• DBA_TABLESPACES
• DBA_DATA_FILES
• DBA_FREE_SPACE

9-29 Copyright © Oracle Corporation, 2002. All rights reserved.


9-30 Copyright © Oracle Corporation, 2002. All rights reserved.
9-31 Copyright © Oracle Corporation, 2002. All rights reserved.
Summary

In this lesson, you should have learned how to:


• Use tablespaces to:
– Separate segments to ease administration
– Control the user’s space allocation
• Categorize segments by the type of information
stored in the segment
• Determine extent sizes using the storage clause
• Control block space utilization
• Obtain storage structure information

9-32 Copyright © Oracle Corporation, 2002. All rights reserved.


Practice 9 Overview

This practice covers identifying and obtaining


information on the various types of storage structures
in the database.

9-33 Copyright © Oracle Corporation, 2002. All rights reserved.


9-34 Copyright © Oracle Corporation, 2002. All rights reserved.