oracle删除表空间数据多了后程序运行慢

Oracle删除大量表空间数据,程序运行缓慢。

数据量大,速度慢。
索引和约束,慢。
正在记录,慢。
表空间没有释放,速度慢。

批量删除。
禁用索引和约束。
使用 TRUNCATE 而不是 DELETE。
释放表空间并重建索引。
调整参数。

这么快。

oracle怎么清理表空间

oracle数据库怎么删除表空间

上周,一位客户来看我。
他的 Oracle 库中有很多无用的表空间,他想删除它们以腾出空间。
我和他讨论过这个问题,有两种不同的情况。

空表空间可以直接删除
只需使用PL/SQL Developer或SQLPlus连接数据库即可。
无论如何,我在上海的上一个项目中,我使用了SQLPlus进行直接连接。
首先检查您正在连接的用户以及您是否具有 droptablespace 权限。
如果没有权限,找更高级的用户,比如sys,授予权限。
或者你可以直接操作用户sys。
然后执行DROP TABLESPACE xxx;。
例如,如果我想删除名为“mytest_ts”的表空间,只需 DROP TABLESPACE mytest_ts; 即可。

小心有数据的表空间
这样就更麻烦了。
您使用 DROP TABLESPACE xxx INCLUDE CONTENTS AND DATA FILES;删除。
INCLUDE THIS CONTENT AND DATA FILE 是关键,否则无法删除。
2 02 2 年我在北京处理过一个案例,表空间中有数据,但是客户端忘记添加CONTENT AND DATA FILE,直接执行命令,然后报ORA-01 9 1 1 :无法删除表空间,因为它包含数据错误。
那一刻我真的哭笑不得。

注意
还有陷阱,请注意。
如果在 DROP TABLESPACE 命令中写入 DATAFILES,则必须在 DATAFILES 之前添加 CONTENTS 关键字。
例如,如果写入 DROP TABLESPACE mytest_ts DATAFILES ( '/u02 /oracle/data/mytest_ts.dbf' ); ,就会报 ORA-01 9 1 1 错误。
您必须编写 DROP TABLESPACE mytest_ts INCLUDING DATA DATA CONTENTS ( '/u02 /oracle/data/mytest_ts.dbf' );。
我以前在广东的一家公司就遇到过这个问题,花了很长时间才找到原因。

无论如何,这取决于你,做的时候要小心。