- 浏览: 126378 次
- 来自: ...
最近访客 更多访客>>
文章分类
最新评论
-
dwangel:
给messageSource设置属性
<property ...
Spring i18n的better practice(相对于appfuse) -
dwangel:
spring 的message tag有一个属性text,可以 ...
Spring i18n的better practice(相对于appfuse) -
sn201:
awk高级篇
有问题啊!有问题!有问题!有问题!有问题!
i ...
awk文本处理总结(入门,中级,高级) -
happy_javaboy:
...
Log4j日志管理系统简单使用说明
表压缩是如何工作的
在Orcle9i第2版中,表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的空间被称作符号表(symbol table)。被标识为要进行压缩的数据只存储在该符号表中,而不是在数据库行本身内。当在一个数据库行中出现被标识为要压缩的数据时,该行在该符号表中存储一个指向相关数据的指针,而不是数据本身。节约空间是通过删除表中数据值的冗余拷贝而实现的。
对于用户或应用程序开发人员来说,表压缩的效果是透明的。无论表是否被压缩,开发人员访问表的方式都是相同的,所以当你决定压缩一个表时,不需要修改SQL查询。表压缩的设置通常由数据库管理人员或设计人员进行配置,几乎不需要开发人员或用户参与。
1.表级别:
1.1 创建一个压缩表:
创建表时使用COMPRESS关键字,COMPRESS关键字指示Oracle数据库尽可能以压缩的格式存储该表中的行。
SQL> create table tmp_test
(id number,phone varchar2(20),create_time date)
compress;
1.2 修改现有表为压缩表:
SQL> alter table tmp_test compress;
取消表的压缩:
SQL> alter table tmp_test nocompress;
1.3 确定表是否被压缩:
确定一个表是否使用了压缩,查询user_tables,compression字段表明表是否被压缩.
SQL> select table_name,compression from user_tables where table_name not like 'BIN%';
TABLE_NAME COMPRESS
------------------------------ --------
CLASSES ENABLED
ROOMS ENABLED
STUDENTS DISABLED
MAJOR_STATS DISABLED
2.表空间级别:
2.1 创建表压缩空间:
可以在表空间级别上定义COMPRESS属性,既可以在生成时利用CREATE TABLESPACE来定义,也可以稍后时间利用ALTER TABLESPACE来定义。
与其他存储参数类似,COMPRESS属性也具有一些继承特性。当在一个表空间中创建一个表时,它从该表空间继承COMPRESS属性。
可以在一个表空间直接压缩或解压缩一个表,而不用考虑表空间级别上的COMPRESS属性。
2.2 使现有表空间转换为压缩表空间 SQL> alter tablespace sms default compress;
SQL> alter tablespace sms default nocompress;
2.3 确定是否已经利用COMPRESS对一个表空间进行了定义,可查询USER_TABLESPACES数据字典视图并查看DEF_TAB_COMPRESSION列
SQL> select tablespace_name,def_tab_compression from user_tablespaces;
TABLESPACE DEF_TAB_
---------- --------
USERS DISABLED
TEST DISABLED
UNDOTBS01 DISABLED
STATPACK DISABLED
3.向一个压缩的表中加载数据
注:当像上面那样指定compress时,其它表中(表空间)的数据并没有压缩,它只是修改了数据字典的设置;只有在向一个表中加裁/插入数据时,才会压缩数据.
只有在使用下面4种方法时,表中的数据才会被压缩存放:
-
直接路径的 sql*load
-
带有/*+ append*/的 insert语句
-
create table .. as select..
-
并行insert
4.压缩一个已经存在但并未压缩的表
使用alter table .. move compress使一个已存在但未压缩的表转换为压缩表.
SQL> alter table tmp_test move compress;
同样,也可以使用alter table.. move nocompress来解压一个已经压缩的表:
SQL> alter table tmp_test move nocompress;
5.压缩一个物化视图
使用用于压缩表的类似方式来压缩物化视图。
基于多个表的联接生成的物化视图通常很适于压缩,因为它们通常拥有大量的重复数据项。
SQL> create materialized view mv_tmp_test
compress
as
select a.phone,b.create_time from tmp_test a,recv_stat b
where a.id=b.id;
可以使用ALTER MATERIALIZED VIEW命令来改变一个物化视图的压缩属性。
当你使用此命令时,请注意通常是在下一次刷新该物化视图时才会进行实际的压缩。
SQL> alter materialized view mv_temp_test compress;
6.压缩一个已分区的表
在对已分区的表应用压缩时,可以有很多种选择。你可以在表级别上应用压缩,也可以在分区级别上应用压缩。
你可以利用ALTER TABLE ...MOVE PARTITION命令对此分区进行压缩
SQL> alter table tmp_test move partition create_200606 compress;
要找出一个表中的哪些分区被压缩了,可以查询数据字典视图USER_TAB_PARTITIONS
SQL>SELECT TABLE_NAME, PARTITION_NAME,COMPRESSION FROM USER_TAB_PARTITIONS;
7.压缩表的性能开销
一个压缩的表可以存储在更少的数据块中,从而节省了储存空间,而使用更少的数据块也意味着性能的提高。 在一个I/O受到一定限制的环境中对一个压缩的表进行查询通常可以更快速地完成,因为他们需要阅读的数据库数据块要少得多。
使用sql*load加载100万数据:
表名
|
行数
|
路径
|
是否是压缩的
|
消耗的时间
|
test_nocom
|
1000000
|
直接
|
非压缩的
|
00:00:21.12
|
test_comp
|
1000000
|
直接
|
压缩的
|
00:00:47.77
|
由此可以看出,向压缩表中加入数据的时间是正常表的一倍.加载压缩的表所需要的额外时间来自于在数据加载过程中所执行的压缩操作。
可以得出的结论是:在很少改变的表上使用压缩技术还是可以的.表中数据经常变动的情况下,尽量不要使用表压缩,它影响插入操作.
发表评论
-
Oracle性能调优-优化排序操作
2010-08-07 11:37 1181关于Oracle 10g性能方面,谈论最多的就是新的自动工作负 ... -
Oracle中的外连接简单介绍
2006-08-11 09:53 550在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。 s ... -
SQLServer和Oracle常用函数对比
2006-08-11 09:55 357SQLServer和Oracle是大家经常用到的数据库,在此感 ... -
Oracle SQL 内置函数大全
2006-08-24 10:37 549... -
Oracle PL/SQL入门之慨述
2006-09-05 21:14 533一、PL/SQL出现的目的 结构化查询语言(Structur ... -
Oracle:PL/SQL 中如何使用Array
2006-09-18 20:41 643因为在PL/SQL 中并没有数 ... -
java高级编程:基于JNDI的应用开发
2006-10-02 18:08 591基于JNDI的应用开发 ... -
开源技术之Tomcat数据源配置总结
2006-10-06 14:55 603成功配置环境Tomcat5.0.28+ ... -
Java调用存储过程
2006-10-11 14:22 623摘要:本文阐述了怎 ... -
JNDI配置原理详解
2006-10-11 14:55 676最近写书,写到JNDI,到 ... -
ORACLE SEQUENCE的简单介绍
2006-12-28 11:01 749在oracle中sequence就是所 ... -
oracle系统表查询
2007-07-30 17:03 574数据字典dict总是属于Ora ... -
JOB
2007-09-04 17:42 445var jobno number begin sys.db ... -
网络收集:PLSQL常用方法汇总
2007-10-18 14:03 740网络收集:PLSQL常用方法汇总 在SQLPLUS下,实现中- ... -
oracle pl/sql 创建同义词
2007-10-24 11:05 1367CREATE OR REPLACE Procedure Cre ... -
索引分析和比较
2007-11-21 10:20 740转自:http://tb.blog.csdn.net/Trac ... -
ORACLE索引与高性能SQL介绍
2007-11-21 15:05 490转自:http://blog.csdn.net/annicyb ... -
oracle动态游标的简单实现方法
2008-05-27 09:17 768下面就是例子程序 --明细表打印予处理 通用报表: pro ... -
Oracle触发器
2008-05-27 15:22 632是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用 ... -
Oracle体系结构之-Oracle中各种名称
2008-05-31 15:18 796一、数据库名 数据 ...
相关推荐
Oracle 压缩表表空间 Oracle 压缩表表空间是一种高效的存储技术,可以减少磁盘开销,节省空间,并在某些情况下提高查询性能。从 Oracle 9iR2 开始,Oracle 提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并...
Oracle 11g 图形创建实例、表表空间、dmp 导入命令详解 Oracle 11g 是一种关系型数据库管理系统,它提供了图形界面来创建实例、表表空间和导入 dmp 文件。本文将详细讲解如何使用 Oracle 11g 图形界面创建实例、...
oracle 建表表空间 工具 需要JDK1.5以上
生成更改表表空间归属的SQL脚本 ```sql SELECT 'ALTER TABLE ' || table_name || ' MOVE TABLESPACE ilearn;' FROM user_tables; ``` #### 6. 生成更改索引表空间归属的SQL脚本 ```sql SELECT 'ALTER INDEX ' || ...
4、自动解析oracle连接配置,支持不安装sqlplus备份oracle中某个用户的所有对象脚本,方便备份。 5.能够批量导出oracle用户下的重要的小表数据。 6.如果有用户下载此软件,可以通过QQ : 8767452 索取注册码。
多年积累的大量后台表名,2分贱卖啦! 节选示例如下,请自行判断是否有帮助!! ----值集 * fnd_flex_value_sets * fnd_flex_values * fnd_flex_values_vl ----弹性域 * fnd_id_flexs * fnd_id_flex_structures ...
在实际应用中,可能需要结合多种压缩技术,根据具体的数据特性以及对查找速度和空间效率的需求,设计出最优的散列存储表表项位宽压缩方案。同时,还需要考虑到解压缩的效率,确保在查询过程中不会成为性能瓶颈。此外...
导出oracle表为csv小工具(oracle2csv_64.exe) 一、oracle2csv_64.ini中 1、可自定义单字符分隔符:SEPARATOR 2、USERNAME,PASSWORD可为空,运行时提示输入 二、支持带参数运行,便于用批处理语句导出多个表 1、 -...
方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A);...尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据...
### Oracle EBS R11i CFS现金流量表系统用户手册关键知识点解析 #### CFS基本原理 **CFS系统概述:** Oracle Cash Flow Statement (CFS) 是Oracle E-Business Suite (EBS) 中的一个核心组件,用于帮助组织更好地...
企业报表表.xls
订单数据表表结构以及数据
订单数据表表结果以及数据
"Excel模板企业报表表.zip"这个压缩包,包含了一个名为"企业报表表.xls"的文件,我们可以从中探讨Excel在构建企业报表时的关键知识点。 首先,模板的重要性不言而喻。一个良好的Excel报表模板,不仅可以规范数据...
4. 教育评估:通过家长的反馈,评估学校的教育效果和改进空间。 【部分内容】:文档中可能包括以下部分: 1. 学生信息:包括学生的年级和班级,便于分类和反馈。 2. 班主任姓名:提供联系人信息,家长可以直接与班...
会计凭证抽查表表样.XLS
代理商信息登记表表.doc
砂试验汇总表表4.doc
4. 表空间命名:TBS开头,后跟表空间类型和子系统缩写代码及流水号,如系统表空间(固定为system),临时表空间(TEMP_nn),接口表表空间(TBS_INTF_xxxx[_nn]),资料表表空间(TBS_USR_xxxx[_nn]),清单表表空间...