oracle清空表的delete from和truncate table的優劣

2024-05-05 08:36

本文主要是介绍oracle清空表的delete from和truncate table的優劣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.使用delete from

優點:

1.保留記錄,delete from不會立即刪除數據而是保留記錄

2.允許回滾,delete from的數據不會立即刪除數據,且會記錄到binlog裡面,後期可以回滾數據

3.可以選擇性的刪除數據

缺點

1.不會釋放空間,delete from會佔據空間,只是在數據上打上刪除標記

2.速度慢,因為delete from 需要記錄刪除的數據

truncate table

優點

1.速度快,無需記錄,全部刪除

2.真刪除,truncate table會釋放空間

缺點

1.默認提交,事務失敗也無法回滾,使用要千萬小心,出錯會死人的

總結

 推薦使用delete from 除非是記錄性的數據,換句話說,truncate table盡量不要使用,一旦出事,可能被人拿去祭天了

語法

--語法
delete from tablename;
truncate table tablename;
--pl/sql語法 pl/sql不允許直接執行truncate table
EXECUTE   IMMEDIATE   'truncate table tablename' ;

这篇关于oracle清空表的delete from和truncate table的優劣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961258

相关文章

javascript复习2 Dom_table_style

dom.js---------------------- // 获得文档的根节点; //相当于html文档里面html; window.οnlοad=function(){ var root=document.documentElement;//跟节点; html标签; var div=document.getElementById("test"); alert(root.nodeNa

遍历List的同时清空元素

今天调试代码的时候发现之前同事写的一段代码用于清空list集合的数据。 if(list !=null && !list.isEmpty()){for (int i=0;i<=list.size();i++) {list.remove(i);}}细心的童鞋们可以一眼就看出了问题。 当时我改成list.size()-1 或者i<list.size(),  以为万事大吉了~~~~~~~~~~

Oracle中全量CHECKPOINT和增量CHECKPOINT的区别与作用

全量CHECKPOINT和增量CHECKPOINT对用户都是透明的,而增量CHECKPOINT只不过是将全量CHECKPOINT要写的脏块分时间分批次写到数据文件中而已,此操作可以极大地减少对数据库性能的影响。 全量CHECKPOINT 全量CHECKPOINT是指DBWR进程将脏缓冲区列表中的脏块一次性地写入数据文件中。该操作可以简单地分为2个步骤(这里假设执行全量CHECKPOINT的时间点

用网页打开oracle

sqlplus是Oracle的默认客户端 网页打开方式:http://IP地址:端口号/权限 1、在DOS系统中,使用cmd方式:实际调用的是oracle工具SQL*plus 管理员登陆:sqlplus "sys/root as sysdba"普通用户登陆:sqlplus scott/tiger 2、在浏览器中访问oracle: 管理员登陆:http://localhost:

Oracle权限问题

sysdba和sysopera都是特权用户,普通用normal就可以。 sys和system用户的区别 【system】用户只能用normal身份登陆em。 【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。 “SYSOPER”权限,即数据库操作员权限,权限包括: 打开数据库服务器 关闭数据库服务器 备份数据库 恢复数据库

Oracle代码大全

表空间 --查找所有表空间select * from dba_data_files;--创建表空间create tablepace 表空间名datafile '表空间路径'如:D:\\size 10M 表空间大小autoextend on ;自动扩充--修改表空间alter tablespace 要修改的表空间名 rename to 新表名;--删除表空间drop table

Oracle数据库查询各表空间的占用比例

目录 1、查询各表数据记录和数据大小 2、查询数据库已有表空间的大小 3、查询某表空间下各表占用突然间的大小  1、查询各表数据记录和数据大小 select a.table_name "表名",a.num_rows "数据记录",b.total "总大小(MB)" from user_tables a,(select t.segment_name, sum(byte

Oracle 自治数据库 Select AI 初体验

这几天有点时间,准备尝试下Oracle Select AI,虽然此功能2023年就已经发布了。 Oracle自治数据库已经集成好了Select AI,本文也是讲的这个。 配置 Select AI 需要以下步骤: 创建ADB申请Cohere/OpenAI免费账号设置ADB测试Select AI 第1步在OCI上创建一个自治数据库即可,可以是ATP或ADW,不再赘述。 第2步在Cohere

ORACLE 19C RAC单节点环境asmca界面中ACFS菜单不显示问题的处理

近期,在安装一个单节点服务器,使用ORACLE 19C RAC的ASM功能进行磁盘的冗余配置(类似用ASM实现RAID卡的RAID功能),为了兼容低版本的数据库软件(数据库不升级),使用了ASM的ACFS文件系统,来提供一个挂载点目录,运行11G的数据库。 正常安装配置,过程都正常;重启服务器测试时,发现问题:ACFS的挂载点目录没自动挂载 ,数据库也就无从启动了。 继续分析,发现是12版本开

mysql清空表记录后如果让自增的id也从1开始

truncate table 你的表名 //这样不但将数据全部删除,而且重新定位自增的字段