270 likes | 276 Views
Managing Schema Objects. Table Types Partition IOT Cluster DBA Tasks. Objectives. After completing this lesson, you should be able to manage schema objects and: Determine appropriate table types for your requirements: heap, partition, IOT, or cluster Perform related DBA tasks:
E N D
Table Types Partition IOT Cluster DBA Tasks Objectives • After completing this lesson, you should be able to manage schema objects and: • Determine appropriate table types for your requirements: heap, partition, IOT, or cluster • Perform related DBA tasks: • Estimating the size of new tables • Analyzing growth trends • Managing optimizer statistics • Reorganizing schema objects online
Type Description Ordinary (heap-organized) table Data is stored as an unordered collection (heap). Partitioned table Data is divided into smaller, more manageable pieces. Index-organized table (IOT) Data (including non-key values) is sorted and stored in a B-tree index structure. Clustered table Related data from more than one table are stored together. Table Types Clustered Heap Partitioned IOT
What Is a Partition and Why Use It? Table Types > Partition IOT Cluster DBA Tasks • A partition is: • A piece of a “very large” table or index • Stored in its own segment • Used for improved performance and manageability
Partitions • Characteristics of partitions are: • Same logical attributes: Same columns, constraints, and indexes • Different physical attributes: Stored in different tablespaces • Transparent to applications • Several partitioning methods
Partitioning Methods • Range partitioning: Maps rows based on logical ranges of columns values—for example, months in a year • Hash partitioning: Maps rows based on the hash value of the partitioning key • List partitioning: Maps rows based on a discrete list of values, provided by the DBA • Range-hash partitioning: Maps rows using the range method, and within each range partition, creates hash subpartitions • Range-list partitioning: Maps rows first based on a range of values, then based on discrete values
Index-Organized Tables Table Types Partition > IOT Cluster DBA Tasks Regular table access IOT access Table accessby ROWID Non-key columns Key column Row header
Index-Organized Tablesand Heap Tables • Compared to heap tables, IOTs: • Have faster key-based access to table data • Do not duplicate the storage of primary key values • Require less storage • Use secondary indexes and logical row IDs • Have higher availability because table reorganization does not invalidate secondary indexes • IOTs have the following restrictions: • Must have a primary key that is not DEFERRABLE • Cannot be clustered • Cannot use composite partitioning • Cannot contain a column of type ROWID or LONG
Creating Index-Organized Tables SQL> CREATE TABLE country 2 ( country_id CHAR(2) 3 CONSTRAINT country_id_nn NOT NULL, 4 country_name VARCHAR2(40), 5 currency_name VARCHAR2(25), 6 currency_symbol VARCHAR2(3), 7 map BLOB, 8 flag BLOB, 9 CONSTRAINT country_c_id_pk 10 PRIMARY KEY (country_id)) 11 ORGANIZATION INDEX 12 TABLESPACE indx 13 PCTTHRESHOLD 20 14 OVERFLOW TABLESPACE users;
Table Types Partition IOT > Cluster DBA Tasks Clusters Cluster Key (ORD_NO) 101 ORD_DT CUST_CD 05-JAN-97 R01 PROD QTY A4102 20 A5675 19 W0824 10 102 ORD_DT CUST_CD 07-JAN-97 N45 PROD QTY A2091 11 G7830 20 N9587 26 ORD_NO PROD QTY ... ----- ------ ------ 101 A4102 20 102 A2091 11 102 G7830 20 102 N9587 26 101 A5675 19 101 W0824 10 ORD_NO ORD_DT CUST_CD ------ ------ ------ 101 05-JAN-97 R01 102 07-JAN-97 N45 Unclustered orders and order_item tables Clustered orders and order_item tables
1 2 3 Cluster Types Hash cluster Sorted hash cluster Index cluster Hash function Hash function
Criterion Index Hash Sorted hash Uniform key distribution Evenly distributed key values Rarely updated key Often joined master-detail tables Predictable number of key values Queries using equality predicate on key Data is retrieved in the order it was inserted Situations Where Clusters Are Useful
Sorted Hash Cluster: Overview • New data structure used to store data sorted by nonprimary key columns: • Cluster key values are hashed. • Rows corresponding to a particular cluster key value are sorted according to the sort key. • Used to guarantee that row order is returned by queries without sorting data: • Rows are returned in ascending or descending order for a particular cluster key value. • ORDERBY clause is not mandatory to retrieve rows in ascending order.
Sorted Hash Cluster: Example CREATE CLUSTER calls_cluster ( origin_number NUMBER , call_timestamp NUMBER SORT , call_duration NUMBER SORT) HASHKEYS 10000 SINGLE TABLE HASH IS origin_number SIZE 50; Cluster key Sort key CREATE TABLE calls ( origin_number NUMBER , call_timestamp NUMBER , call_duration NUMBER , other_info VARCHAR2(30)) CLUSTER calls_cluster( origin_number,call_timestamp,call_duration );
Sorted Hash Cluster: Basic Architecture SIZE Cluster key 1 Cluster key 2 Block chainstarting points HASHKEYS … Cluster key n Rows sorted bysort key in eachblock chain …
Schema Management Tasks Table Types Partition IOT Cluster > DBA Tasks • DBA tasks include: • Estimating the size of new tables • Analyzing growth trends • Managing optimizer statistics • Reorganizing schema objects online
Analyzing Growth Trends • EM growth trend report: • Used by the Segment Advisor • Space usage statistics collected into AWR
Managing Optimizer Statistics 2 3 1 Not analyzed
Reorganizing Schema Objects Online • Modifying logical or physical structure of a schema object, such as a table or index • Transparent to users • Space requirements
Basic Steps for Manual Online Reorganization • Verify that the table is a candidate for online reorganization. • Create an interim table. • Start the redefinition process. • Copy dependent objects. (This automatically creates any triggers, indexes, grants, and constraints on the interim table.) • Query the DBA_REDEFINITION_ERRORS view to check for errors. • Optionally, synchronize the interim table. • Complete the redefinition. • Drop the interim table.
Summary In this lesson, you should have learned how to manage schema objects and: • Determine appropriate table types for your requirements • Perform related DBA tasks: • Estimating the size of new tables • Analyzing growth trends • Managing optimizer statistics • Reorganizing schema objects online
Practice Overview:Managing Schema Objects • This practice covers the following topics: • Monitoring table and index space usage • Managing optimizer statistics • Reorganizing table and index