惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
罗磊的独立博客
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
D
DataBreaches.Net
博客园 - 叶小钗
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
B
Blog
V
Visual Studio Blog
雷峰网
雷峰网
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - playman0211

UE蓝图---实现场景物体Transform状态重置效果 【转】读取系统时间和时间戳【UE4】【C++】 关于Unity中关节的使用(一) Unity --- 关节组件 C# CRC16算法实现【转】 IhyerDB modBus采集器配置. 简单理解C#中的抽象工厂模式是什么概念! C# 进制转换(二进制、十六进制、十进制互转) 软件加密锁编程技巧【转】 C#按回车Enter使输入焦点自动跳到下一个TextBox的方法收集 Gjhf c#格式化数字(转) 用Instant client批量安装Oracle客户端-安装配置 C#使用instantclient连接 Oracle 10g (转) InstantClient安装使用 (转) oracle case when的使用方法 Oracle case when 用法(转) C# 读写ini文件 【转】 SQL Server CONVERT() 函数
oracle数据库删除数据Delete语句和Truncate语句的对比
playman0211 · 2013-03-25 · via 博客园 - playman0211

当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分别介绍。

一、delete语句

(1)有条件删除

   语法格式:delete [from]  table_name  [where condition];

如:删除users表中的userid为‘001’的数据:delete from users where userid='001';

(2)无条件删除整个表数据

     语法格式:delete  table_name;

如:删除user表中的所有数据:delete users ;

二、Truncate语句

使用Truncate语句是删除表中的所有记录。

语法格式: Truncate [table]  table_name;

(1)删除所有记录不保留记录占用空间

     Truncate [table]  table_name  [drop storage];

    如:删除users表中的所有数据并不保存占用空间: Truncate table users drop storage; 由于默认使用drop storage关键字,所以可以省略 drop storage;

(2)删除所有记录保留记录占用空间

     Truncate [table]  table_name  [reuse storage];

     如:删除users表中的所有数据并保存占用空间: Truncate table users reuse storage;

三、两种删除语句的对比

      由于delete语句删除记录时候,记录是逐条删除的,而Truncate 语句删除数据时不产生回退信息;所以如果需要删除大量数据的时候使用delete则占用较多的系统资源,而如果使用Truncate 则会快的多。

     下面通过实例说明一下:

     1、首先建立user表:

create table users
(
userid   varchar2(20) ,
username varchar2(30),
userpass varchar2(30)
 );

复制代码

    2、接着插入一条数据

 insert into users values('001','GavinDream','123456');

   3、使用复制插入方法插入几万条数据

 insert into users(userid,username,userpass) select * from users;

我插入了 4194304条数据,使用delete删除花费时间为:90.964 seconds,然后又插入了二倍的数据,但使用truncate花费时间仅仅为2.215 seconds,如下图所示:

来自网上:http://www.cr173.com/html/15011_1.html