这几天要求做一个服务器的统计信息,主要针对表和索引。...下面我就简单分享几个查询数据表和索引统计信息的方法: 1.使用T-SQL 语句实现: select schema_name(t.schema_id) AS '架构', t.name...图中展示了所需要的一些信息,其中每个信息都可以按照正序和倒叙排序,单位是KB。 同时右键这个窗口内,有修改页面布局、导出(Excel\Word\PDF)、打印等功能。...总结: 本文简单介绍了几种查询数据库表的磁盘和索引的统计情况。...在平时的工作中会经常用到这个功能,因为要看一下查询表的压力,索引占比,已经各个表的使用空间情况,对于表的设计,索引的使用等都有很大帮助。希望对大家有所帮助。
,都不影响持久化存储统计信息的索引 某个索引的统计信息更新时间参考mysql.innodb_index_stats这个系统表 某个索引的统计信息更新时间参考mysql.innodb_index_stats...也就是说,一个表索引统计信息是持久化存储的,并且表中数据变化了超过10%, 如果innodb_stats_auto_recalc为ON,就会自动更新统计信息,否则不会自动更新 3. innodb_stats_persistent...4. innodb_stats_persistent_sample_pages (持久化更新统计信息时候索引页的取样页数) 默认是20个page,如果设置的过高,那么在更新统计信息的时候,会增加...5. innodb_stats_transient_sample_pages(临时性更新统计信息时候索引页的取样页数) 默认值是8,innodb_stats_persistent设置为disable...的情况下,也即非持久化明确关闭的时候,innodb_stats_transient_sample_pages才生效, 也就是非持久化存储过索引统计信息的时候,innodb_stats_transient_sample_pages
对于索引的调整,我们可以通过Oracle提供的索引监控特性来跟踪索引是否被使用。尽管该特性并未提供索引使用的频度,但仍不失为我们参考的方式之一。...然而,最近在Oracle 10.2.0.3中发现收集统计信息时导致索引也被监控,而不是用于sql查询引发的索引监控。如此这般,索引监控岂不是鸡肋?...1、基于Oracle 10g 收集统计信息索引被监控情形 scott@CNMMBO> select * from v$version where rownum<2; BANNER ---------...-------------- T_PK T YES NO 03/22/2013 20:53:23 --收集表t上的统计信息...,在Oracle 10g中当收集统计信息时,如果当前索引的统计信息也被收集则导致该索引被监控 b、注意索引能否被收集到还依赖于estimate_percent以及method_opt等收集时的相关参数
MySQL的査询优化器会通过两个API来了解存储引擎的索引值的分布信息,以决定如何使用索引。...每种存储引擎实现索引统计信息的方式不同,所以需要进行ANALYZE TABLE的频率也因不同的引擎而不同,每次运行的成本也不同: Memory引擎根本不存储索引统计信息。...InnoDB引擎通过抽样的方式来计算统计信息,首先随机地读取少量的索引页面,然后以此为样本计算索引的统计信息。...客户端或者监控程序触发索引信息采样更新时可能会导致大量的锁,并给服务器带来很多的额外压力,这会让用户因为启动时间漫长而沮丧。只要SHOW INDEX查看索引统计信息,就一定会触发统计信息的更新。...如果想要更稳定的执行计划,并在系统重启后更快地生成这些统计信息,那么可以使用系统表来持久化这些索引统计信息。甚至还可以在不同的机器间迁移索引统计信息,这样新环境启动时就无须再收集这些数据。
Oracle的CBO基于成本的优化器,计算过程中最重要的依据就是统计信息,而统计信息的采集存在着他的逻辑。...而索引,情况不同, 创建索引的时候,会自动采集, 从他的创建语句就可以看出端倪,自带了"compute statistics"子句,他的意思是通过对数据对象的完全扫描来收集精确的统计数据, 但是存在一种特殊的场景...,为空代表统计信息未锁定,ALL是锁定, 此时再创建索引, 可以看到,创建语句中并未带着"compute statistics", 索引的统计信息,自然是空的, 如果在创建时,显式带着compute...、直方图,以及索引统计信息,都会被锁定, 因此,当锁定了表的统计信息时,如果显式使用compute statistics创建索引,就会提示错误,因为索引统计信息同样被锁定了,开锁前,不能采集。...如果不指定compute statistics,指定不采集索引统计信息,因此能创建。 以上现象不仅对普通表,对于分区表而言,同样适用,有兴趣的朋友,可以测下。
♣ 题目部分 在Oracle中,如何查询表和索引的历史统计信息?...♣ 答案部分 从Oracle 10g开始,当收集表的统计信息的时候,旧的统计数据被保留,如果因为新的统计信息而出现性能问题,旧的统计信息就可以被恢复。...历史统计信息保存在以下几张表中: l WRI$_OPTSTAT_TAB_HISTORY 表的统计信息 l WRI$_OPTSTAT_IND_HISTORY 索引的统计信息 l WRI$_OPTSTAT_HISTHEAD_HISTORY...查询索引的历史统计信息的SQL语句如下: SELECT B.OWNER, B.OBJECT_NAME INDEX_NAME, TO_CHAR(D.ANALYZETIME, '...下面的查询返回统计信息已经被删除到的日期(所以只有在这日期之后的统计信息才可能被恢复)。
搜索引擎是我日常工作中用得最多的一款工具,国内常用的搜索引擎包括Baidu,sougou,bing等。 但我本篇要记录的并不是这些常用的搜索引擎,而是信息安全从业人员必备的几款网络搜索引擎。...Google搜索引擎 这里之所以要介绍google搜索引擎,是因为它有别于百度、搜狗等内容搜索引擎,其在安全界有着非同一般的地位,甚至专门有一名词为google hacking用来形容google与安全非同寻常的关系...filetype: 搜索指定的文件类型,如:.bak,.mdb,.inc等。 info: 查找指定站点的一些基本信息。 inurl: 搜索我们指定的字符是否存在于URL中。...shodan搜索引擎 shodan网络搜索引擎偏向网络设备以及服务器的搜索,具体内容可上网查阅,这里给出它的高级搜索语法。...类似,以下几个文档信息。
搜索引擎是我日常工作中用得最多的一款工具,国内常用的搜索引擎包括Baidu,sougou,bing,以及信息安全从业人员必备的几款网络搜索引擎。...Google搜索引擎 这里之所以要介绍google搜索引擎,是因为它有别于百度、搜狗等内容搜索引擎,其在安全界有着非同一般的地位,甚至专门有一名词为google hacking用来形容google与安全非同寻常的关系...filetype: 搜索指定的文件类型,如:.bak,.mdb,.inc等。 info: 查找指定站点的一些基本信息。 inurl: 搜索我们指定的字符是否存在于URL中。...shodan搜索引擎 shodan网络搜索引擎偏向网络设备以及服务器的搜索,具体内容可上网查阅,这里给出它的高级搜索语法。...类似,以下几个文档信息。
功能 如何统计某个容器占用的资源信息? docker 提供了 stats子命令,用于了解当前运行容器的资源使用情况,包括:CPU、内存、网络IO、磁盘IO、等资源使用情况。...LTS,因为它可以更好的支持 overlay2 存储驱动等高级特性。...默认输出全部容器状态信息 docker stats # 使用 Ctrl + C 退出统计 ? 2. 输出指定的容器状态信息 docker stats nginx ?...通过 docker stats子命令,了解当前运行容器的资源使用情况。...默认输出实时统计信息,使用 使用 Ctrl + C 键退出。 参数 --no-stream 表示禁用实时统计,仅使用第一次获取的结果。
AUTO_INCREMENT=582 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC mysql库中有innodb_index_stats、innodb_table_stats 对innodb的信息进行统计...,可根据统计信息,分析表的复杂度,为优化做准备。...last_update 最后一次更新时间 stat_name 统计名 stat_value 统计值 sample_size 样本大小 stat_description 统计说明-索引对应的字段名 (mysql...(原因:统计索引信息时,是根据最左原则,要统计各种组合的。...比如(a,b) 索引,要统计(a), (a,b), (a,b,pk) 三种信息,而不是只统计(a,b)这个信息) 1 stat_name=size时:stat_value表示索引的页的数量 2
修复损坏的表 即使用正确的类型创建了表并加上了合适的索引,工作也没有结束:还需要维护表和索引来确保它们都正常工作。...维护表有三个主要的目的:找到并修复损坏的表,维护准确的索引统计信息,减少碎片。 表损坏(corruption)是很糟糕的事情。对于MyISAM存储引擎,表损坏通常是系统崩溃导致的。...其他的引擎也会由于硬件问题、MySQL本身的缺陷或者操作系统的问题导致索引损坏。 损坏的索引会导致查询返回错误的结果或者莫须有的主键冲突等问题,严重时甚至还会导致数据库的崩溃。...CHECK TABLE通常能够找出大多数的表和索引的错误。...可以通过设置innodb_force_recovery参数进入InnoDB的强制恢复模式来修复数据,更多细节可以参考 MySQL手册。
在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10g开始,dbms_stats包中默认的METHOD_OPT...DBMS_STATS.GET_PARAM('METHOD_OPT') ——————————————————————– FOR ALL COLUMNS SIZE AUTO 这就说明,从10g开始,统计信息收集中的直方图部分...,收集与否是有oracle自从判断,从实际的使用来看,oracle的智能判断并不是100%正确, oracle往往会大量的收集一些并不是必须的直方图信息,而有些直方图信息又会对查询造成不必要的影响 由于我们简单的对直方图进行删除后...,oracle的自动统计信息又会重新收集,所以我们需要采取一些必要的方法,来规避这个问题 10g中: 解决方案 删除表的统计信息 手工收集标的统计信息,不收集直方图 lock表的统计信息 创建JOB手工收集统计信息...11g中 在11g中,oracle对dbms_stats包添加了新功能,提供给我们进行修改,可以使用dbms_stats.set_table_prefs包 删除直方图信息: dbms_stats.delete_column_stats
它依赖数据库对象的统计信息,统计信息的准确与否会影响CBO做出最优的选择。...如果对一次执行SQL时发现涉及对象(表、索引等)没有被分析、统计过,那么ORACLE会采用一种叫做动态采样的技术,动态的收集表和索引上的一些数据信息。...在创建了基于索引的统计后,应该在表上收集新的列统计,这可以通过调用过程设置METHOD_OPT的FOR ALL HIDDEN COLUMNS; 3....MONDAY_WINDOW freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0 +000 04:00:00 7 rows selected 接下来,再介绍下手动如何收集统计信息...:导入数据库分析信息 GATHER_INDEX_STATS:分析索引信息 GATHER_TABLE_STATS:分析表信息,当cascade为true时,分析表、列(索引)信息 GATHER_SCHEMA_STATS
EXPLAIN 工具能用于获取查询执行计划,即分析 MySQL 如何执行一个 SQL 语句。...我们可以根据EXPLAIN 输出的数据来分析如何优化查询语句,提升查询语句的性能瓶颈。 如何使用 EXPLAIN ?...MySQL 会在查询上设置一个标记,此时,执行查询不会返回查询结果,而是返回执行计划的相关信息。如果查询语句的 from 中有子查询语句,依旧会执行这个子查询语句,结果会被放入临时表。...type:表示连接类型或者访问类型,即MySQL如何查找表中的数据行,查找数据行记录的大概范围。...Extra:展示当前查询的附加信息。常见的重要值如下: Using index:表示使用覆盖索引,即 select 数据在索引信息中,不需要再查找读取其他值。
♣ 题目部分 在Oracle中,新建索引后统计信息是否自动收集?...♣ 答案部分 在Oracle 10g后有个隐含参数“_OPTIMIZER_COMPUTE_INDEX_STATS”,意思是是否对新建索引收集统计信息,该参数默认是TRUE,表示默认收集新建索引的统计信息
xact_commit | 2357 #该数据库事务提交总量:和下面的rollback和作为TPS统计 xact_rollback |...#从shared buffer命中块数 tup_returned | 1413113 #对于表来说,是全表扫描的行数;对于索引是通过索引返回的索引行数...较小,操作系统的cache需要更积极的写入 stats_reset | 2019-02-11 23:42:37.526743-08 #统计信息重置的时间 通过pg_stat_database...#通过任意索引方法返回的索引行数 idx_tup_fetch | 0 #通过索引方法返回的数据行数 可以知道当前哪些索引频繁使用,哪些是无效索引。...无效索引可以删除掉,减少磁盘空间的使用和提升insert、delete、update的性能。
统计信息准确性对于CBO评估SQL的各种可能执行路径的Cost非常重要,当统计信息不准时,很可能CBO选择了不佳的执行计划,此时需要收集统计信息。...或者当进行SQL优化时,怀疑是统计信息不准导致的问题时,需要收集统计信息。...但生产环境下统计信息的收集也是有风险的,有可能当收集了统计信息后执行计划反而变的更差,此时就可以利用Pending Statistics。 默认的,当收集完统计信息后,统计信息会存储到数据字典表中。...实验步骤 1.复制dba_objects创建t1表,同时创建索引并收集统计信息。 SQL> conn mdd/mdd 已连接。...要点总结 1.使用set_table_prefs过程将表的publish选项设置为false,收集统计信息时表和索引的统计信息都会被收集为pending statistics,可以查看视图dba_tab_pending_stats
背景:有时我们会希望可以对Oracle的统计信息整体进行导出导入。...比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集的结果反而引发性能问题,想先保存当前的统计信息,这样即使重新收集后效果不好还可以导入之前的统计信息。...1.示例schema级别统计信息的导出导入 2.示例database级别统计信息的导出导入 3.验证统计信息导出导入效果 1.示例schema级别统计信息的导出导入 比如我将JINGYU这个schema...如果想将数据库所有统计信息进行导出导入,方法非常类似,使用对应的过程: --源端统计信息导出: begin DBMS_STATS.CREATE_STAT_TABLE('SYSTEM','DB_STATS...(根据实际需要选择性执行): exec DBMS_STATS.DROP_STAT_TABLE ('SYSTEM','DB_STATS_20181217'); 3.验证统计信息导出导入效果 以数据库级别统计信息的导出导入为例
作者:pcskySQL语句如下:SELECTDD.SumHits,AA.CountArt,C
领取专属 10元无门槛券
手把手带您无忧上云