- 浏览: 117475 次
- 性别:
- 来自: 重庆
文章分类
最新评论
一、drop表
执行drop table xx 语句
drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。
通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];
将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
若要彻底删除表,则使用语句:drop table <table_name> purge;
清除回收站里的信息
清除指定表:purge table <table_name>;
清除当前用户的回收站:purge recyclebin;
清除所有用户的回收站:purge dba_recyclebin;
不放入回收站,直接删除则是:drop table xx purge;
举例如下:
===============================================================================
SQL> select * from test1;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> create table test2 as select * from test1;
Table created
SQL> select * from test2;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> drop table test2;
Table dropped
SQL> select object_name, original_name, operation, type from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
------------------------------ -------------------------------- --------- -------------------------
BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE
SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名
Done
SQL> select * from test3;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> select * from test2
ORA-00942: 表或视图不存在
--彻底删除表
SQL> drop table test3 purge;
Table dropped
二、清除表中的数据
truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。
例如:truncate table XX
Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
truncate table 后,有可能表空间仍没有释放,可以使用如下语句:
alter table 表名称 deallocate UNUSED KEEP 0;
注意如果不加KEEP 0的话,表空间是不会释放的。
例如:
alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;
或者:
TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。
例如: truncate table test1 DROP STORAGE;
三、查询分区表存在哪些分区:
查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:
select 'alter table '||t.table_name ||' truncate partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'
清除指定某个分区表的分区数据:
alter table 表名称 truncate partition 分区名称;
四、清除分区表占用的空间:
alter table 表名称 DROP partition 分区名称;
例如:
alter table F_HOUR_TD_NET_MPVOICE DROP partition P_09121913 ;
五、查询表空间信息
可以利用如下语句查询各表在存储空间的使用分情况:
SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999') CNT_MB FROM DBA_EXTENTS WHERE OWNER='&OWNER' AND SEGMENT_NAME='&TABLE_NAME' AND SEGMENT_TYPE LIKE 'TABLE%' GROUP BY TABLESPACE_NAME;
可以使用如下语句,查询存储空间情况:
Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name
六、查询用户下的表
如果你的用户权限不是DBA:
那你用
select * from user_tables;
可以查询到当前用户所拥有的表。
如果是DBA用户:
select * from dba_tables;
执行drop table xx 语句
drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。
通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];
将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
若要彻底删除表,则使用语句:drop table <table_name> purge;
清除回收站里的信息
清除指定表:purge table <table_name>;
清除当前用户的回收站:purge recyclebin;
清除所有用户的回收站:purge dba_recyclebin;
不放入回收站,直接删除则是:drop table xx purge;
举例如下:
===============================================================================
SQL> select * from test1;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> create table test2 as select * from test1;
Table created
SQL> select * from test2;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> drop table test2;
Table dropped
SQL> select object_name, original_name, operation, type from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
------------------------------ -------------------------------- --------- -------------------------
BIN$vQwemDg4R9mK9fYJNdYzvg==$0 TEST2 DROP TABLE
SQL> flashback table test2 to before drop rename to test3;--【to test3】将表重命名
Done
SQL> select * from test3;
A B C
-- -- ----------
11 5
11 10
2 rows selected
SQL> select * from test2
ORA-00942: 表或视图不存在
--彻底删除表
SQL> drop table test3 purge;
Table dropped
二、清除表中的数据
truncate操作 同没有where条件的delete操作十分相似,只是把表里的信息全部删除,但是表依然存在。
例如:truncate table XX
Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
truncate table 后,有可能表空间仍没有释放,可以使用如下语句:
alter table 表名称 deallocate UNUSED KEEP 0;
注意如果不加KEEP 0的话,表空间是不会释放的。
例如:
alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;
或者:
TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。
例如: truncate table test1 DROP STORAGE;
三、查询分区表存在哪些分区:
查询分区表的情况,可以在USER_TAB_PARTITIONS中查询。例如:
select 'alter table '||t.table_name ||' truncate partition ' || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like 'F_%'
清除指定某个分区表的分区数据:
alter table 表名称 truncate partition 分区名称;
四、清除分区表占用的空间:
alter table 表名称 DROP partition 分区名称;
例如:
alter table F_HOUR_TD_NET_MPVOICE DROP partition P_09121913 ;
五、查询表空间信息
可以利用如下语句查询各表在存储空间的使用分情况:
SELECT TABLESPACE_NAME,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999') CNT_MB FROM DBA_EXTENTS WHERE OWNER='&OWNER' AND SEGMENT_NAME='&TABLE_NAME' AND SEGMENT_TYPE LIKE 'TABLE%' GROUP BY TABLESPACE_NAME;
可以使用如下语句,查询存储空间情况:
Select Tablespace_Name, Sum(bytes)/1024/1024 From Dba_Segments group By Tablespace_Name
六、查询用户下的表
如果你的用户权限不是DBA:
那你用
select * from user_tables;
可以查询到当前用户所拥有的表。
如果是DBA用户:
select * from dba_tables;
发表评论
-
Oracle Delete误删除数据恢复
2019-02-19 11:11 476获得chamber_move给定时间点时数据内容 select ... -
ORA-02391问题的解决方法
2016-07-27 10:28 3229ORA问题的分析和解决其实是一个很好的学习思路,抓住一个每一个 ... -
Oracle 操作
2016-07-19 09:25 563删除表空间及对应磁盘文件; drop tablespace R ... -
oracle recyclebin
2016-07-13 14:06 0oracle 回收站recyclebin是10g才有的新特性, ... -
Oracle数据库远程导入(EXP)、导出(IMP)
2016-04-25 16:20 2141用exp/imp远程(本地)操作 ... -
EXP-00091错误的说明和解决方法
2016-04-25 15:33 1045对于一个经常用oracle的 ... -
查看表空间使用情况
2016-03-10 11:46 679查看表空间使用情况 方法一: SELECT a.tablesp ... -
oracle 查看用户表数目,表大小,视图数目等
2016-03-10 11:01 1665oracle 查看用户表数目,表大小,视图数目等 查看当前用 ... -
小数处理函数(trun(),round(),ceil()和floor())
2015-07-28 16:49 1321trun()round()函数 trunc截取 ... -
关于Oracle取整的函数
2015-07-06 15:09 924关于Oracle取整的函数分别有以下几种: 1.取整( ... -
权限分配
2015-06-18 17:01 664view 权限分配 grant select on vw_mf ... -
Oracle回闪空间不足引起的ORA-03113问题排解
2015-04-03 13:44 4455Oracle回闪空间不足引起的ORA-03113问题排解 现 ... -
function
2014-09-02 16:03 491create or replace function getS ... -
oracle中替换字符串中回车换行符
2014-04-29 18:24 2175select trim(replace(a.ctimer_pi ... -
Oracle字符串处理函数
2014-01-08 17:09 727项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料 ... -
oracle translate() 详解+实例
2014-01-08 17:05 742oracle translate() 详解+实 ... -
ITPUB网址
2013-12-24 09:34 930ITPUB网址: http://blog.itpub.net/ ... -
oracle常用系统表
2013-09-10 13:26 678dba_开头..... dba_users 数据库用户信息 ... -
分布式 ORA-02049 错误的解决[转]
2013-09-04 13:59 2339一.系统环境: ORACLE:9IR2 OS:WINDOWS ... -
ORACLE 异常错误处理
2013-07-26 09:44 703ORACLE 异常错误处理 本篇主要内容如下: 5.1 异常 ...
相关推荐
"Oracle定时删除表空间的数据并释放表空间" Oracle数据库定时删除表空间的数据并释放表空间是通过创建存储过程和定时任务来实现的。下面详细讲解该知识点: 一、创建存储过程 首先,需要创建一个存储过程来删除...
在Oracle数据库管理中,释放磁盘空间是一项关键任务,特别是在处理大型数据表、表空间或用户时。以下是一些关于如何在Oracle中有效地删除表、表空间和用户以释放磁盘空间的详细步骤: 1. **删除表**: - **DROP ...
本文将详细介绍如何在删除表、表空间和用户时有效地释放磁盘空间。 首先,我们来看如何删除表并释放空间。当执行`DROP TABLE`命令时,默认情况下,Oracle会将表移至回收站(`USER_RECYCLEBIN`),而不是立即释放空间...
在管理Oracle数据库时,有时需要删除不再使用的表空间,以释放磁盘空间或优化数据库结构。本篇文章将详细介绍如何在Oracle数据库中快速删除表空间,以及相关的重要知识点。 首先,理解表空间在Oracle中的角色至关...
在Oracle中,**用户**(User)代表数据库中的一个登录身份,每个用户都有自己的默认表空间。 ##### 创建用户 创建用户`JPA`并指定其默认表空间为`JPA_TAB`的SQL语句如下: ```sql CREATE USER JPA IDENTIFIED BY ...
这样,当表空间满时,数据文件会自动增大,但要注意设置合理的增长限制,避免无节制地占用磁盘空间。 6. **定期清理临时段**: - 清理会话:结束不再需要的会话,以释放它们占用的临时空间。 - 设置全局临时表:...
通过表空间,可以控制用户对磁盘空间的使用,限制用户可以使用的磁盘空间大小,避免硬盘空间耗竭。 一、表空间的重要性 在大型数据库应用中,控制用户对磁盘空间的使用是非常重要的。表空间可以实现这个目的,限制...
与永久表空间不同的是,临时表空间中的数据不会被持久化保存,在会话结束时会被自动清除。因此,临时表空间非常适合用于那些不需要长期保留的数据处理场景。 #### 三、查询与管理临时表空间 ##### 1. 查询用户及其...
Oracle数据库管理中,删除用户和表空间是常见的维护任务,特别是在开发环境中,为了保持数据库的整洁和高效运行,定期清理无用的用户和表空间至关重要。以下是对标题和描述中涉及知识点的详细解释: 1. **Oracle ...
在Linux环境下管理Oracle数据库时,有时需要删除不再使用的用户及其关联的表空间。这通常涉及到数据库的安全性和资源优化。本文将详细介绍如何在Linux下的Oracle环境中删除用户和表空间,以及处理可能遇到的问题。 ...
从 Oracle 9iR2 开始,Oracle 提供了表/表空间压缩技术,以减少磁盘开销,节省空间,并在某些情况下提高查询性能。 表压缩的工作原理是删除在数据库表中发现的重复数据值,以节省空间。压缩是在数据库的数据块级别...
- 回收可以释放被删除对象占用的空间,优化存储利用率,避免无谓的磁盘空间浪费。 3. **表空间回收方法** - **段压缩**:对表、索引等进行压缩,减少它们在表空间中的物理占用。 - **重分布数据**:通过移动对象...
- 在执行任何创建或删除操作之前,请确保有足够的磁盘空间以及所有相关数据的安全备份。 - 对于表空间的操作,特别是删除操作,请务必确认表空间不再被使用,以免导致数据丢失。 - 在进行权限授予时,请确保遵循最小...
在优化数据库磁盘IO时,需要监控数据库的性能,检查系统的I/O问题,使用V$FILESTAT确定oracle文件I/O的进程,分布I/O减少磁盘竞争,避免动态空间管理,确定动态扩展,分配分区,避免回滚段的动态空间管理,减少迁移...
4. Oracle临时表空间满的问题:当临时表空间的磁盘空间被全部占用后,可能会出现错误消息,例如“ORA-1652: unable to extend temp segment by %s in tablespace %s”。这会导致用户无法完成如排序、并行查询等操作...
在Oracle数据库中,表空间是逻辑存储单元,用于组织数据库对象,如表、索引和视图等。它将多个物理磁盘上的数据文件(Data File)集合起来,为数据库提供更大的存储容量。表空间可以分为系统表空间和非系统表空间,...
使用管道可以将备份文件分成多个小文件,以便在磁盘空间不足时进行备份。例如,可以使用以下命令创建管道: exp jtkg/Jtkg_2017 owner=jtkg rows=y indexes=y compress=n buffer=65536feedback=100000 volsize=0...
2. **磁盘管理**:合理规划磁盘空间,避免单个磁盘空间不足。 3. **数据迁移**:实现数据的物理位置转移,便于数据备份或迁移至更高性能的存储设备。 #### 操作: 1. **增加数据文件**:使用`ALTER TABLESPACE ADD ...
然而,在高并发或大容量数据处理场景下,临时表空间可能迅速膨胀,导致磁盘空间不足,从而影响数据库性能和稳定性。 ### 二、检查与评估 在进行任何操作前,首先需要了解当前数据库的默认临时表空间以及其占用情况...
7. 清理源表空间:在确认数据正确无误后,可以删除atf_ygj表空间中的对象,释放空间。 在整个过程中,还需要注意以下几点: - 确保有足够的权限执行这些操作,通常需要DBA权限。 - 在进行数据迁移时,尽量在低峰...