Oracle 中删除数据
2015-06-18 17:22
253 查看
-- Start
大家对如何删除数据都不陌生,我们习惯性的这么写:
其实这么写性能并不好,尤其是删除大量数据的时候,要想获得更好的性能,可以采用如下方式:
那如果要把一个表的所有数据都删除了,该怎么办?有人可能会说,这简单啊,把WHERE子句去掉不就可以了。回答正确,这是一种方法。当数据量很大时,删除数据需要很长时间,有人可能会采用先DROP TABLE,然后CREATE TABLE 的方式,这是第二种方法。这样处理虽然很快,但是比较麻烦。其实还有第三种方法,更快、更简单,如下:
郑重申明,使用以上语句后,对表的操作将不会记录日志,恢复的时候可能有问题,所以特别适合临时表。以上语句要慎重使用,出现任何后果本人概不负责。
--更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-18
-- Created by ShangBo on 2015-06-18
-- End
大家对如何删除数据都不陌生,我们习惯性的这么写:
DELETE FROM <TABLE_NAME> WHERE <CONDITION>;
其实这么写性能并不好,尤其是删除大量数据的时候,要想获得更好的性能,可以采用如下方式:
DELETE FROM ( SELECT * FROM <TABLE_NAME> WHERE <CONDITION> );
那如果要把一个表的所有数据都删除了,该怎么办?有人可能会说,这简单啊,把WHERE子句去掉不就可以了。回答正确,这是一种方法。当数据量很大时,删除数据需要很长时间,有人可能会采用先DROP TABLE,然后CREATE TABLE 的方式,这是第二种方法。这样处理虽然很快,但是比较麻烦。其实还有第三种方法,更快、更简单,如下:
TRUNCATE TABLE <TABLE_NAME>;
郑重申明,使用以上语句后,对表的操作将不会记录日志,恢复的时候可能有问题,所以特别适合临时表。以上语句要慎重使用,出现任何后果本人概不负责。
--更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-18
-- Created by ShangBo on 2015-06-18
-- End
相关文章推荐
- Windows上手动创建oracle11g数据库database
- ASM实例操作
- Oracle 10g 安装ASM (RHEL5)
- Oracle、MySql、SQLServer 数据分页查询
- Oracle 字典与视图
- Oracle UPDATE 语句
- Oracle 性能报告 AWR
- Oracle 性能报告 ADDM
- Oracle自动提交,主键自定生成
- Oracle 性能报告 ASH
- Oracle 调优相关
- EMCA配置OEM
- RHEL5 安装 Oracle 11g
- RHEL5 安装 Oracle 10g
- Oracle数据库之PL/SQL包
- Oracle用RMAN还原种子数据库
- Oracle同一节点副本数据库启动
- Oracle 备份/恢复
- ORACLE 管理 网络
- 对oracle hash join trace的研究