
正文
oracle表的高水位,oracle11g降低高水位线
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle数据库,怎么降低高水位线
在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会降低。具体来说,由于程序使用的delete语句不回收使用过的空间,数据虽然删除了,但是高水位线却没有降低,仍然处于之前的水位。
如果有备份恢复可以考虑从备份中恢复 如果没有备份 那么需要使用特殊手段 手动patch system.dbf 系统表空间上的数据字典 来绕过该问题。
如果确实数据量大,那必然要扩空间加数据文件。如果数据库高水位线过高,浪费空间,那就在线回缩高水位,然后清表。
相关问答
Q1: 很精辟的oracle高水位线,终于知道DELETE和TRUNCATE为什么不一样_百度...
1、在功能上,truncate是清空一个表的内容,它相当于delete from table_name。
2、delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发;truncate是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger。
3、truncate和delete的区别在于四个方面: 条件删除、 事务回滚、 清理速度、 高水位重置。因为delete是可以带WHERE的,所以支持条件删除;而truncate只能删除整个表。
4、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。
5、delete语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。
Q2: 如何绕过ORA-00701错误和降低bootstrap对象的高水位
如果有备份恢复可以考虑从备份中恢复 如果没有备份 那么需要使用特殊手段 手动patch system.dbf 系统表空间上的数据字典 来绕过该问题。
这个错误可能由回滚段或者redo log日志文件讹误引起。ORA-00600[4194]错误的根本原因是 redo记录与回滚段(rollback/undo)记录之间的不一致。
Q3: oracle删除数据后,空间不释放如何解决
修改默认的undo表空间。需要修改一下参数的把。修改完参数后。新的undo信息就会写到新的undo表空间了。
tables是存储某个tablespace(表空间)里面的,tablespaces可以包含多个dbf文件,你在硬盘里面可以查到dbf文件。表空间会随着包含的表内容增加而增大,但是不会随着table删除而减小。如果要增加剩余空间,需要先drop table ,再drop tablespace。
调整文件大小,查看当前数据库文件大小SELECT、FILE_NAME,BYTES、FROM、DBA_DATA_FILES;增大数据库文件大小ALTER、DATABASE、DATAFILE、filename、RESIZE、sizeM。
Q4: 什么是Oracle高水位线
High Water Mark,HWM) 是Oracle(Segment)级别的概念。在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会降低。
水位线(High Water Mark)在工程地质、岩土工程、水利水电工程等专业的地质剖面图等专业图件中表示地表水或地下水水位的线,称作水位线。线型为虚线,符号为▽下面加三条长度依次减小的线段。
水位线是在水箱里面的,水箱是供水和存水的地方,而在水箱内有一条定位线,称之为“水位线”。水位线是根据不同的用水量、水键高低和水箱容量来决定高低的。
解答拓展:因为oralce有一个HWM高水位,它是oracle的一个表使用空间最高水位线。
高水位线将被提高,以免过早引发另一次垃圾收集。高水位标记最初设置为命令行选项-XX:MetaspaceSize的值。[...]-XX:MetaspaceSize的默认大小取决于平台,范围从12 MB到大约20 MB。”MaxMetaspaceSize默认为-1,无限大。
oracle表的高水位的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle11g降低高水位线、oracle表的高水位的信息别忘了在本站进行查找喔。







