Locally Managed Tablespaces

advertisement
Locally
Managed
Tablespaces
in
Oracle8i
Raghav
Vinjamuri
rvinjamuri@yahoo.com
Questions
• Extents
– Size of Individual Extent in a Segment
• Matters/Does Not Matter?
– Number of Extents
• Matters/Does Not Matter?
2
Questions ( AND Answers)
• Extents
– Size of Individual Extent in a Segment
• Matters/Does Not Matter?
– if small, can lead to numerous extents.
– Number of Extents
• Matters/does not matter?
– Due to overheads of dictionary maintenance,
May not be for full table scan performance.
3
Questions ( AND Answers)
• Extent Management
– Extents must therefore be
• Fixed Size - Appropriately Large,
• Fixed in Number
• How to implement/manage Fixed Size
Extents in an Oracle database?
4
Overview
• Extent Management
– Dictionary Managed Tablespaces - “DMT”
– Locally Managed Tablespaces - “LMT”
• Features/“Bugs”/“Usage Quirks” of LMTs in
Oracle8i Rel 8.1.6.0
• Benefits of LMTs over DMTs
• Summary & References
• Q&A
5
Extent Management
• How to implement Fixed Size Extents
in an Oracle database?
– Pre-Oracle8
– Oracle8
– Oracle8i
6
Extent Management
• Pre-Oracle8
– DEFAULT STORAGE
• INITIAL and NEXT are set equal, and
• PCTINCREASE=0
• Caveats
– Extent Sizes Rounded Up.
• Nearest Multiple of 5.
• MAYBE more (up to 4 additional blocks) if there are fewer
than 5 blocks remaining in the unallocated portion.
– Coalescing of Free Extents by SMON.
– Extent Trimming After Parallel Operations.
7
Extent Management
• Oracle8
– DEFAULT STORAGE
• INITIAL and NEXT are set equal, and
• PCTINCREASE=0
– MINIMUM EXTENT integer
• the minimum size of an extent in a tablespace.
• controls free space fragmentation in tablespaces
– ensures every used/free extent size in a tablespace is at
least as large as, and is a multiple of integer
– eliminates unwarranted extent size rounding/trimming
8
Extent Management
• Dictionary Managed Tablespaces “DMT”
– Free/Used Extent information of tablespaces
tracked via Data Dictionary Tables (FET$ and
UET$)
• differentiates from Locally Managed Tablespaces in Oracle8i
9
Locally Managed Tablespaces
• New in Oracle8i
• EXTENT MANAGEMENT LOCAL clause of
CREATE TABLESPACE statement
– EXTENT MANAGEMENT DICTIONARY
still is Default.
• Allows Fixed Extent Size(s)
– AUTOALLOCATE or “System Determined” Sizes
– UNIFORM Size
10
Locally Managed Tablespaces
• Create Tablespace TESTLMT
datafile ‘lmt01.dbf’ size 1000M reuse
EXTENT MANAGEMENT LOCAL
AUTOALLOCATE;
• Create Tablespace TESTLMT
datafile ‘lmt01.dbf’ size 1000M reuse
EXTENT MANAGEMENT LOCAL
UNIFORM Size 10M;
11
Locally Managed Tablespaces
• AUTOALLOCATE
– is default
– can specify initial extent and Oracle determines the
size of the rest, with a minimum of 64k
• UNIFORM
– default is 1MB
12
Locally Managed Tablespaces
• Summary Notes for DBA’s
1. LMTs and DMTs can co-exist in same DB.
2. EXTENT MANAGEMENT DICTIONARY is default.
3. Currently, a locally managed SYSTEM tablespace
(?? For ROLLBACK SEGMENT usage) cannot be created
(True in 8.1.7)
4. EXTENT MANAGEMENT LOCAL
• CREATE TABLESPACE statement - for permanent tablespaces
 CREATE TEMPORARY TABLESPACE statement - for
temporary tablespaces
13
Locally Managed Tablespaces
• Summary Notes for DBA’s … 2
 CREATE TEMPORARY TABLESPACE statement - for
temporary tablespaces
CREATE TEMPORARY TABLESPACE TEMP
TEMPFILE 'temp.dbf' SIZE 256M
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 256K;
5. When creating an LMT, AUTOALLOCATE is default.
6. Temporary LMT’s can only use UNIFORM SIZE, and
not AUTOALLOCATE.
14
Locally Managed Tablespaces
• Summary Notes for DBA’s … 3
7. Parameters
 TEMPORARY,
 MINIMUM EXTENT, or
 DEFAULT storage_clause,
 NEXT,
 PCTINCREASE,
 MINEXTENTS,
 MAXEXTENTS
are not valid for locally managed tablespaces.
Could get an error or be silently ignored!!
15
Locally Managed Tablespaces
• Summary Notes for DBA’s … 4
8. DBMS_SPACE_ADMIN package provides
• Defect Diagnosis and Repair Functionality for LMT
• Migration of DMT to LMT or vice-versa
9. LMTs can be altered for many of the same reasons
as a dictionary-managed tablespace. However,
• altering storage parameters is not an option and
• coalescing free extents is unnecessary
• an LMT cannot be altered to a locally managed
temporary tablespace.
16
Locally Managed Tablespaces
• Summary Notes for DBA’s … 5
10. To find out which tablespaces are LMTs
• SELECT
FROM
WHERE
tablespace_name,
extent_management
dba_tablespaces
extent_management = 'LOCAL';
17
• These slides (and, a white paper!) will be
posted on the NOCOUG web site, at
http://www.nocoug.org
18
Questions ?
19
Good Luck!
20
Download