特殊情况如下 客户的统计信息是固定的,没办法收集统计信息 . SQL profile 是最后考虑方案,因为同样写法sql 比较多,几十条. Parallle 并行客户一般不考虑接受,OLTP 系统. 最好使用hint . 无法收集统计信息,怎样优化SQL. 首先在dev 环境收集统计信息,通过SQLHC ,收取结果. 其次使用收集信息的outline ,来代入,调优 结果如下: SELECT /*+                             BEGIN_OUTLINE_DATA  …
CREATE OR REPLACE PROCEDURE SchameB.PRC_GATHER_STATS AUTHID CURRENT_USER IS BEGIN SYS.DBMS_STATS.GATHER_TABLE_STATS('SchName', 'TableName', CASCADE => TRUE); END; / select owner,table_name,last_analyzed,num_rows from dba_tables where owner='SYSTEM' a…
1.     理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·         表的统计信息 o   行数 o   Block数 o   行平均长度 ·         列的统计信息 o   列中不同值的数量 o   列中null的数量 o   数据分布(柱状图/直方图) ·         索引的统计信息 o   叶子块的数量 o   索引的高度 o   聚簇因子(cl…
1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·         表的统计信息o   行数o   Block数 o   行平均长度·         列的统计信息o   列中不同值的数量o   列中null的数量 o   数据分布(柱状图/直方图) ·         索引的统计信息o   叶子块的数量o   索引的高度o   聚簇因子(clustering…
数据库环境:SQL SERVER 2005 今天在生产库里抓到一条跑得慢的SQL,语句不是很复杂,返回的数据才有800多行, 却执行了34分钟,甚至更久. 先看一下执行结果 我贴一下SQL. SELECT a.dec_yt1 , b.dec_yt1 , a.dec_yt2 , b.dec_yt2 , a.dec_yt3 , b.dec_yt3 FROM ctlm8288 a , ( SELECT t.corr_id , t.clerk_id , )), ) AS dec_yt1 , )), )…
---====================-- Impala 获取hive 的 metadata ---====================Impala 通常和Hive共用同一个metadata 数据库(通常是MySQL/PostgreSQL), 所以Impala 能够读取到Hive的元数据信息. 如果Impala需要访问Hive表, 需要将Hive metadata 刷新到impala中. 在Hive中Create/Drop表后, 或者HDFS rebalance,或者手工删除HDFS…
Oracle重建所有表的索引的sql: SELECT 'alter index ' || INDEX_NAME || ' rebuild online nologging;' FROM USER_INDEXES WHERE TABLESPACE_NAME = 'xxx' AND STATUS = 'VALID' AND TEMPORARY = 'N' AND INDEX_TYPE = 'NORMAL' AND PARTITIONED = 'NO'; 然后把结果放到PLSQL命令容器执行即可. O…
direct path read深入解析 前言 最近碰到一件很奇葩的事情,因为某条SQL执行缓慢,原因是走了笛卡尔(两组大数据结果集),而且笛卡尔还是NL的一个部分,要循环31M次. 很容易发现是统计信息没有导致的,收集完就好了. 结果过了个51假期回来有人反馈其他的SQL慢了,看了下慢的SQL涉及到的表就刚好是上次收集统计信息的表. 统计问题SQL的历史执行情况,发现时间刚好在那天收集完后开始变慢.咋回事. 后边发现慢的原因是对收集的那两张表做全表扫描时候用了直接路径读(DPR).暂定为表A和…
overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fraction of rows in a table that the SQL statement's predicate chooses) of predicates and to estimate the "cost" of each execution plan. The COB will…
收集oracle统计信息 优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN: 列统计: --列中唯一值的数量(NDV),NULL值的数量,数据分布: --DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NULLS,HISTOGRAM: 索引统计: --叶块数量,等级,聚簇因子: --DBA_INDEXES:LEAF_BLOCKS,CLUSTERING_FACTOR,BLEVEL: 系统统计:--…