统计信息

据统计信息来作预估,如执行计算预估的返回行
查看统计信息:DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)
建立索引后,若想看其好坏,用DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)查看重复率,越小越好。
统计信息维护:
    1,表格从没有数据变成有数据时,如索引重建。
    2,小表(500行以下数据),当统计信息第一个字段累计变化大于500以后
    3,大表(500行以上),当统计信息第一个字段累计变化大于500+(20%*表格数据总量)时,即在表五分之一以上的数据发生变化时,会自动更新统计信息。
    4,手工更新,如下:
手工更新统计信息:
UPDATE STATISTICS  mdDept –表
UPDATE STATISTICS  mdDept IX_mdDept –表上索引

1,索引要建立在重复少的字段上才有意义,试想若字段全相同,那做索引就没有意义。
索引建立后可通过DBCC SHOW_STATISTICS (‘bdship‘,‘IX_bdship_2‘)来判断,
第一个表的Density
若Density接近于1,说明重复率非常小,索引建立的很好
若Density小于0.1,说明重复很大,建不建立索引影响不大,某些时候会用扫描方式替代索引查找

第三个表:
RANGE_HI_KEY:
每组数据的最大值
RANGE_ROWS:每组数据区间行数,不含最大值。即:(上一行值,当前行值)
EQ_ROWS:等于RANGE_HI_KEY的值的数量
DISTINCT_RANGE_ROWS:每组数据非重复数量
AVG_RANGE_ROWS:重复值的平均数量,不含上限值
=RANGE_ROWS/DISTINCT_RANGE_ROWS
这样,通过给定的一个条件,就能预估大概有多少行数据,有多少M数据。

时间: 2024-10-12 17:32:45

统计信息的相关文章

数据库性能优化、统计信息与对象统计信息概述收集、扩展统计信息、dbms_stats.get_prefs

数据库性能优化 相关书籍: 1.基于成本的Oracle优化法则 2.Oracle性能诊断艺术 3.基于Oracle的SQL优化 ----------------------------------------------------------------------------------------- 两种优化器: CBO  cost-base optimizer 基于cost 更大适应性/灵活性/10g开始 RBO  rule-base optimizer 基于规则 制定了15条/10g以

使用DBMS_STATS.restore 恢复统计信息

我们可以恢复之前的统计信息,生成原本的执行计划 SQL> BEGIN   2  DBMS_STATS.restore_table_stats(ownname => 'DAO',tabname => 'TEST_STATS',as_of_timestamp => '27-JUN-14 05.40.33.314757 PM +08:00');   3  END ;   4  / PL/SQL procedure successfully completed. SQL> selec

oracle之 v$sql_monitor 监视正在运行的SQL语句的统计信息

11g中引入了新的动态性能视图V$SQL_MONITOR,该视图用以显示Oracle监视的SQL语句信息.SQL监视会对那些并行执行或者消耗5秒以上cpu时间或I/O时间的SQL语句自动启动,同时在V$SQL_MONITOR视图中产生一条记录.当SQL语句正在执行,V$SQL_MONITOR视图中的统计信息将被实时刷新,频率为每秒1次.SQL语句执行完成后,监视信息将不会被立即删除,Oracle会保证相关记录保存一分钟(由参数_sqlmon_recycle_time所控制,默认为60s),最终这

oracle数据库优化之统计信息

1.统计信息简介 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.比如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息.CBO正是根据这些统计信息数据,计算出不同访问路径下,不同join 方式下,各种计划的成本,最后选择出成本最小的计划. 在CBO(基于代价的优化器模式)条件下,SQL语句的执行计划由统计信息来决定,若没有统计信息则会采取动态采样的方式决定执行计划!可以说统计信息关乎sql的执行计划是否正确,

SQL SERVER的统计信息

可以看到,统计信息分为三部分内容,头信息,数据字段选择性及直方图. 2.1 头信息 列名 说明 Name 统计信息的名称. Updated 上次更新统计信息的日期何时间 Rows 预估表中的行数,不一定是精确的 Rows Sampled 统计信息的抽样行数,如果小于Rows,则说明直方图和密度结果是更加抽样行估计的 Steps 直方图中的梯级数.Number of steps in the histogram.每个梯级都跨越一个列值范围,后跟上限列值. 直方图梯级是根据统计信息中的第一个键列定义

MySQL索引统计信息更新相关的参数

MySQL统计信息相关的参数: 1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态 仅在统计信息配置为非持久化的时候生效. 也就是说在innodb_stats_persistent 配置为OFF的时候,非持久化存储统计信息的手,innodb_stats_on_metadata的设置才生效. 当innodb_stats_on_metadata设置为ON的时候, InnoDB在执show table status 或者访问INFORMA

Oracle里收集与查看统计信息的方法

Oracle数据库里的统计信息是这样的一组数据:它存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息.CBO会利用这些统计信息来计算目标SQL各种可能的.不同的执行路径的成本,并从中选择一条成本值最小的执行路径来作为目标SQL的执行计划. Oracle数据库里的统计信息可以分为如下6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 表的统计信息用于描述Oracle数据库里表的详细信息,它包含了一些典型的维度,如记录数.表块

Linux命令(34):ss命令-获取socket统计信息

ss 可以用来获取socket统计信息,它可以显示和netstat类似的内容. 例如: (1)显示TCP连接 #ss -t -a (2)列出所有打开的网络连接端口 #ss -l (3)查看进程使用的socket #ss -pl

全废话SQL Server统计信息(1)——统计信息简介

当心空无一物,它便无边无涯.树在.山在.大地在.岁月在.我在.你还要怎样更好的世界?--张晓风<我在> 为什么要写这个内容? 随着工作经历的积累,越来越感觉到,大量的关系型数据库的性能问题,其根源在于统计信息.这里说的是根源,其实很多时候大家觉得的那些什么索引失效等都只是表象.当然,不能一概而论,还有很多问题如配置问题.设计问题等等,甚至电源也会影响性能. 之所以得出这个结论,因为在常规的开发和部署过程中,一般企业级系统已经大量使用较为高级的磁盘阵列甚至企业级SSD,IO方面的问题已经很少,而

SQL Server 统计信息

SELECT * FROM SYS.stats _WA_Sys_00000009_00000062:统计对象的名称.不同的机器名称不同,自动创建的统计信息都以_WA_Sys开头,00000009表示的是第几列,后面的数是一个十六进制的数,等于表的object_id,WA是华盛顿,是sql server开发组所在地