当前位置:首页 » 文件管理 » 压缩表

压缩表

发布时间: 2022-01-10 07:59:06

‘壹’ 固体间能被压缩表明

任何物体都能被压缩,这表明组成物质的分子之间存在斥力;固体和液体很难被压缩,这又表明分子之间存在斥力.
故答案为:斥力;斥力.

‘贰’ 在oracle中,为什么要把新建的表做压缩处理

你说的是创建压缩表吧.
压缩表的主要作用是:通过消除在数据库块中的重复数据来实现空间节约
实现原理:比较数据块中包含的所有字段或记录,其中重复的数据只在位于数据块开始部分的记号表(Symbol Table)中存储一份,在其他行或字段出现同样的数据时,只记录一个指向记号表中相关数据的指针。
命令:
创建压缩表:
create table haha(
......
) compress;
alter table haha compress;
alter table haha nocompress;

‘叁’ 如何压缩word中的表格数据急急急~在线等~

方法一、选中整个表格,点击“格式”菜单中的字号,将字体缩小,整个表格就会缩小。
方法二、将光标放到表达任意两行之间时,光标会变成一个上下相对的双箭头,按住鼠标左键向上拖动,缩小行间距。如果想每行的高度一致,选中整个表格,在上面单击右键,在弹出的菜单中左键单击“平均分布各行”即可将每行高度调整一致。
方法三、点击“文件”菜单,点击“页面设置”,在弹出的“页面设置对话框”中,将“页边距”中的上下边距的数字缩小,必要时在“版式”标签下,将“页眉页脚”的数值也缩小。
以上方法可同时使用,直到压缩到一页为止。

‘肆’ oracle 压缩表空间有什么作用

主要是节省空间,不过查询的时候貌似更消耗cpu资源,对历史数据比较适合。

‘伍’ 邮件里的附件压缩表格打开后是乱码提示请看图片。请问是怎么回事

那是你发给的人的文档有问题,文件被损坏了

‘陆’ 我用word做了一张表格,要打印出来,但是超出了一张,怎样压缩表格大小,使它可以在一张纸上打印出来

你把页边距设置小点不就完事了。在打印预览里,显示边距,你按住上边距,往上拖一点,表格就上去了啊。你用那么大的边也没什么用。下边距也是可调的。

‘柒’ oracle11g怎么建立压缩表

在数据量变的很大的情况下,可以考虑表压缩,减少磁盘的存储,减少buffer cache的消耗,加快查询的速度,压缩需要在数据加载和dml的时候消耗一些cpu.表压缩对于应用是透明的。

你可以在表空间,表或分区级别指定压缩,如果在表空间级别指定压缩,那么这个表空间中的所有表默认都是压缩的。

压缩会发生在数据插入,更新或批量加载到表时。有几种类型的压缩。基本的,oltp的,dss的,归档的。他们的cpu消耗见文档。

当使用基本压缩,数据仓库压缩,或归档压缩的时候,压缩仅仅是在批量加载到一个表的时候发生。当你使用了oltp压缩,压缩发生在数据插入,更新,批量加载。

如果你使用了alter table命令让表启用压缩,那么对于已存在的数据是不受影响的,只有在启用压缩后的插入,或更新会受影响。也可以使用ALTER TABLE…NOCOMPRESS将一个表设置成非压缩,对于已经的压缩的表是没有影响的,压缩的数据还是压缩的,只是新插入的数据是不被压缩。

创建一个oltp压缩类型的表
CREATE TABLE orders … COMPRESS FOR OLTP;

如果你不指定压缩的类型,那么默认的情况下是基本压缩类型。下面的2个语句是等价的。
CREATE TABLE sales_history … COMPRESS BASIC;

CREATE TABLE sales_history … COMPRESS;

下面的表是一个数据仓库压缩类型的表,对于经常查询,并且没有dml的表适用。
CREATE TABLE sales_history … COMPRESS FOR QUERY;

创建一个归档压缩类型的表
CREATE TABLE sales_history … COMPRESS FOR ARCHIVE;

表可以包含压缩和非压缩的分区,并且不同的分区的压缩的类型可以是不同的,如果在分区上指定的压缩的类型与表上指定的压缩的类型不同,那么分区上的优先。

查看表是否是压缩的,及分区是否是压缩的。
sql> SELECT table_name, compression, compress_for FROM user_tables;

SELECT table_name, partition_name, compression,compress_for
FROM user_tab_partitions;

查看表中的行是什么压缩类型
SELECT DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(
ownname => ‘HR’,
tabname => ‘EMPLOYEES’,
row_id => ‘AAAVEIAAGAAAABTAAD’),
1, ‘No Compression’,
2, ‘Basic or OLTP Compression’,
4, ‘Hybrid Columnar Compression for Query High’,
8, ‘Hybrid Columnar Compression for Query Low’,
16, ‘Hybrid Columnar Compression for Archive High’,
32, ‘Hybrid Columnar Compression for Archive Low’,
‘Unknown Compression Type’) compression_type
FROM DUAL;

修改压缩的级别

如果表是分区表,使用在线重定义可以修改表的压缩级别。如果表是分分区表,那么可以使用alter table ..move.. compress for语句修改表的压缩级别,这个语句会阻塞dml操作。

对于压缩表的限制:
1基本压缩,你不能为添加的列指定默认的值。删除列是不被支持的。
2oltp压缩,如果要添加一个带默认值的列,那么需要指定not null,可以删除列,但是数据只是在内部做了一个不被使用的标记而已。

3在线段收缩是不被支持的。

4上面的压缩的方式不适合于lobs类型,他们有自己的压缩方式。

5基本压缩类型的表的pct_free参数自动的设置成0.

在上面的描述中可以看到对于基本类型的压缩,没有使用直接路径插入的行及更新的行是不会被压缩的。对于我们的oltp系统基本是没有用处的,只测试下oltp的压缩方式,这种方式对于没有使用直接路径插入的行及被更新的行都会压缩。

SQL> select count(*) from xyu2;

COUNT(*)

22096384

SQL> set serveroutput on
SQL> exec show_space(‘BAIXYU2’,’T’,’AUTO’);
Total Blocks……………………….334336
Total Bytes………………………..2738880512
Unused Blocks………………………1916
Unused Bytes……………………….15695872
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….671872
Last Used Block…………………….6276

CREATE TABLE xyu3 COMPRESS FOR OLTP as select * from xyu2;

SQL> exec show_space(‘BAIXYU3’,’T’,’AUTO’);
Total Blocks……………………….107520
Total Bytes………………………..880803840
Unused Blocks………………………112
Unused Bytes……………………….917504
Last Used Ext FileId………………..4
Last Used Ext BlockId……………….116224
Last Used Block…………………….912

看到使用的块由33w下降到10w。压缩效果还是不错,但是是否使用还要结果上面的限制来根据实际情况评估。

‘捌’ 如何收缩表空间

1. 查看当前用户每个表占用空间的大小:
select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name;
2. 查看当前用户占用大于10M的表间的大小:
select segment_name,sum(bytes)/1024/1024 from User_Extents group by segment_name having sum(bytes)/1024/1024>10;
3. 确保该表支持行移动。如果不支持,您可以使用如下命令来支持它:
alter table 表名 enable row movement;
您还要确保在该表上禁用所有基于行 id 的触发器,这是因为行将会移动,行 id 可能会发生改变。
4. 您可以通过以下命令重组该表中现有的行:
alter table 表名 shrink space compact;
该命令将会在块内重新分配行,如图 1 所示,这就在 HWM 之下产生了更多的空闲块 — 但是 HWM 自身不会进行分配。

图 1:重组行后的表中的块
在执行该操作后,让我们看一看空间利用率所发生的改变。使用在第一步展示的 PL/SQL 块,可以看到块现在是如何组织的:
FS1 Blocks = 0 Bytes = 0 FS2 Blocks = 0 Bytes = 0 FS3 Blocks = 1 Bytes = 0 FS4 Blocks = 0 Bytes = 0 Full Blocks = 2 Bytes = 16384
注意这里的重要改变:FS4 块(具有 75-100% 的空闲空间)的数量现在从 4,148 降为 0。我们还看到 FS3 块(具有 50-75% 的空闲空间)的数量从 0 增加到 1。但是,由于 HWM 没有被重置,总的空间利用率仍然是相同的。

var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);

但是需要注意的:某些表(如runfile,因为特殊字段),不能继续运行;

5. 我们可以用如下命令检查使用的空间:
select blocks from user_segments where segment_name=upper(表名);
由该表占用的块的数量 (4,224) 仍然是相同的,这是因为并没有把 HWM 从其原始位置移开。
6. 可以把 HWM 移动到一个较低的位置,并用如下命令回收空间:
alter table 表名 shrink space;
注意子句 COMPACT 没有出现。该操作将把未用的块返回给数据库并重置 HWM。
可以通过检查分配给表的空间来对其进行测试: 块的数量从 4,224 降为 8;该表内所有未用的空间都返回给表空间,以让其他段使用,如图 2 所示。

图 2:在收缩后,把空闲块返回给数据库
这个收缩操作完全是在联机状态下发生的,并且不会对用户产生影响。
7. 也可以用一条语句来压缩表的索引:
alter table 表名 shrink space cascade;
8. 联机 shrink 命令是一个用于回收浪费的空间和重置 HWM 的强大的特性。我把后者(重置 HWM)看作该命令最有用的结果,
因为它改进了全表扫描的性能。

‘玖’ MYSQL表压缩和整理

MYSQL表压缩和整理如下:
633M -rw-rw---- 1 mysql mysql 632M Oct 25 17:51 url_comment_0.ibd 12K -rw-rw---- 1 mysql mysql 8.7K Oct 25 18:16 url_comment_0.frm 178M -rw-rw---- 1 mysql mysql 178M Oct 25 18:53 url_comment_0.MYD 99M -rw-rw---- 1 mysql mysql 98M Oct 25 18:53 url_comment_0.MYI
结论:由上面数据可知innodb plugin能有效压缩innodb数据文件,近50%,另外相同的情况下使用MyISAM表也可较大的减少数据大小(178+99<633M).
当然实际的压缩比例和表的结构等有关,如字段为varchar会有较大的压缩比,而int类型压缩率会低些。

‘拾’ sql 频繁的压缩表 有没有影响

没有影响,只不过正在压缩表时,数据库运行很慢,对这个表的其他操作会卡死。

热点内容
邮政工会卡初始密码是什么 发布:2024-11-13 09:39:37 浏览:507
SQL传入变量 发布:2024-11-13 09:36:38 浏览:462
tc算法 发布:2024-11-13 09:30:37 浏览:965
python2712 发布:2024-11-13 09:30:15 浏览:634
smsforandroid 发布:2024-11-13 09:20:22 浏览:676
如何查找公司邮件服务器与端口 发布:2024-11-13 08:55:12 浏览:531
pythonrequests文件 发布:2024-11-13 08:52:27 浏览:223
速腾安卓大屏什么牌子好 发布:2024-11-13 08:49:59 浏览:665
黑岩上传 发布:2024-11-13 08:49:18 浏览:34
Python高清 发布:2024-11-13 08:41:20 浏览:738