更新网站 seo,福州抖音seo,网站后缀 .cgi,wordpress电影影视主题公园最近遇到oracle 表中数据量很大查询和更新比较慢 需要删除#xff0c;发现删除后查询速度还是很慢#xff0c;原来是delete oracle 高水位没有下降的最近遇到Oracle 表中数据量很大查询和更新比较慢 需要删除#xff0c;发现删除后查询速度还是很慢#xff0c;原来是delete…最近遇到oracle 表中数据量很大查询和更新比较慢 需要删除发现删除后查询速度还是很慢原来是delete oracle 高水位没有下降的最近遇到Oracle 表中数据量很大查询和更新比较慢 需要删除发现删除后查询速度还是很慢原来是delete oracle 高水位没有下降的原因。在oracle里,使用delete删除数据以后数据库的存储容量不会减少而且使用delete删除某个表的数据以后查询这张表的速度和删除之前一样不会发生变化。因为oralce有一个HWM高水位它是oracle的一个表使用空间最高水位线。当插入了数据以后高水位线就会上涨但是如果你采用delete语句删除数据的话数据虽然被删除了但是高水位线却没有降低还是你刚才删除数据以前那么高的水位。除非使用truncate删除数据。那么这条高水位线在日常的增删操作中只会上涨不会下跌所以数据库容量也只会上升不会下降。而使用select语句查询数据时数据库会扫描高水位线以下的数据块因为高水位线没有变化所以扫描的时间不会减少所以才会出现使用delete删除数据以后查询的速度还是和delete以前一样解决方案1.首先导出表然后truncate这张表最后导入这张表。2.在存储空间当中移动表但是由于rowid会被打乱所以需要重建索引.3.如果是oracle 10g.可是直接更新表的高水位线。对应的SQL9i中create table aa_bak as select * from aa where record_time sysdate - 10;truncate table aa;insert into aa select * from aa_bak;drop table aa_bak;10g 版本alter tablename enable row movement;alter tablename shrink space;实战select count(*) from wlkp_fp_kj查询结果显示2301245 条记录我们需要删除一部分数据删除之前我们先查看表的高水位线(wlkp_fp_kj 是张分区表)SELECT segment_name, segment_type, blocks FROM dba_segments WHERE segment_name WLKP_FP_KJ本文原创发布php中文网转载请注明出处感谢您的尊重