oracle收集统计信息sql,Oracle自动统计信息的收集原理及实验
从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。
调用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集统计信息。该过程首先检测统计信息缺失和陈旧的对象。然后确定优先级,再开始进行统计信息。收集的规则是user_tab_modifications中操作的记录数超过表的数量的10%就会自动收集。更多的信息看官方文档:http://docs.oracle.com/cd/B19306_01/server.102/b14211/stats.htm#sthref1068 。
user_tab_modifications表中有inserts,updates,deletes,意思是修改了多少行数据,下面我们来做一个实验:
SQL> create table test as select * from dba_objects;
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
未选定行
SQL> exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;
PL/SQL 过程已成功完成。
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
未选定行
SQL> exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;
PL/SQL 过程已成功完成。
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
未选定行
SQL> exec dbms_stats.gather_table_stats(user,'TEST');
PL/SQL 过程已成功完成。
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
未选定行
SQL> delete from test where rownum <=10000;
已删除10000行。
SQL> commit;
提交完成。
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
未选定行
SQL> exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;
PL/SQL 过程已成功完成。
SQL> select table_name,inserts,updates,deletes,timestamp
from user_tab_modifications where table_name='TEST';
TABLE_NAME INSERTS UPDATES DELETES TIMESTAMP
------------------------------ ---------- ---------- ---------- --------------
TEST 0 0 1000012-7月 -13
另外:
关闭自动统计信息命令,exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
启用自动统计信息命令,exec DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
查看自动统计信息是否开启,
oracle 10g :SELECT OWNER,JOB_NAME,ENABLED FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = 'GATHER_STATS_JOB';
oracle 11g :select t1.owner, t1.job_name, t1.enabled from dba_scheduler_jobs t1 where t1.job_name = 'BSLN_MAINTAIN_STATS_JOB';
oracle收集统计信息sql,Oracle自动统计信息的收集原理及实验相关推荐
- oracle高资源消耗sql,Oracle高资源消耗SQL语句定位
Oracle SQL语句资源消耗监控最常用的系统视图有v$sql.v$sqlarea.v$sqltext和v$session.本文我们先了解这些视图的作用与区别,然后了解如何定位高资源消耗SQL语句, ...
- oracle创建存储过程动态sql,Oracle存储过程使用动态SQL
Oracle存储过程使用动态SQL 有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者.试验步骤如下: 1:DDL和DML /*** DDL ***/ begin ...
- Oracle数据库恢复应SQL,Oracle数据库数据恢复验证笔记
这些年做数据恢复单子,经常碰到Oracle案例,当我们把数据恢复出来以后,我们怎样才能让用户看到oracle数据库里的东西,而不是一个一个oracle数据文件,以下是我总结出来的,对oracle初学者 ...
- xlsx表格怎么做汇总统计_excel表格 的自动统计数据-excel,怎么做数据自动汇总
excel,怎么做数据自动汇总 在EXCEL里面查找然后自动统量的具骤如下: 我们需要的材料分别是:电脑Excel表格. 1.首先我们打开需要编辑的Excel表格,点击打开"查找和选择&qu ...
- oracle双重for循环sql,Oracle 11g中for循环中的PL / SQL限制
我有一个大约有3000万条记录的表,并且我想像这样循环遍历表中存在的记录: FOR i IN (SELECT * FROM tbl_items it Left join location lo ON ...
- python字典统计男女比例_Python 自动统计微博抽奖中奖男女比例(附代码)
今天来写一个自动计算微博抽奖男女比例的代码,很早就应该发这篇了,只是不想蹭热点(才不是拖更). 整个的过程大概分为三步: S1:从抽奖公示页获取所有中奖者的微博ID S2:由每个中奖者的微博ID进入其 ...
- sql oracle 递归查询语句,深入sql oracle递归查询
☆ 获取数据库所有表名,表的所有列名 select name from sysobjects where xtype='u' select name from syscolumns where id= ...
- oracle查视图的sql,oracle通过v$sql视图查询sql的平均执行时间(代码实例)
oracle通过v$sql视图查询sql的平均执行时间(代码实例) select sql_text,executions 总执行次数,elapsed_time/1000 总耗时(秒), elapsed ...
- oracle中的pl SQL,Oracle数据中的PL/SQL介绍
PL/SQL是Procedure Language Sturtured Query Language的缩写.PL/SQL的优点:有利于客户/服务器环境应用的性能提高.PL/SQL是 什么是Pl/SQL ...
最新文章
- 终端模拟器编译c语言,编写你自己的Terminal emulator
- oracle中那个日期怎么相减_oracle数据库中日期加减函数
- javaweb中mysql数据库的回滚操作代码
- Gridiew——表的内容居中
- java 项目心得_读懂JAVA WEB项目的一点心得 | 学步园
- java list 区别_Java中List和ArrayList的区别
- 【TWVRP】基于matlab遗传算法和模拟退火求解带时间窗自行车调度问题【含Matlab源码 370期】
- JS如何判断一个对象是否为JSON对象
- QT 对话框不在任务栏显示
- 2015062602 - 星际迷航.红杉书评
- Ansys Meshing
- Surface reconstruction from unorganized points
- html和css怎么学好,如何学好css?
- 中国农历的Java实现
- 直接横摆力矩分层控制器 上层LQR 下层数学规划 四轮独立驱动汽车转矩分配 DYC 与AFS集成控制器
- 大数据爬虫采集的应用流程
- ***S 2012 仪表 -- 关键绩效指标
- 华为云物联网四年配置中心实践
- 哈佛大学图书馆二十条训言_ywyuan_新浪博客
- 湖北经济学院法商学院计算机应用,湖北经济学院法商学院
热门文章
- 浅谈 URI 及其转义
- 在ubuntu 14.04搭建React Native for Android开发环境
- extract local variale 和 jsp中查找选中内容的快捷键
- leetcode 485,487,1004. Max Consecutive Ones I ,II, III(最大连续1的个数问题合集)
- P8实战(二):分布式锁前置技能 etcd 集群搭建
- 【转自CodeSheep】程序猿好书推荐
- C语言 malloc动态申请内存,存放数组
- Java实现心跳机制
- Effective Java之用enum代替int常量(三十)
- spark on yarn 使用自定义jdk