Oracle查询索引碎片及数据表空间使用情况
--检查索引碎片情况,只能对单个表进行分析。
--需要注意块的大小、索引的pctfree的值的大小、rowid的长度的不同,根据不同的情况修改相应的值
select index_name, c.NMB "应有大小", d.SMB "现大小"
from (select index_name,
round((select num_rows numrows
from dba_tables
where table_name = upper('tableName')
AND owner = upper('ownerName')) /
((8192 - 819.2 - 4 - 20 - 72 - 32) /
((sum(AVG_COL_LEN)) + 2 + 18)) * 8192 / 1024 / 1024) NMB
from (SELECT b.index_name index_name,
a.column_name,
a.AVG_COL_LEN AVG_COL_LEN
FROM dba_tab_columns a,
(select b.index_name, b.column_name, b.index_owner
from dba_ind_columns b
where b.table_name = upper('tableName')
and B.INDEX_OWNER = upper('ownerName')
order by b.index_name) b
WHERE a.TABLE_NAME = upper('tableName')
AND A.OWNER = upper('ownerName')
and a.column_name = b.column_name
order by b.index_name)
group by index_name) c,
(SELECT segment_name, round(sum(bytes) / 1024 / 1024) SMB
FROM dba_segments
WHERE OWNER = upper('ownerName')
group by segment_name) d
where c.index_name = d.segment_name;
索引碎片比较严重的话,重建索引:
--ALTER INDEX indexName rebuild online nologging; DECLARE
CURSOR myCur IS
select INDEX_NAME from user_indexes WHERE TABLE_NAME=upper('tableName') AND INDEX_TYPE='NORMAL';
v_cname myCur% rowtype;
vsSql varchar2(256);
begin
open myCur;
loop
fetch myCur into v_cname;
exit when myCur% notfound;
vsSql:='ALTER INDEX ' || v_cname.INDEX_NAME || ' rebuild online nologging';
EXECUTE IMMEDIATE vsSql;
end loop;
close myCur;
end;
查看指定数据表的空间分配及实际使用情况:
select ta.Used_Blocks, tt.*
from (
SELECT COUNT(DISTINCT DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) || DBMS_ROWID.ROWID_RELATIVE_FNO(rowid)) as Used_Blocks
FROM tableName
) ta
cross join (
select t.*
from user_segments t
where t.segment_type = 'TABLE'
and t.segment_name = upper('tableName')
order by t.blocks desc
) tt;
大量删除数据后的高水位线,造成表扫描性能问题,释放数据空间
--删除数据后,释放数据空间
alter table tableName enable row movement;
alter table tableName shrink space cascade;
alter table tableName disable row movement;
http://www.cnblogs.com/linjiqin/archive/2012/01/15/2323030.html
附,更新统计信息、清空缓存
--analyze table 更新统计信息:
analyze table my_table compute statistics;
--OR
EXEC DBMS_STATS.gather_table_stats(ownname => 'socct', tabname =>'tableName', estimate_percent =>100, cascade =>true, method_opt => 'for all columns size auto'); --清空缓存(共享池和数据缓存),Command window执行:
alter system flush shared_pool;
alter system flush buffer_cache;
Oracle查询索引碎片及数据表空间使用情况的更多相关文章
- oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全
表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...
- [转帖]Oracle 查询各表空间使用情况--完善篇
Oracle 查询各表空间使用情况--完善篇 链接:http://blog.itpub.net/28602568/viewspace-1770577/ 标题: Oracle 查询各表空间使用情况--完 ...
- Oracle转移数据表空间存储位置
问题描述:Oracle表空间创建到了C盘,发现C盘的空间不够,现在将表空间的文件转移到D盘下. 操作方法: 1. 先登录sqlplus,登录用户.在cmd中输入:sqlplus /nologSQL&g ...
- Oracle解决索引碎片功能
我们开始时向一个空的带索引的表中插入大量数据后,是不会产生碎片问题的,但是,数据库经过很长一段时间的增删改查后,难免会出现碎片问题,影响数据库的性能,Oracle对于这一问题有自己的解决方案. 下面介 ...
- [独孤九剑]Oracle知识点梳理(一)表空间、用户
本系列链接导航: [独孤九剑]Oracle知识点梳理(一)表空间.用户 [独孤九剑]Oracle知识点梳理(二)数据库的连接 [独孤九剑]Oracle知识点梳理(三)导入.导出 [独孤九剑]Oracl ...
- 分享知识-快乐自己:Oracle基本语法(创建:表空间、用户、授权、约束等)使用指南
Oracle12c 与 Oracle11g 创建用户时有差别.Oracle12C默认为 CDB模式 这时创建用户的时候需要加上 c## 开头:例如:c##MLQ. --说明--需求:创建表空间(MLQ ...
- Oracle 释放过度使用的Undo表空间
故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃: 问题分析:产生问题的原因主要以下两点: 1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况: ...
- PL/SQL创建数据表空间
创建数据表空间create tablespace stbss datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf' siz ...
- Oracle创建,删除用户与表空间
1.创建表空间与用户 a:创建数据表空间 create tablespace user_data logging datafile 'D:\oracle\product\10.2.0\oradata\ ...
随机推荐
- dll文件是什么
dll实际上是动态链接库的缩写,从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员是通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序 ...
- SCCM 2007日志
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ycrsjxy.blog.51cto.com/618627/203174 ...
- 不再折腾-----hadoop-1.2.1完全分布式安装
准备工作 三台虚拟机,强烈推荐vmware + centos6.5 三台虚拟机均设有hadoop用户 IP地址设置 IP地址 hostname 192.168.11.100 master 192.16 ...
- spring mvc拦截器和<mvc:annotation-driven />的详解
MVC的拦截器 经本人在Spring mvc中对方案1和方案2的测试表明,并没有拦截静态资源,所以可以放心使用方案1和方案2,方案3可以放弃,并且可以放心使用<mvc:annotation-dr ...
- Tomcat下安装solr6.x
1.官网上下载solr(http://lucene.apache.org/solr/)和tomcat(http://tomcat.apache.org/) 测试用到的版本:solr-6.2.1.apa ...
- SEO命令之”site“运用详解
一.“site”基本介绍: 都知道要想查询一个特定网站的收录状况一般会分为两种情况:一.结果中有返回数据,则表明该网站已被收录:二.如果返回数据为空,则该网站未被收录.如果是以前已被收录的,现在来查没 ...
- Appcan 3.2 Switch操作
Appcan3.0,有了很多不错的东西,但官方的文档还是那么的不靠谱. 我将记录下,我学习到的东西. 显示2个switch <div class="ub ub-pe"> ...
- Servlet路径跳转2--在servlet当中,跳转到某网页时的路径写法
课程1-13 http://www.imooc.com/video/5554 Servlet路径跳转: 绝对路径:放在任何地方都对的路径 相对路径:相对于当前资源的路径 两种方法:请求重定向,服务 ...
- sql 跨域
1. 开通分布式查询权限 reconfigure reconfigure 2. 查询 ',NETACS.dbo.tb_car) a select * from opendatasource('SQLO ...
- tornado autoreload 模式
在用tornado进行 网络程序编写的时候,肯定要对代码进行修修改改,如果每次都要重启server的话,会是很麻烦的事情.tornado提供了autoreload模式. 一,要开始autoreload ...