`

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

阅读更多
一、
字典表一般是比较常用的,可以设置这些表使用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有所降低、速度有一点点儿变快。
2
0
分享到:
评论

相关推荐

    Oracle数据库学习指南

    Oracle2: 1. 《Oracle8 优化技术》摘录 (第一章 安装) 2. 《Oracle8 优化技术》摘录 (第二章 内存-CPU) 3. 《Oracle8 优化技术》摘录 (第三章 输入-输出) 4. EXP、IMP 命令详解 ...52. 自动备份Oracle数据库

    Oracle数据库性能的优化设计.pdf

    Oracle数据库性能优化设计是数据库管理员和开发人员关注的重要议题,特别是在大型企业级应用中,数据库性能直接影响到系统的响应速度和用户体验。Oracle数据库作为一款广泛使用的高性能关系型数据库系统,其性能优化...

    Oracle数据库管理员技术指南

    1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库的注意 事项 1.6.3 怎样建立自己的定制数据库创建 脚本 1.6.4 如何从已有数据库克隆数据库 1.6.5 怎样利用 Database Configuration ...

    Oracle数据库命令及配置文件.rar

    数据字典是Oracle数据库内部维护的一系列系统表和视图,用于存储元数据,即关于数据库自身的数据。常用的数据字典视图有: 1. **DBA_OBJECTS**:列出所有对象的信息,如对象类型、所有者、状态等。 2. **DBA_TABLES*...

    oracle数据库开发面试必备

    ### Oracle数据库开发面试必备知识点详解 #### 一、Oracle SQL查询优化 ...以上内容涵盖了Oracle数据库开发过程中的一些常见知识点,希望能帮助你在面试中更加自信,并在实际工作中应用这些知识来优化数据库性能。

    查看ORACLE 数据库及表信息.pdf

    在Oracle数据库管理中,了解如何查询和...这些查询技巧对于日常的Oracle数据库管理和性能监控非常有用,可以帮助管理员更好地理解和优化数据库资源的使用。同时,理解并熟练运用这些SQL语句能够提升数据库管理的效率。

    Oracle数据库优化

    Oracle数据库优化是一个复杂而关键的任务,它涉及到一系列策略和技巧,旨在提高数据库性能,降低资源消耗,提升代码执行效率。以下是一些针对Oracle数据库优化的关键点: 1. 减少数据库访问次数:频繁的数据库访问...

    Oracle数据库基础知识

    ### Oracle数据库基础知识详解 #### 一、Oracle数据库概述 ...此外,随着技术的发展,Oracle数据库也在不断更新和优化,学习者应持续关注Oracle官方发布的新版本和技术文档,以保持知识的最新性和实用性。

    Oracle之路与数据库优化

    Oracle数据库作为全球最广泛使用的商业数据库管理系统之一,其性能优化技巧和策略对于提升整体业务效率至关重要。 在"Oracle之路"的学习过程中,我们首先要理解Oracle数据库的基本架构,包括数据存储、查询处理、...

    oracle数据库培训纲要

    Oracle数据库培训纲要旨在帮助学员深入理解和掌握Oracle数据库的核心概念、架构、性能调优方法以及相关的管理技巧。以下是对课程内容的详细解析: 1. **Oracle数据库体系结构**: - 物理结构:理解Oracle数据库...

    Oracle数据库实验操作

    ### Oracle数据库实验操作知识点 #### 第一部分:SQL基础 ##### 基本查询语句 - **实验1:** 编写一个简单的SQL查询语句,用于查询表中的所有行和所有列。例如: ```sql SELECT * FROM 表名; ``` - **实验2:**...

    Oracle 9i10g 数据库管理详细

    ### Oracle 9i/10g 数据库管理详细知识点 #### 一、Oracle 9i/10g 概述 - **Oracle 9i** 和 **Oracle 10g** 是Oracle公司推出的两个...通过深入学习这些内容,可以更好地理解和掌握Oracle数据库的管理和运维技巧。

    Oracle数据库基础知识(国内某头部大厂内部培训资料).doc

    Oracle数据库是全球广泛使用的大型关系型...这份内部培训资料将为学习者提供一个全面了解Oracle数据库的起点,通过深入学习,可以掌握数据库的基本操作、管理和优化技巧,为进一步的数据库开发和管理工作奠定坚实基础。

    Oracle数据库基础知识 ISSUE1.0.doc

    通过以上对Oracle数据库基础知识的深入解析,我们不仅了解了Oracle数据库的架构和管理,还掌握了其在网络应用中的配置方法,以及一系列实用的数据库管理技巧。这为我们在实际工作中高效地使用和管理Oracle数据库提供...

    基于Oracle的数据库技术实验报告

    在本实验报告中,我们探讨了Oracle数据库管理系统中的一些基本操作,主要涵盖了表空间的创建、数据字典的查看以及数据库对象(如表、同义词、PL/SQL程序块、游标、存储过程和触发器)的创建与管理。首先,我们将详细...

Global site tag (gtag.js) - Google Analytics