分析oracle索引空间使用情况,以及索引是否需要重建

分析索引空间使用情况,以及索引是否需要重建

分析其他用户下的索引需要 analyze any的权限

分析索引前先查看表的大小和索引的大小,如果索引大小和表大小一样大或者大于表的大小,那么可以判断索引可能有问题,需要分析索引

查询对象大小:

select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments order by 4 desc

1.分析索引

SQL> analyze index AA.INDEX_AA validate structure;

SQL>

Index analyzed

查询空间使用情况:

SQL> select name, blocks, lf_blks,  br_blks, blocks-(lf_blks+br_blks) empty from index_stats;

NAME                               BLOCKS    LF_BLKS    BR_BLKS      EMPTY

------------------------------ ---------- ---------- ---------- ----------

AA                                262144      253480        725       7939

--索引空块达到了7939

2.查询索引删除行和删除比例(一般删除率达到30%就要考虑重建索引)

SQL> select t.name, --索引名

2          t.lf_rows, --number of leaf rows (values in the index)

3          t.lf_blks,

4          t.del_lf_rows, --number of deleted leaf rows in the index

5          (t.del_lf_rows / t.lf_rows)*100 ratio --删除比例

6     from index_stats t

7     where t.name=‘INDEX_AA‘;

NAME                              LF_ROWS    LF_BLKS DEL_LF_ROWS      RATIO

------------------------------ ---------- ---------- ----------- ----------

AA                              77318533     253480           0          0

3.查看索引的使用率以及索引深度(深度>=4时就考虑重建索引)

SQL> SELECT height, NAME, BTREE_SPACE, USED_SPACE, PCT_USED FROM INDEX_STATS;

HEIGHT NAME                           BTREE_SPACE USED_SPACE   PCT_USED

---------- ------------------------------ ----------- ---------- ----------

4 INDEX_AA                       2032646380 1231201944         61

--索引深度为4

满足下列条件考虑重建索引

The most common justifications given for rebuilding an index are:

- index becomes fragmented

- index grows and grows - deleted space is not re-used

- index clustering factor becomes out of sync

时间: 2024-11-02 20:56:07

分析oracle索引空间使用情况,以及索引是否需要重建的相关文章

分析oracle索引空间使用情况,以及索引是否须要重建

分析索引空间使用情况.以及索引是否须要重建 分析其它用户下的索引须要 analyze any的权限 分析索引前先查看表的大小和索引的大小,假设索引大小和表大小一样大或者大于表的大小,那么能够推断索引可能有问题.须要分析索引 查询对象大小: select owner,segment_name,segment_type,bytes/1024/1024 from dba_segments order by 4 desc 1.分析索引 SQL> analyze index AA.INDEX_AA val

查询Oracle表空间使用情况

1 SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99')||'%' "使用比(%)",F

oracle 临时表空间使用情况

今天用户那边执行一个很简单的SQL,输出结果集也才几万条,涉及三表,最大也才100万数据量,结果却报了表空间不足的情况,理论来说,这样的SQL怎么也不应该吃这么多临时表空间. 查询临时表空间的使用情况: select USERNAME,SESSION_NUM,SQL_ID,TABLESPACE,SEGTYPE,BLOCKS*8192/1024/1024||' MB' as MB from v$sort_usage order by 6 desc v$sort_usage显示给定实例的每个排序段的

python 简单监控内存/硬盘空间/以及oracle表空间使用情况

由于使用的是内网环境,所以使用用户名密码验证,建议使用密钥认证check.py import paramiko #获取ssh连接并执行shellcomand返回正确的结果 def doshell(hostname,port,username,password,shellcommand): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname

三、查看Oracle表空间使用情况

1.查询表空间的总容量 select a.TABLESPACE_NAME, sum(a.BYTES) / 1024 / 1024 as MB from sys.dba_data_files a group by a.TABLESPACE_NAME 2.查询表空间的空闲容量 select b.TABLESPACE_NAME, count(1) as extends, sum(b.BYTES) / 1024 / 1024 as MB, sum(b.BLOCKS) as blocks from sys

Oracle查询表空间使用情况

SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), '990.99') "使用比", F.TOT

数据库----问题1:数据库索引底层是怎样实现的,哪些情况下索引会失效?

什么是索引: 一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree).索引是在表的列上创建.所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中.请记住记住这一点:索引是一种数据结构 . 哈希索引的缺点: 优点:在寻找值时哈希表效率极高,如果使用哈希索引,对于比较字符串是否相等的查询能够极快的检索出的值. 缺点:哈希表是无顺的数据结构,对于很多类型的查询语句哈希索引都无能为力.比如无法查询所有小于40岁的员工.因为哈希表只适合查询键值对-也就是说查询相等的查

Oracle磁盘空间使用统计

对于大型数据库,Oracle占用的磁盘空间非常大,掌握数据库中那些用户.表占用了多杀磁盘空间,以及增长情况,可以方便日后对磁盘系统进行维护和扩充. 对Oracle磁盘空间使用情况,可以分为按照表空间.用户或者表来进行统计. (一).表空间 计算表空间的剩余大小 select A.TABLESPACE_NAME,A.BYTES/(1024*1024*1024) "SPACE(G)", C.BYTES/(1024*1024) "FREE SPACE(M)",(C.BYT

Oracle性能分析6:数据访问方式之索引扫描

这节将介绍各种索引扫描方式,在了解了各种索引扫描方式的特点后,你就可以判断你的执行计划中使用的扫描方式是否正确,并可以针对获取的信息作出改进. 索引唯一扫描 在下面的场景中使用相等条件时,数据库使用索引唯一扫描. 1)查询条件中包含唯一索引中的所有列时: 2)查询条件使用主键约束列时. 下面是一个实际的例子,在表historyalarm中创建如下唯一索引: create unique index idx_historyalarm$queryid on historyalarm(queryid)