按用户批量重建索引:
按用户将此用户下面非临时表上面的索引全部重建,此过程建议在SYS用户下面执行:
CREATE OR REPLACE PROCEDURE BATCH_REBUILD_INDEX(USER_NAME IN VARCHAR2) IS
S_SQL VARCHAR2(500);
ACCOUNT NUMBER := 0;
BEGIN
FOR LINE2 IN (SELECT T.OWNER, T.INDEX_NAME
FROM ALL_INDEXES T
WHERE T.OWNER = UPPER(USER_NAME)
AND T.TABLE_TYPE = 'TABLE'
AND T.TEMPORARY = 'N'
AND T.INDEX_TYPE = 'NORMAL') LOOP
S_SQL := 'alter index ' || LINE2.OWNER || '.' || LINE2.INDEX_NAME ||
' rebuild';
ACCOUNT := ACCOUNT + 1;
EXECUTE IMMEDIATE S_SQL;
END LOOP;
DBMS_OUTPUT.PUT_LINE(ACCOUNT);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END BATCH_REBUILD_INDEX;
过程在SYS用户下面创建完成后,用下面的代码调整创建好的存储过程:
begin
-- Call the procedure
batch_rebuild_index(user_name => 'hs_user'); --输入用户名
end;
摘至:http://mingyue19850801.blog.163.com/blog/static/19520820201081345043380/
分享到:
相关推荐
oracle、sqlserver数据库批量删建索引,方便好用,提高数据库查询效率,提升系统运行效率,特别是数据量比较大的情况下
快速重建索引的一种有效的办法,因为使用现有索引项来重建新索引,如果客户操作时有其他用户在对这个表操作,尽量使用带online参数来最大限度的减少索引重建时将会出现的任何加锁问题,alter index index_name ...
NULL 博文链接:https://hackpro.iteye.com/blog/1845366
索引操作的完整,特别对于索引的相关验证介绍非常实用,在重建索引时可以提供给使用者完整的操作方法。
导致索引失效: 1、表上频繁发生update,delete操作; 2、表上发生了alter table ..move操作(move操作导致了rowid变化)。
oracle 用户 全部 索引 all index sql
oracle在线创建索引和重组索引。
Oracle在线建立超大表的索引,为在线生产系统某核心大表建立索引
如何重建索引如何重建索引如何重建索引如何重建索引如何重建索引
创建学员信息表--创建唯一索引--修改学员信息表添加主键和检查约束
虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。
索引重建是一个争论不休被不断热烈讨论的议题。当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这...
oracle 存储过程批量提交
oracle删除和重建实例
kettle快速加载到oracle之oracle批量加载-Oracle Bulk Loader
oracle不走索引可能原因
Oracle PPT 文档\数据库索引和视图.ppt 。
oracle按用户导入导出数据
利用.net 语言编程实现对Oracle数据的批量的导入功能
ORACLE 分区表 分区索引 索引分区 实例讲解