在一个数据库使用下面SQL找出了一批需要降低高水位线的表,其中有几个表没有数据,于是我打算用TRUNCATE来降低高水位线HWM SELECT a.owner,        a.segment_name,        a.segment_type,        a.tablespace_name,        a.blocks              "real block",        a.bytes / 1024 / 1024 "realSizeMB&quo…
硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter table table_name deallocate unused 均不可解决] 解决方法: --delete/truncate删除,释放表空间.降低高水位线.resize释放磁盘空间相关优化汇总--查询DBF文件.数据库空间.高水位线占用情况 select /*+ ordered use_hash(a…
如果我们查询了一条SQL语句,这条SQL语句进行了全表扫描,那到底是扫描了多少个数据块呢?是表有多少数据,就扫描多少块吗?不是的.而是扫描高水位线一下的所有块.有的时候有人经常说,我的表也不大呀,怎么查询了这么久,其实奥秘就是高水位线了. 在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值.当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那…
以下是在centos7版本上做测试 使用如下命令查看磁盘使用情况 ls -lh 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 2.9M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/fedora-root 60G 46G 12G 81% / tmpfs 3.9G 400K 3.9G 1…
背景 接到用户申告,新毕业的兄弟不小心把数据库中的3个关键表给truncate了,由于这个业务还在测试阶段,系统没有任何形式的备份. 客户的OS平台是windows平台,数据库是Oracle9207 对于这种情况,尝试了使用AUL来进行恢复.这里解释其中一个表(xm_fxl)的恢复 恢复前的准备一 1.到www.anysql.net下载AUL软件.如果数据文件小于512M的话,这个软件是可以free使用的 2.控制文件:控制文件AUL和DUL一样,是需要一个控制文件(orcl.dul)来告诉它,…
高水位的介绍 数据库运行了一段时间,经过一些列的删除.插入.更改操作有些表的高水位线就有可能和实际的表存储数据的情况相差特别多,为了提高检索该表的效率,建议对这些表进行收缩: 查找高水位线的表 查找表需要的存储空间:表以数据块的形式存储在数据文件中,表的存储结构是:行×行数,如果知道了总共有多少行,每行的平均长度,两者相乘,再除于90%的使用率,那么就可以知道实际需要存储的空间: 表的存储结构; 从统计信息得出平均每行的长度和总共的行数,从而知道存储的SIZE: 查找表实际存储的空间:数据实际存…
Oracle 执行语句插入临时表报表空间不足,在增加表空间到最大后依然报错,经分析应该为创建的临时表水位线未清除导致,查询降低水位线方法如下: 原文地址:http://blog.itpub.net/26736162/viewspace-2139546/ Oracle  降低高水位线的方法 高水位(HIGH WARTER MARK,HWM)好比水库中储水的水位,用于描述数据库中段的扩展方式.高水位对全表扫描方式有着至关重要的影响.当使用DELETE删除表记录时,高水位并不会下降,随之导致的是全表扫…
概念: 三者均可删除数据表 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项.TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放. TRUNCATE TABLE 删除表中的所有行,但表结构及其列.约束.索引等保持不变.新行…
背景 因项目需求,需要清理一批旧数据,腾出空间给新数据,让同事负责这件事.料想会很顺利,但很快找到我,并告知在postgresql中把一张大的数据表删除掉了,查询表的size并没有改变. 我震惊了,问他怎么删除数据表的数据的,他告诉我使用"DELETE FROM table",然后使用下面的语句进行查询 --数据库中单个表的大小(不包含索引) select pg_size_pretty(pg_relation_size('表名')); --查出所有表(包含索引)并排序 SELECT t…
http://blog.csdn.net/wyzxg/article/details/8626814 http://blog.itpub.net/22664653/viewspace-750408/ 用于产生从某个数到另外一个数之间的所有整数 例一: # seq 结果是1 例二: #!/bin/bash `; 步长为1 终值:10 起始值:1 do echo $i; done 或者用 ) 也可以 seq -f, --format=FORMAT use printf style floating-…