【Oracle按用户进行统计信息更新】教程文章相关的互联网学习教程文章

Oracle学习之性能优化(四)收集统计信息

emp表有如下数据。 SQLselectename,deptnofromemp;ENAMEDEPTNO----------------------------------------SMITH20ALLEN30WARD30JONES20MARTIN30BLAKE30CLARK10SCOTT20KING10TURNER30ADAMS20JAMES30FORD20MILLER1014rowsselected. 假设我们有如下简单的查询 se emp表有如下数据。SQL> select ename,deptno from emp;ENAME DEPTNO ------------------------------ ---------- SMITH 20 ALLEN 30 WARD ...

Oracle11g统计表空间使用率很慢

现场统计表空间很慢。 SELECT T1.TABLESPACE_NAME, TOTAL_SPACE, TOTAL_SPACE - FREE_SPACE USED_SPACE, FREE_SPACE FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024/ 1024 TOTAL_SPACE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) T1, (SELECT 现场统计表空间很慢。 SELECT T1.TABLESPACE_NAME,TOTAL_SPACE,TOTAL_SPACE - FREE_SPACE USED_SPACE,FREE_SPACEFROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024...

【DB笔试面试643】在Oracle中,如何查询表和索引的历史统计信息?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,如何查询表和索引的历史统计信息?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。历史统计信息保存在以下几张表中:l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息l WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息l WRI$_OPTST...

【DB笔试面试628】Oracle的统计信息包括哪几种类型?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 Oracle的统计信息包括哪几种类型?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?Oracle数据库里的统计信息是一组存储在数据字典里,且从多个维度描述了数据库里对象的详细信息的一组数据。当Oracle数据库工作在CBO(Cost Based Optimization,基于代价的优化器)模式下时,优化器会根据数据字典中记录的对象的统计信息来评估SQL语句的不同执行计划的成本,从而找到最优或者是相对最优的执行计划。所以,可以说...

【DB笔试面试639】在Oracle中,什么是多列统计信息(Extended Statistics)?【图】

? 题目 部分在Oracle中,什么是多列统计信息(Extended Statistics)? ? 答案部分 Oracle优化器对于基数值的估算是否准确关系到能否生成最优的执行计划,而基数值估算的准确性又取决于SQL中各个对象的统计信息是否完整、是否能真实反映出对象的数据分布情况。因此使用何种方法收集统计信息是很有讲究的:对于数据倾斜度较大的表需要收集直方图,在此基础上如果有多个列存在相关性,那么多...

【DB笔试面试633】在Oracle中,什么是待定的统计信息(Pending Statistic)?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,什么是待定的统计信息(Pending Statistic)?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?在数据库系统运维中,DBA常常希望维持SQL执行计划的稳定。很多DBA和开发人员对于Hint的依赖,很大程度上也是源于在CBO情况下,执行计划对于统计量过于依赖,容易形成不稳定执行计划。所以,SQL语句执行计划的稳定性,就变成统计信息的稳定性问题。更进一步,就是新的统计信息更新,无论是手动收集还是自动...

【DB笔试面试632】在Oracle中,如何锁住统计信息?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,如何锁住统计信息?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?Oracle会自动收集表的统计信息,大部分情况下,这种行为是有利的。当不需要对某个表做收集的时候,可以采用锁定统计信息的方法,把不需要收集的表排除在外,这样可以使得此表上的统计信息不变,如下所示:1EXEC DBMS_STATS.LOCK_TABLE_STATS(); --表 2EXEC DBMS_STATS.LOCK_PARTITION_STATS(); --分区表 3EXEC DBMS_STATS.LOCK_SCH...

【DB笔试面试647】在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?【代码】【图】

? ? ? ? ? ?题目 ? ? ? ? 部分在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?在分区分裂时,新分区的统计信息会继承原分区的统计信息值。若原分区的统计信息为空,则新分裂出来的分区统计信息也为空。所以,建议对SPLIT出来的新分区重新收集统计信息。收集分区表某个分区的SQL如下所示:1DBMS_STATS.GATHER_TABLE_STATS(USER,TB_NAME,PARTNAME=>PT_PART...

【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?【图】

? ? ? ? ? ?题目 ? ? ? ? 部分 在Oracle中,当收集表的统计信息时应该注意哪些问题?? ? ?? ? ? ? ? ?答案部分 ? ? ? ? ?关于收集统计信息需要注意以下几点:① 对于数据量不大的OLTP类型的系统,建议使用自动收集统计信息,并对一些特殊的大表写JOB定时收集统计信息。如果是数据量很大的OLAP或者DSS系统,那么建议DBA自己写JOB脚本来收集统计信息。② 在导入大量数据后应及时收集统计信息后才能进行相关的后续业务处理(包括查询...

【DB笔试面试641】在Oracle中,新建索引后统计信息是否自动收集?【代码】【图】

? 题目 部分在Oracle中,新建索引后统计信息是否自动收集? ? 答案部分 在Oracle 10g后有个隐含参数“_OPTIMIZER_COMPUTE_INDEX_STATS”,意思是是否对新建索引收集统计信息,该参数默认是TRUE,表示默认收集新建索引的统计信息。示例如下所示: 1SQL> create table testidx(id number); 2 3Table created. 4 5SQL> create index idx_11 on testidx(id); 6 7Index created. 8 9SQL> SELECT d.LAST_A...

【DB笔试面试643】在Oracle中,如何查询表和索引的历史统计信息?【代码】【图】

? 题目 部分在Oracle中,如何查询表和索引的历史统计信息? ? 答案部分 从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。历史统计信息保存在以下几张表中:l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息l WRI$_OPTSTAT_HISTHEAD_HISTORY 列的统计信息l WRI$_OPTSTAT_HISTGRM_HISTOR...

【DB笔试面试644】在Oracle中,如何并发地收集统计信息?【代码】【图】

? 题目 部分在Oracle中,如何并发地收集统计信息? ? 答案部分 对于大表的统计信息收集可以通过DEGREE参数使得扫描大表的时候进行并行扫描,从而加快扫描速度,缩短了收集统计信息的时间。但是,即使加了DEGREE参数,在收集统计信息的时候,还是进行一个表一个表的扫描,并没有并发的同时扫描多个表。在Oracle 11.2.0.2之后,有了一个参数,可以并发扫描表,这就是CONCURRENT参数。可以通过以下SQL语句查询数...

【DB笔试面试645】在Oracle中,当收集表的统计信息时应该注意哪些问题?【代码】【图】

? 题目 部分在Oracle中,当收集表的统计信息时应该注意哪些问题? ? 答案部分 关于收集统计信息需要注意以下几点:① 对于数据量不大的OLTP类型的系统,建议使用自动收集统计信息,并对一些特殊的大表写JOB定时收集统计信息。如果是数据量很大的OLAP或者DSS系统,那么建议DBA自己写JOB脚本来收集统计信息。② 在导入大量数据后应及时收集统计信息后才能进行相关的后续业务处理(包括查询和修改),否则可能...

【DB笔试面试647】在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?...【代码】【图】

? 题目 部分在Oracle中,使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少? ? 答案部分 在分区分裂时,新分区的统计信息会继承原分区的统计信息值。若原分区的统计信息为空,则新分裂出来的分区统计信息也为空。所以,建议对SPLIT出来的新分区重新收集统计信息。收集分区表某个分区的SQL如下所示:1DBMS_STATS.GATHER_TABLE_STATS(USER,TB_NAME,PARTNAME=>PT_PART_NAME,GRANULARITY...

【DB笔试面试649】在Oracle中,分区表统计信息的更新机制是怎样的?【代码】【图】

? 题目 部分在Oracle中,分区表统计信息的更新机制是怎样的? ? 答案部分 分区表统计信息的更新机制如下所示:① 当某个分区的数据变化达到10%,自动收集统计信息任务运行时,Oracle会更新该分区的统计信息。② 当分区表中所有分区中数据变化量的总和达到分区表总数据量的10%,Oracle会更新该分区表的统计信息。另外,需要注意的是,在更新分区表的统计信息时,在10.2.0.5之前必须要扫描该表所有的分区或整...