会计考友 发表于 2012-8-4 13:41:06

Oracle认证:如何监控Oracle索引的使用完全解析

研究发现,oracle数据库使用的索引不会跨越总数的25%,或者不易他们期望被使用的体例使用。经由过程 监控数据库索引的使用,释放那些未被使用的索引,年夜而节约维护索引的开销,优化机能。 1、在oracle8i中,确定使用了阿谁索引的体例意味着要对存在语共享SQL区中的所有语句运行EXPLIAN PALN,然后发芽打算表中的OPERATION列,年夜而识别有OBJECT_OWNER和OBJECT_NAME列所确定的阿谁索引上的索引访谒。 下面是一个监控索引使用的剧本,这个剧本仅仅是一个样品,在某种前提下成立: 前提: 运行这个剧本的用户拥有权限诠释所有的v$sqlarea中的sql,除了不是被SYS装载的。plan_table.remarks能够别用来抉择与特权习惯的错误。对所有的共享池中SQL,参数OPTIMIZER_GOAL是一个常量,无视v$sqlarea.optimizer_mode。两次快照之间,统计资料被再次剖析过。没有语句别截断。所有的对象都是局部的。所有被引用的表或视图或者是被运行剧本的用户所拥有,或者完全有资格的名字或同义词被使用。自年夜上次快照以来,没有不受"接待"的语句被冲刷出共享池(例如,在装载)。对于所有的语句,v$sqlarea.version_count = 1 (children)。 剧本:
  Code:   set echo off  Rem Drop and recreate PLAN_TABLE for EXPLAIN PLAN  drop table plan_table;  create table PLAN_TABLE (  statement_id     varchar2(30),  timestamp      date,  remarks       varchar2(80),  operation      varchar2(30),  options        varchar2(255),  object_node     varchar2(128),  object_owner     varchar2(30),  object_name     varchar2(30),  object_instance    numeric,  object_type     varchar2(30),  optimizer      varchar2(255),  search_columns     number,  id            numeric,  parent_id        numeric,  position        numeric,  cost        numeric,  cardinality        numeric,  bytes        numeric,  other_tag      varchar2(255),  partition_start   varchar2(255),  partition_stop   varchar2(255),  partition_id    numeric,  other        long,  distribution    varchar2(30),  cpu_cost        numeric,  io_cost        numeric,  temp_space        numeric,  access_predicates  varchar2(4000),  filter_predicates  varchar2(4000));    Rem Drop and recreate SQLTEMP for   taking a snapshot of the SQLAREA  drop table sqltemp;  create table sqltemp  (  ADDR         VARCHAR2 (16),  SQL_TEXT         VARCHAR2 (2000),  DISK_READS        NUMBER,  EXECUTIONS        NUMBER,  PARSE_CALLS     NUMBER);  
页: [1]
查看完整版本: Oracle认证:如何监控Oracle索引的使用完全解析