oracle表水位线查询,Oracle表段中的高水位线HWM.

在Oracle数据的存储中,能够把存储空间遐想为一个水库,数据遐想为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter

mark,

HWM)。在数据库表刚发生的时候,由于未曾任何数据,因而这个时候水位线是空的,也即便说HWM为起码值。当插入了数据尔后,高水位线就会递升,然而这里也有一个个性,即便万一你批准delete语句剔除数据的话,数据固然被剔除非,然而高水位线却未曾减退,还是你刚才剔除数据过去那么高的水位。也即便说,这条高水位线在平时的增删垄断中只会递升,不会下跌。

下?**颐抢刺敢幌翺racle中Select语句的个性。Select语句会对表中的数据举行顺次扫描,然而究竟扫描多半点据存储块呢,这个并不是说数据库中有多半点据,Oracle就扫描这么大的数据块,而是Oracle会扫描高水位线以下的数据块。目前来遐想一下,万一刚才是一张刚才发生的空表,你举行了顺次Select垄断,那么由于高水位线HWM在起码的0位置上,因而未曾数据块必需被扫描,扫描工夫会极短。而万一这个时候你率先插入了一千万条数据,然后再用delete语句剔除这一千万条数据。由于插入了一千万条数据,因而这个时候的高水位线就在一千万条数据这里。尔后剔除这一千万条数据的时候,由于delete语句不波及高水位线,因而高水位线依旧在一千万条数据这里。这个时候再顺次用select语句举行扫描,固然这个时候表中未曾数据,然而由于扫描是按照高水位线来的,因而必需把一千万条数据的存储空间都要扫描顺次,也即便说这次扫描所必需的工夫和扫描一千万条数据所必需的工夫是一样多的。因而有时候有人总是经常说,怎么我的表中未曾几条数据,然而还是这么慢呢,这个时候其实秘密即便这里的高水位线了。

那有未曾措施让高水位线降落呢,其实有一种比拟容易的措施,那即便批准TRUNCATE语句举行剔除数据。批准TRUNCATE语句剔除一个表的数据的时候,相仿于重兴发生了表,不但把数据都剔除非,还把HWM给清空还原为0。因而万一必需把表清空,在有可能利用TRUNCATE语句来剔除数据的时候就利用TRUNCATE语句来剔除表,尤其是那种数据量有可能很大的临时存储表。

修正ORACLE表的高水位线

在ORACLE中,厉行对表的剔除垄断不会减退该表的高水位线。而全表扫描将始终读取一个段(extent)中所有低于高水位线符号的块。万一在厉行剔除垄断后不减退高水位线符号,则将导致查询语句的功能低下。下面的措施都能够减退高水位线符号。

1.厉行表重建号召 alter table table_name movewww.warsaw-mo.info;(在线迁移表空间ALTER TABLE … MOVE TABLESPACE … ALTER TABLE … MOVE 后面不跟参数也行, 不跟参数表还是在本来的表空间,move后记住重建索引 万一尔后还要继续向这个表添置数据,未曾必需move 只是释放出来的空间,只能这个表用,其他的表可能segment无法利用该空间 )2.厉行alter table table_name shrink space; 当心,此号召为Oracle 10g新增功能,在厉行该号召之前定然批准行挪动 alter table table_name enable row movement;3.复制要保留的数据到临时表t,drop原表,然后rename临时表t为原表4.emp/imp5.alter table table_name deallocate unused6.尽量truncate

我们会补益匪浅jzwaloe.com的正规的代码审查(codeinspection)是长进代码功德的最壮大的技巧之一,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 数据库水位线(High Water Mark,HWM)是指空间已分配但未使用的空间的最位置。水位线空间的空间利用率就越低,因此需要定期降低水位线来提空间的利用率。 降低水位线的方法取决于空间的类型和数据文件的类型。以下是一些常见的方法: 1. 对于数据文件在操作系统上的文件类型是数据文件(.dbf 文件),可以使用以下 SQL 语句来缩小数据文件并降低水位线: ```sql ALTER DATABASE DATAFILE 'file_name' RESIZE size; ``` 其,`file_name` 是要缩小的数据文件的名称,`size` 是缩小后的数据文件的大小。 2. 对于数据文件在操作系统上的文件类型是控制文件(.ctl 文件),可以使用以下 SQL 语句来缩小控制文件并降低水位线: ```sql ALTER DATABASE DATAFILE 'file_name' RESIZE size; ``` 其,`file_name` 是要缩小的控制文件的名称,`size` 是缩小后的控制文件的大小。 3. 对于空间使用自动扩展的方式,可以使用以下 SQL 语句来缩小空间并降低水位线: ```sql ALTER TABLESPACE tablespace_name SHRINK SPACE CASCADE; ``` 其,`tablespace_name` 是要缩小的空间的名称。`CASCADE` 关键字用于同时缩小空间的段,并释放未使用的空间。 需要注意的是,在缩小数据文件、控制文件或空间时,必须考虑数据文件的磁盘空间限制,以及数据库的性能影响。同时,缩小数据文件、控制文件或空间也会导致数据的移动和重组,可能会对数据库的性能产生一定的影响。因此,在进行这些操作之前,应该先备份数据库,并进行必要的测试和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值