社区
应用实例
帖子详情
如果一个中间表,要频繁 删除所有数据后再插入数据,这种情况的话,是drot table好呢,还是truncate table 好呢
Foliole
2018-11-21 04:31:23
如果一个中间表,要频繁 删除所有数据后再插入数据,这种情况的话,是drot table好呢,还是truncate table 好呢 ?
什么理由?
...全文
597
5
打赏
收藏
如果一个中间表,要频繁 删除所有数据后再插入数据,这种情况的话,是drot table好呢,还是truncate table 好呢
如果一个中间表,要频繁删除所有数据后再插入数据,这种情况的话,是drottable好呢,还是truncatetable好呢 ? 什么理由?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
卖水果的net
2018-11-23
打赏
举报
回复
建议 truncate ,这个对数据字典的影响小。
doloopcn
2018-11-22
打赏
举报
回复
TRUNCATE虽然有优势,但是在批处的情况下,也有特定的缺点和不可预料的EXCETIONS,综合上来说,还是DROP比较安全高效。
以下是参考说明:
当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.
Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。
一、Truncate语法
[ { database_name.[ schema_name ]. | schema_name . } ]
table_name
[ ; ]
参数
database_name
数据库的名称。
schema_name
表所属架构的名称。
table_name
要截断的表的名称,或要删除其全部行的表的名称。
二、Truncate使用注意事项
1、TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但
TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少
。
2、
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项
。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
3、TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
4、对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
5、TRUNCATE TABLE 不能用于参与了索引视图的表。
6、对用TRUNCATE TABLE删除数据的表上增加数据时,要使用UPDATE STATISTICS来维护索引信息。
7、如果有ROLLBACK语句,DELETE操作将被撤销,但TRUNCATE不会撤销。
三、不能对以下表使用 TRUNCATE TABLE
1、由 FOREIGN KEY 约束引用的表。(您可以截断具有引用自身的外键的表。)
2、参与索引视图的表。
3、通过使用事务复制或合并复制发布的表。
4、对于具有以上一个或多个特征的表,请使用 DELETE 语句。
5、TRUNCATE TABLE 不能激活触发器,因为该操作不记录各个行删除。
四、TRUNCATE、Drop、Delete区别
1.drop和delete只是删除表的数据(定义),drop语句将删除表的结构、被依赖的约束(constrain)、触发器 (trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态。
2.
delete语句是DML语言,这个操作会放在rollback segement中,事物提交后才生效;如果有相应的触发器(trigger),执行的时候将被触发。truncate、drop是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,操作不会触发trigger。
3.delete语句不影响表所占用的extent、高水线(high watermark)保持原位置不动。drop语句将表所占用的空间全部释放。truncate语句缺省情况下将空间释放到minextents的 extent,除非使用reuse storage。truncate会将高水线复位(回到最初)。
4.
效率方面:drop > truncate > delete
5.安全性:小心使用drop与truncate,尤其是在 没有备份的时候,想删除部分数据可使用delete需要带上where子句,回滚段要足够大,想删除表可以用drop,想保留表只是想删除表的所有数据、 如果跟事物无关可以使用truncate,如果和事物有关、又或者想触发 trigger,还是用delete,如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入、插入数据。
6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。
7、drop一般用于删除整体性数据 如表,模式,索引,视图,完整性限制等;delete用于删除局部性数据 如表中的某一元组
8、DROP把表结构都删了;DELETE只是把数据清掉
9、当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.
唐诗三百首
2018-11-22
打赏
举报
回复
建议truncate table.
二月十六
2018-11-21
打赏
举报
回复
如果表需要存在的话用truncate。但是如果频繁删除和插入的这种,是不是可以用临时表代替?
吉普赛的歌
2018-11-21
打赏
举报
回复
truncate table 。这个已经足够了, 不会再有任何碎片产生。 因为 truncate table 相当于 drop table 再 create table. 你 drop table 了再创建, 跟 truncate 又有什么区别, 还不如让它一步到位做了算了。
中兴V889
Drot
中兴V889
Drot
drot
DROT
-Pronto Atendimento(UPA)大会的Sistema桌面 Lhes apresento o sistema台式
DROT
,在墨西哥克里米亚的sistema voltado para aGerênciamédica。 统一
数据
基础设施,统一
数据
基础设施,环境信息的注册人,最终处理权的最终确认人,无担保条件的无条件处理人,无条件处理人,无偿服务人,无偿服务人,无偿服务人,无偿服务人,无偿服务人,无偿服务人,无偿服务人,无偿服务人,无偿服务人和无偿服务人食堂,考生,处方药等等。 Esseéo
DROT
。 关于文档的补充
DROT
的存储库的位置 Quom somos?
documentacao-
drot
:我的软件仓库和软件文档已发布
DROT
,软件集成项目I
DROT
文档 不动产的实际使用和销售的基本条件,无产阶级的观察员联合会(UPA)拟定的不存在任何理由达索斯大学统一基地,达索斯教区大学。 桌面上出现问题的前巴氏杆菌病。 结束在多国制卡组织中的任职资格,并取消在环境中的推荐资格,在此基础上,将其作为咨询对象,将其作为参考,并将其作为参考。墨西哥历史文化进步组织/墨西哥历史文化进步组织墨西哥历史博物馆的相关信息,请访问garantindo que e necessidade de Haver eventuais咨询公司,sejapossívelpossa teremããos dasas relaces的相关信息。 需提供历史资料的Dada或其他企业的咨询机构,可以自动进行处理,并可以进行自动咨询。 奥特拉斯游客俱乐部 Sumárioda nossaDocumentação Este documentos reune os principais
coqepit:你对 Coq 的研究
EPIT2015:你对 Coq 的研究 协调员:Pierre-Marie Pé
drot
描述 在学校的最后一届会议期间,参与者将在学校教学团队的帮助下致力于他们特定研究领域的机械化。 3 小时的单次会议肯定不足以机械化整个研究领域! 本次会议(实际上是整个学校)的目的是让您开始与 Coq 合作开展您自己的第
一个
小项目,以便在放学后继续进行。 为了最大限度地提高实现这一目标的几率,我们希望尽可能早地向您提供有关如何在 Coq 中机械化您的问题的建议,从而提供帮助。 出于这个原因,我们要求您使用下一部分的说明准备您的项目。 指示 如果由于某些原因,您无法遵循这些说明,请查看基于电子邮件的说明(请参阅下一部分)。 如果您需要帮助,请联系yrg@pps.univ-paris-diderot.fr 。 在创建
一个
帐户并将您的登录信息通过电子邮件发送到yrg@pps.univ-paris-dider
约翰-开膛手-a-3dvbblurmotion-updated-5-times-faster__1-51406
3DvbBlurMotion [已更新。 快5倍] 描述 在Pure VB中使用BlurMotion,但在我的K6-2 350Mhz上运行速度更快,带有16 Mb的Voodoo卡,因此 想象一下使用ATI或nVidia卡的Pentium IV或Athlon 2000 Mhz! xD 看到screenShot相信我。 此源是对3DvbROT的修改(请参见CodeId:43292)。 有
一个
标志来运行源 在全屏模式下(320 x 240,16 bpp)。 使用键Z,X或Y更改转速旋转。 如果您要制作自己的网格物体,我会提供
一个
简短的“ howto” txt文件。 报告将会很准确。 好好享受! *** 更新 *** 感谢Carles PV所做的优化。给他所有奖牌! 呵呵呵! :-) -调整分钟和X和Y的最大值 -大模糊运动场景(x:1-318,y:1-238) -Calc3
DRot
应用实例
27,579
社区成员
68,559
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章