当前位置:  数据库>oracle

Oracle数据库字典表优化小技巧

    来源: 互联网  发布时间:2017-04-20

    本文导语: 一、 字典表一般是比较常用的,可以设置这些表使用keep池。 先分析一下方案中的字典表,以便计算空间,简单起见,所有表都分析一下,调用存储过程: dbms_stats.gather_schema_stats(ownname=>'schema名称') 计算一下所需的空...

一、
字典表一般是比较常用的,可以设置这些表使用keep池。
分析一下方案中的字典表,以便计算空间,简单起见,所有表都分析一下,调用存储过程
dbms_stats.gather_schema_stats(ownname=>'schema名称')
计算一下所需的空间:
select sum(blocks)*8 from user_tables where name like 'DICT_%' escape '';
注:8是数据块的大小,8k,有的是4k。假定字典表是以DICT_开头的表。
得到所需空间的大小,单位为k,根据统计结果设置一下keep池的大小。keep池默认是0,不启用。
alter system set db_keep_cache_size=80m;







二、
一般系统里的字典表都是比较稳定的,不常修改的,因此可以设置pctfree为0,可节省空间、提高访问速度。

针对以上两个优化思路,写了个简单的存储过程,仅在测试库上测试了一下,如果数据量巨大、存储空间紧张,请谨慎使用。
CREATE OR REPLACE procedure KeepDictTab is
/******************************************************************************
2012-01-04设置小表的pctfree为0、且使用keep池,提高效率
******************************************************************************/
begin
    for rec_tab in (select table_name from user_tables where table_name like 'DICT_%' escape '') loop
        execute immediate 'alter table ' || rec_tab.table_name ||' pctfree 0 storage (buffer_pool keep)';
        execute immediate 'alter table ' || rec_tab.table_name || ' move tablespace tbs2';
        --切换表空间,可使用新存储特性保存数据,切换后,重建一下索引,不然移不回来了。
        for rec_idx in (select index_name from user_indexes where table_name =rec_tab.table_name) loop
            execute immediate 'alter index '||rec_idx.index_name ||' rebuild';
        end loop;
        --切换回原来的表空间,再重建一下索引       
        execute immediate 'alter table ' || rec_tab.table_name || ' move tablespace tbs1';
        for rec_idx in (select index_name from user_indexes where table_name =rec_tab.table_name) loop
            execute immediate 'alter index '||rec_idx.index_name ||' rebuild';
        end loop;
        --分析表
        execute immediate 'analyze table ' || rec_tab.table_name || ' estimate statistics';
    end loop;



















    for rec_idx in (select index_name from user_indexes where table_name like 'DICT_%' escape '') loop
        --分析相关的索引
        execute immediate 'analyze index '||rec_idx.index_name ||' estimate statistics';
    end loop;
end KeepDictTab;
/




设置完成后,可以用执行计划看一下,读取的数据块有所减少,COST有所降低、速度有一点点儿变快。


    
 
 

您可能感兴趣的文章:

  • Oracle 数据字典文档
  • Oracle的数据字典技术简析
  • Hibernate Oracle sequence的使用技巧 iis7站长之家
  • 四大方面详细介绍 Oracle 的数据字典
  • Oracle数据字典的学习总结
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 关于JDBC连接Oracle数据库,是否必须有Oracle客户端
  • ORACLE数据库常用字段数据类型介绍
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
  • Oracle发布Oracle SQL Developer 1.2数据库开发工具 帮助用户简化开发工作
  • 怎样调出ORACLE数据库中的数据,该如何连接?
  • Oracle收购TimesTen 提高数据库软件性能
  • 卸载oracle数据库
  • Oracle数据库恢复后心得
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle数据库运行Oracle form时避免出现提示信息
  • Oracle欲收购开源数据库MySQL未果
  • 如何在JBuilder中连接Oracle数据库?
  • Oracle数据库访问参数文件的顺序
  • 循序渐进学习Oracle数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 技巧学习笔记
  • 技巧分享 删除Oracle10G中的垃圾表
  • Oracle 数据库操作技巧集
  • [小技巧]手工扩大Oracle数据库表空间的方法
  • Oracle认证的技巧
  • Oracle技巧分享
  • ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
  • 小技巧 Oracle杀死死锁进程问题的解决
  • 技巧学习 在Python环境下连接Oracle数据库
  • Oracle 建立临时表语法及使用技巧
  • 技巧分享 Oracle数据库的启动和关闭
  • Oracle Form中COMMIT的概述及使用技巧
  • Hibernate Oracle sequence的使用技巧
  • 保持Oracle数据优良性能的技巧分享
  • oracle数据库自动备份技巧
  • oracle—SQL技巧之(一)连续记录查询sql案例测试
  • Oracle数据库的空间管理技巧
  • oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起
  • oracle 索引的相关介绍(创建、简介、技巧、怎样查看) .
  • Oracle数据库中的字符处理技巧总结
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • ORACLE日期相关操作


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,