oracle
主页 > 数据库 > oracle >

Oracle删除大量表记录操作介绍

2022-09-27 | 佚名 | 点击:

删除表数据操作

清空所有表记录:

1

TRUNCATE TABLE your_table_name;

或者批量删除满足条件的表记录:

1

2

3

4

5

6

7

BEGIN

  LOOP

    DELETE FROM your_table_name WHERE rownum <= 50000;

      EXIT WHEN SQL%ROWCOUNT = 0;

   COMMIT;

 END LOOP;

END;

释放表空间

存放大数据量的表,其表空间占用也比较大,删除数据后并不会自动释放这些记录占用的表空间,所以,即便表里面数据量很少,查询效率依旧很慢,所以,需要释放表空间。

1

2

-- 查询数据表占用的表空间大小

SELECT sum(bytes)/(1024*1024) FROM user_segments WHERE segment_name='YOUR_TABLE_NAME'; --注意,表名必须大写

说明:sum(bytes)/(1024*1024) 数据统计单位由Byte转为GB

1

2

--整理碎片,释放已删除记录占用的表空间

ALTER TABLE your_table_name MOVE;

重建索引

释放了表空间以后表的ROWID会发生变化,基于ROWID的索引会失效,此时就需要重建索引

1

2

3

4

5

6

--重建非分区索引

ALTER TABLE your_table_index REBUILD [ONLINE] [NOLOGGING];

 

--重建分区索引

--针对分区索引-非组合索引

ALTER INDEX your_table_index REBUILD PARTITION your_partition_name [ONLINE] [NOLOGGING];

注意:

1

2

3

4

5

6

7

8

9

10

11

--重建分区索引-非组合索引

SELECT 'ALTER INDEX ' || index_owner || '.' ||index_name ||' REBUILD PARTITION ' || partition_name || ' NOLOGGING;' 

FROM dba_ind_partitions 

WHERE index_owner = 'INDEX_OWNER_NAME'  --可选查询条件,注意,如果指定该条件,索引拥有者必须大写

AND index_name = 'YOUR_INDEX_NAME'; --注意,索引名称必须大写

 

--重建分区索引-组合索引  

SELECT 'ALTER INDEX ' || index_owner || '.' ||index_name ||' REBUILD SUBPARTITION ' || subpartition_name || ' NOLOGGING;' 

FROM dba_ind_subpartitions

WHERE index_owner = 'INDEX_OWNER_NAME' --可选查询条件,注意,如果指定该条件,索引拥有者必须大写

AND index_name = 'YOUR_INDEX_NAME'; --注意,索引名称必须大写

针对非分区索引,如果清理的表比较多,或者不知道被清理的表拥有哪些索引,可以使用以下SQL查询并生成对应的重建索引SQL

1

2

3

4

SELECT concat(concat('ALTER INDEX ', INDEX_NAME), ' REBUILD;')

FROM all_indexes

WHERE owner='INDEX_OWNER_NAME' --可选查询条件,注意,如果指定该条件,索引拥有者必须大写

AND table_name IN('TABLE_NAME1 ','TABLE_NAME2', '...', 'TABLE_NAMEN')--注意,表名必须大写

分析表

分析表,是为了使基于CBO的执行计划更加准确,在一定程度上能带来一些性能提升

1

2

3

4

ANALYZE TABLE table_name COMPUTE STATISTICS;

 

--等价于

ANALYZE TABLE table_name COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL COLUMNS;

说明:生成的统计信息的存放位置:

原文链接:https://www.cnblogs.com/shouke/p/16706285.html
相关文章
最新更新