[bbk3154] 第63集 Chapter 15Application Tuning(03)

Query dba_tables for IOT

DBA_TABLES->IOT
SQL> SELECT table_name,iot_name,iot_type FROM dba_tables WHERE table_name LIKE '%IOT%';

TABLE_NAME                     IOT_NAME                       IOT_TYPE
------------------------------ ------------------------------ ------------
SYS_IOT_OVER_12334             AQ$_ALERT_QT_G                 IOT_OVERFLOW
SYS_IOT_OVER_12537             AQ$_AQ$_MEM_MC_G               IOT_OVERFLOW
SYS_IOT_OVER_12573             AQ$_AQ_PROP_TABLE_G            IOT_OVERFLOW
SYS_IOT_OVER_12752             AQ$_KUPC$DATAPUMP_QUETAB_G     IOT_OVERFLOW
SYS_IOT_OVER_5146              RULE_SET_IOT$                  IOT_OVERFLOW
SYS_IOT_OVER_5140              RULE_SET_PR$                   IOT_OVERFLOW
SYS_IOT_OVER_5150              RULE_SET_ROP$                  IOT_OVERFLOW
SYS_IOT_OVER_5387              CHNF$_CLAUSES                  IOT_OVERFLOW
SYS_IOT_OVER_5422              CHNF$_GROUP_FILTER_IOT         IOT_OVERFLOW
SYS_IOT_OVER_5690              RECENT_RESOURCE_INCARNATIONS$  IOT_OVERFLOW
RULE_SET_IOT$                                                 IOT

TABLE_NAME                     IOT_NAME                       IOT_TYPE
------------------------------ ------------------------------ ------------
CHNF$_GROUP_FILTER_IOT                                        IOT
SYS_IOT_OVER_12214             AQ$_SCHEDULER$_EVENT_QTAB_G    IOT_OVERFLOW
SYS_IOT_OVER_12248             AQ$_SCHEDULER$_REMDB_JOBQTAB_G IOT_OVERFLOW
SYS_IOT_OVER_12278             AQ$_SCHEDULER_FILEWATCHER_QT_G IOT_OVERFLOW
SYS_IOT_OVER_12875             AQ$_SYS$SERVICE_METRICS_TAB_G  IOT_OVERFLOW
SYS_IOT_OVER_13393             AQ$_WM$EVENT_QUEUE_TABLE_G     IOT_OVERFLOW
SYS_IOT_OVER_55269             EXF$ATTRLIST                   IOT_OVERFLOW
SYS_IOT_OVER_55279             EXF$IDXSECOBJ                  IOT_OVERFLOW
SYS_IOT_OVER_57275             RLM$COLLGRPBYSPEC              IOT_OVERFLOW
SYS_IOT_OVER_57272             RLM$EQUALSPEC                  IOT_OVERFLOW
SYS_IOT_OVER_57254             RLM$ERRCODE                    IOT_OVERFLOW

TABLE_NAME                     IOT_NAME                       IOT_TYPE
------------------------------ ------------------------------ ------------
SYS_IOT_OVER_57295             RLM$JOBQUEUE                   IOT_OVERFLOW
SYS_IOT_OVER_57269             RLM$PRIMEVTTYPEMAP             IOT_OVERFLOW
SYS_IOT_OVER_57262             RLM$RULESET                    IOT_OVERFLOW
SYS_IOT_OVER_55480             DR$PARALLEL                    IOT_OVERFLOW
SYS_IOT_OVER_55433             DR$SQE                         IOT_OVERFLOW
SYS_IOT_OVER_57304             RLM4J$ATTRALIASES              IOT_OVERFLOW
SYS_IOT_OVER_57298             RLM4J$EVTSTRUCTS               IOT_OVERFLOW
SYS_IOT_OVER_57301             RLM4J$RULESET                  IOT_OVERFLOW
SYS_IOT_OVER_70061             AQ$_MGMT_LOADER_QTABLE_G       IOT_OVERFLOW
SYS_IOT_OVER_66894             AQ$_MGMT_NOTIFY_QTABLE_G       IOT_OVERFLOW
SYS_IOT_OVER_67131             MGMT_METRICS_RAW               IOT_OVERFLOW

TABLE_NAME                     IOT_NAME                       IOT_TYPE
------------------------------ ------------------------------ ------------
SYS_IOT_OVER_67302             MGMT_TARGET_CREDENTIALS        IOT_OVERFLOW
SYS_IOT_OVER_67248             MGMT_TASK_WORKER_COUNTS        IOT_OVERFLOW
SYS_IOT_OVER_67755             MGMT_POLICY_ASSOC              IOT_OVERFLOW
SYS_IOT_OVER_67759             MGMT_POLICY_ASSOC_CFG_PARAMS   IOT_OVERFLOW
SYS_IOT_OVER_67749             MGMT_POLICY_BIND_VARS          IOT_OVERFLOW
SYS_IOT_OVER_67313             MGMT_JOB_CREDENTIALS           IOT_OVERFLOW
SYS_IOT_OVER_67308             MGMT_ENTERPRISE_CREDENTIALS    IOT_OVERFLOW
SYS_IOT_OVER_67877             MGMT_LICENSE_CONFIRMATION      IOT_OVERFLOW
SYS_IOT_OVER_67134             MGMT_CURRENT_METRICS           IOT_OVERFLOW
SYS_IOT_OVER_69647             MGMT_DB_INIT_PARAMS_ECM        IOT_OVERFLOW
SYS_IOT_OVER_67764             MGMT_SNAPSHOT_METRIC_MAP       IOT_OVERFLOW

TABLE_NAME                     IOT_NAME                       IOT_TYPE
------------------------------ ------------------------------ ------------
SYS_IOT_OVER_67305             MGMT_HOST_CREDENTIALS          IOT_OVERFLOW
SYS_IOT_OVER_67245             MGMT_COLLECTION_TASK_CONTEXT   IOT_OVERFLOW
SYS_IOT_OVER_67232             MGMT_COLL_ITEM_PROPERTIES      IOT_OVERFLOW
SYS_IOT_OVER_70800             WWV_FLOW_JOB_BIND_VALUES       IOT_OVERFLOW
SYS_IOT_OVER_74062             AQ$_ORDERS_QUEUETABLE_G        IOT_OVERFLOW
SYS_IOT_OVER_74080             AQ$_STREAMS_QUEUE_TABLE_G      IOT_OVERFLOW
SYS_IOT_OVER_76689             IOT1                           IOT_OVERFLOW
SYS_IOT_OVER_76692             IOT2                           IOT_OVERFLOW
IOT1                                                          IOT
IOT2                                                          IOT
TRANSIENT_IOT$

55 rows selected.
DBA_INDEXES->IOT
SQL> SELECT index_name,index_type,tablespace_name,table_name FROM dba_indexes WHERE index_name LIKE '%IOT%';

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
IOT_PK2                        IOT - TOP                   TAB_LAB                        IOT2
IOT_PK1                        IOT - TOP                   TAB_LAB                        IOT1
SYS_IOT_TOP_74380              IOT - TOP                   EXAMPLE                        DR$SUP_TEXT_IDX$N
SYS_IOT_TOP_74375              IOT - TOP                   EXAMPLE                        DR$SUP_TEXT_IDX$K
SYS_IOT_TOP_74075              IOT - TOP                   EXAMPLE                        AQ$_STREAMS_QUEUE_TABLE_T
SYS_IOT_TOP_74083              IOT - TOP                   EXAMPLE                        AQ$_STREAMS_QUEUE_TABLE_I
SYS_IOT_TOP_74077              IOT - TOP                   EXAMPLE                        AQ$_STREAMS_QUEUE_TABLE_H
SYS_IOT_TOP_74080              IOT - TOP                   EXAMPLE                        AQ$_STREAMS_QUEUE_TABLE_G
SYS_IOT_TOP_74085              IOT - TOP                   EXAMPLE                        AQ$_STREAMS_QUEUE_TABLE_C
SYS_IOT_TOP_74057              IOT - TOP                   EXAMPLE                        AQ$_ORDERS_QUEUETABLE_T
SYS_IOT_TOP_74065              IOT - TOP                   EXAMPLE                        AQ$_ORDERS_QUEUETABLE_I

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_74059              IOT - TOP                   EXAMPLE                        AQ$_ORDERS_QUEUETABLE_H
SYS_IOT_TOP_74062              IOT - TOP                   EXAMPLE                        AQ$_ORDERS_QUEUETABLE_G
SYS_IOT_TOP_70800              IOT - TOP                   SYSAUX                         WWV_FLOW_JOB_BIND_VALUES
SYS_IOT_TOP_66889              IOT - TOP                   SYSAUX                         AQ$_MGMT_NOTIFY_QTABLE_T
SYS_IOT_TOP_66897              IOT - TOP                   SYSAUX                         AQ$_MGMT_NOTIFY_QTABLE_I
SYS_IOT_TOP_66891              IOT - TOP                   SYSAUX                         AQ$_MGMT_NOTIFY_QTABLE_H
SYS_IOT_TOP_66894              IOT - TOP                   SYSAUX                         AQ$_MGMT_NOTIFY_QTABLE_G
SYS_IOT_TOP_70056              IOT - TOP                   SYSAUX                         AQ$_MGMT_LOADER_QTABLE_T
SYS_IOT_TOP_70064              IOT - TOP                   SYSAUX                         AQ$_MGMT_LOADER_QTABLE_I
SYS_IOT_TOP_70058              IOT - TOP                   SYSAUX                         AQ$_MGMT_LOADER_QTABLE_H
SYS_IOT_TOP_70061              IOT - TOP                   SYSAUX                         AQ$_MGMT_LOADER_QTABLE_G

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_55445              IOT - TOP                   SYSAUX                         DR$THS_FPHRASE
SYS_IOT_TOP_55460              IOT - TOP                   SYSAUX                         DR$STOPWORD
SYS_IOT_TOP_55433              IOT - TOP                   SYSAUX                         DR$SQE
SYS_IOT_TOP_55470              IOT - TOP                   SYSAUX                         DR$PENDING
SYS_IOT_TOP_55405              IOT - TOP                   SYSAUX                         DR$PARAMETER
SYS_IOT_TOP_55480              IOT - TOP                   SYSAUX                         DR$PARALLEL
SYS_IOT_TOP_55473              IOT - TOP                   SYSAUX                         DR$ONLINE_PENDING
SYS_IOT_TOP_55498              IOT - TOP                   SYSAUX                         DR$INDEX_CDI_COLUMN
SYS_IOT_TOP_55486              IOT - TOP                   SYSAUX                         DR$DBO
SYS_IOT_TOP_57257              IOT - TOP                   SYSAUX                         RLM$RULESETSTCODE
SYS_IOT_TOP_57288              IOT - TOP                   SYSAUX                         RLM$INCRRRSCHACT

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_13388              IOT - TOP                   SYSAUX                         AQ$_WM$EVENT_QUEUE_TABLE_T
SYS_IOT_TOP_13396              IOT - TOP                   SYSAUX                         AQ$_WM$EVENT_QUEUE_TABLE_I
SYS_IOT_TOP_13390              IOT - TOP                   SYSAUX                         AQ$_WM$EVENT_QUEUE_TABLE_H
SYS_IOT_TOP_13393              IOT - TOP                   SYSAUX                         AQ$_WM$EVENT_QUEUE_TABLE_G
SYS_IOT_TOP_12870              IOT - TOP                   SYSAUX                         AQ$_SYS$SERVICE_METRICS_TAB_T
SYS_IOT_TOP_12878              IOT - TOP                   SYSAUX                         AQ$_SYS$SERVICE_METRICS_TAB_I
SYS_IOT_TOP_12872              IOT - TOP                   SYSAUX                         AQ$_SYS$SERVICE_METRICS_TAB_H
SYS_IOT_TOP_12875              IOT - TOP                   SYSAUX                         AQ$_SYS$SERVICE_METRICS_TAB_G
SYS_IOT_TOP_12273              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER_FILEWATCHER_QT_T
SYS_IOT_TOP_12281              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER_FILEWATCHER_QT_I
SYS_IOT_TOP_12275              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER_FILEWATCHER_QT_H

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_12278              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER_FILEWATCHER_QT_G
SYS_IOT_TOP_12243              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_REMDB_JOBQTAB_T
SYS_IOT_TOP_12251              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_REMDB_JOBQTAB_I
SYS_IOT_TOP_12245              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_REMDB_JOBQTAB_H
SYS_IOT_TOP_12248              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_REMDB_JOBQTAB_G
SYS_IOT_TOP_12209              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_EVENT_QTAB_T
SYS_IOT_TOP_12217              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_EVENT_QTAB_I
SYS_IOT_TOP_12211              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_EVENT_QTAB_H
SYS_IOT_TOP_12214              IOT - TOP                   SYSTEM                         AQ$_SCHEDULER$_EVENT_QTAB_G
SYS_IOT_TOP_5422               IOT - TOP                   SYSAUX                         CHNF$_GROUP_FILTER_IOT
SYS_IOT_TOP_5387               IOT - TOP                   SYSAUX                         CHNF$_CLAUSES

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_5150               IOT - TOP                   SYSAUX                         RULE_SET_ROP$
SYS_IOT_TOP_5140               IOT - TOP                   SYSAUX                         RULE_SET_PR$
SYS_IOT_TOP_5146               IOT - TOP                   SYSAUX                         RULE_SET_IOT$
I_RULE_SET_IOT                 NORMAL                      SYSAUX                         RULE_SET_IOT$
SYS_IOT_TOP_12747              IOT - TOP                   SYSTEM                         AQ$_KUPC$DATAPUMP_QUETAB_T
SYS_IOT_TOP_12755              IOT - TOP                   SYSTEM                         AQ$_KUPC$DATAPUMP_QUETAB_I
SYS_IOT_TOP_12749              IOT - TOP                   SYSTEM                         AQ$_KUPC$DATAPUMP_QUETAB_H
SYS_IOT_TOP_12752              IOT - TOP                   SYSTEM                         AQ$_KUPC$DATAPUMP_QUETAB_G
SYS_IOT_TOP_12568              IOT - TOP                   SYSTEM                         AQ$_AQ_PROP_TABLE_T
SYS_IOT_TOP_12576              IOT - TOP                   SYSTEM                         AQ$_AQ_PROP_TABLE_I
SYS_IOT_TOP_12570              IOT - TOP                   SYSTEM                         AQ$_AQ_PROP_TABLE_H

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_NAME
------------------------------ --------------------------- ------------------------------ ------------------------------
SYS_IOT_TOP_12573              IOT - TOP                   SYSTEM                         AQ$_AQ_PROP_TABLE_G
SYS_IOT_TOP_12532              IOT - TOP                   SYSTEM                         AQ$_AQ$_MEM_MC_T
SYS_IOT_TOP_12540              IOT - TOP                   SYSTEM                         AQ$_AQ$_MEM_MC_I
SYS_IOT_TOP_12534              IOT - TOP                   SYSTEM                         AQ$_AQ$_MEM_MC_H
SYS_IOT_TOP_12537              IOT - TOP                   SYSTEM                         AQ$_AQ$_MEM_MC_G
SYS_IOT_TOP_12329              IOT - TOP                   SYSAUX                         AQ$_ALERT_QT_T
SYS_IOT_TOP_12337              IOT - TOP                   SYSAUX                         AQ$_ALERT_QT_I
SYS_IOT_TOP_12331              IOT - TOP                   SYSAUX                         AQ$_ALERT_QT_H
SYS_IOT_TOP_12334              IOT - TOP                   SYSAUX                         AQ$_ALERT_QT_G

75 rows selected.
DBA_SEGMENTS->IOT
SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name = 'TAB_LAB';

SEGMENT_NAME                   TABLESPACE_NAME                SEGMENT_TYPE
------------------------------ ------------------------------ ------------------
SYS_IOT_OVER_76692             TAB_LAB                        TABLE
SYS_IOT_OVER_76689             TAB_LAB                        TABLE
IOT_PK2                        TAB_LAB                        INDEX
BIN$28vX5Fcm2mLgQKjAyAFLIg==$0 TAB_LAB                        INDEX
IOT_PK1                        TAB_LAB                        INDEX

IOT表的诞生,本身就是基于快速查询而设计的.通常情况下,不建议在IOT表上再创建第二个索引. 而且这种查询通常情况下都是基于主键查询的,而不是基于非主键来查询的.

Using a Mapping Table

Mapping Table是一个普通的heap表,建立Mapping Table就是将此表的物理rowid与IOT表的逻辑rowid对应起来.

SQL>CREATE TABLE country
(
    country_id    CHAR(2) CONSTRAINT country_id_nn NOT NULL,
    country_name    VARCHAR2(40),
    country_name    VARCHAR2(25),
    country_symbol    VARCHAR2(3),
    CONSTRAINT    country_c_id_pk PRIMARY KEY(country_id)
)
ORGANIZATION INDEX
MAPPING TABLE TABLESPACE users;

Maintaining a Mapping Table

  • Collect statistics on a mapping table by analyzing the IOT.
  • Query the dba_indexes view to determine the percentage accuracy of the mapping table.
SQL>SELECT index_name,pct_direct_access FROM dba_indexes WHERE pct_direct_access IS NOT NULL;
  • Rebuild the mapping table if required,using the ALTER TABLE command.
  • Use the MINMIZE RECORDS_PER_BLOCK clause of ALTER TABLE for the mapping table.

The ANALYZE Statement

Use the ANALYZE statement to:

  • VALIDATE STRUCTURE
  • LIST CHAINED ROWS
  • Collect statistics not used by the optimizer,such as information on freee list blocks.
  • Sample a number(instead of a percentage) of rows
SQL>ANALYZE TABLE hr.employees VALIDATE STRUCTURE;

注意:虽然现在oracle在推荐使用dbms_stats包,但是ANALYZE之所以还存在使用,就是因为其功能涵盖了dbms_stats尚未拥有的.biru

比如:

    • To use the VALIDATE OR LIST CHAINED ROWS clauses.
    • To collect information on freelist blocks.

OLTP Systems

  • High-throughput,insert- and update-intensive
  • Large,continuously growing data volume
  • Concurrent access by many users
  • Tuining goals:
    • -Availability
    • -Speed
    • -Concurrency
    • -Recoverability

OLTP Requirements

  • Explicit extent allocation
  • Indexes:
    • -Not too many(B-tree better than bitmap)
    • -Reverse key for sequence columns
    • -Rebuilt regularly
  • Clusters for tables in join queries:
    • -Index clusters for growing tables
    • -Hash clusters for stable tables
  • Materialized views
  • Index-organized tables.(快速查询)

OLTP Application Issues

  • Use declarative constraints instead of application code.
  • Make sure that code is shared.
  • Use bind variables rather than literals for optimally shared SQL.
  • Use the CURSOR_SHARING parameter.

DSS/Data warehourse

  • Queries on large amounts of data
  • Heavy use of full table scans
  • Tuning goals:
    • -Fast response time
    • -Focus on SQL statement tuning
  • The Parallel Query feature is designed for data warehouse enviroment. 

Data Warehouse Requirements

Storge allocation

  • Set the block size and DB_FILE_MULTIBLOCK_READ_COUNT carefully.
  • Make sure that extent sizes are multiples of this parameter value.确保extent尺寸的大小应当是BLOCK的整数倍
  • Run dbms_stats regularly.

DB_FILE_MULTIPLE_READ_COUNT含义:一次性I/O读多少块数据到内存中.

Further Requirements

  • Evalute the need for indexes:
    • -Use bitmap indexes when possible
    • -Use index-organized tables for(range) retrieval by primary keys.
    • -Generate histograms for indexed columns that are not distributed uniformly.
  • Clustering:Consider hash clusters for performance access. 

DW Application Issues

  • Parsing time is less important
  • The execution plan must be optimal:(最佳的)
    • -Use the parallel query feature
    • -Tune carefully,using hints if appropriate.
    • -Test on realistic amounts of data
    • -Consider using PL/SQL functions to code logic into queries.
  • Bind variables are problematic.(使用bind variable一般就是减少parse time,在这里一般是不需要的)

Hybird System

除非一般公司预算不足,否则一般情况下会将系统分为OLTP和OLAP系统

OLTP Data warehourse
Performs index searches More full table scans
Uses B-tree indexes Uses bitmap indexes
Use reverse key indexes Use index-organized tables
CURSOR_SHARING set to Similar can assist performance CURSOR_SHARING should be left on Exact
Should not use Parallel Query Employes Parallel Query for large operations
PCTFREE accroding to expected update activity PCTFREE can be set to 0
Shared code and bind variables Literal variables and hints
Uses ANALYZE indexes Generates histograms

 

 

 

 

 

 

Summary

In this lesson,you should have learned how to do the following:

  • Explain the role of the DBA in tuning applications
  • Move tables using the ALTER TABLE command
  • Redefine a table online
  • Create different types of indexes
  • Build and manage index-organized tables
  • Explain and plan OLTP,DSS,and hybird system
原文地址:https://www.cnblogs.com/arcer/p/3057175.html