12
返回列表 发新帖
楼主: 杨奇龙

[笔记] truncate,delete,drop的异同点

[复制链接]
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
11#
发表于 2010-6-28 14:11 | 只看该作者
Truncate会free buffer headers,对于大的active表,时间较长。会导致大量的library cache pin
使用Exchange Partition的方法来Truncate分区,可以缩短执行时间,更加安全
Exchange Partition既可以用于分区表的truncate也可以用于非分区表的truncate
如果实在太忙,Exchange Partition也不能避免大量的library cache pin,可以考虑将分区表拆分为N个非分区表,通过修改应用来实现轮换

使用道具 举报

回复
论坛徽章:
8
2010广州亚运会纪念徽章:壁球
日期:2010-11-11 18:03:082010广州亚运会纪念徽章:跆拳道
日期:2010-11-11 18:03:13ITPUB学员
日期:2011-04-14 09:58:10ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
12#
发表于 2010-6-28 15:32 | 只看该作者

哪位大虾能够顺便将我提的这些问题解决掉啊

使用道具 举报

回复
论坛徽章:
9
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522010广州亚运会纪念徽章:击剑
日期:2010-11-03 11:00:36ITPUB十周年纪念徽章
日期:2011-11-01 16:25:512012新春纪念徽章
日期:2012-01-04 11:56:19奥运会纪念徽章:摔跤
日期:2012-08-21 10:04:04优秀写手
日期:2014-02-15 06:00:132014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-05-19 11:17:08
13#
发表于 2010-6-28 21:48 | 只看该作者
原帖由 eagle_fan 于 2010-6-28 14:11 发表
Truncate会free buffer headers,对于大的active表,时间较长。会导致大量的library cache pin
使用Exchange Partition的方法来Truncate分区,可以缩短执行时间,更加安全
Exchange Partition既可以用于分区表的truncate也可以用于非分区表的truncate
如果实在太忙,Exchange Partition也不能避免大量的library cache pin,可以考虑将分区表拆分为N个非分区表,通过修改应用来实现轮换



Truncate会free buffer headers,对于大的active表,时间较长。会导致大量的library cache pin
释放buffer headers,会导致library cache pin?
有关系吗?

使用道具 举报

回复
论坛徽章:
47
蒙奇·D·路飞
日期:2017-03-27 08:04:23马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11一汽
日期:2013-09-01 20:46:27复活蛋
日期:2013-03-13 07:55:232013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:322012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20
14#
发表于 2010-6-28 23:03 | 只看该作者
> Truncate...对于大的active表,时间较长。会导致大量的library cache pin

Why is it library cache pin? Pin on which object? On the SQLs that still try to access the table being truncated? Or the table and partition definitions in x$kglob? Would a huge table with only a few big partitions cause the same amount of library cache pin as a huge table with many small partitions?

Yong Huang

使用道具 举报

回复
论坛徽章:
14
季节之章:冬
日期:2010-01-04 13:39:56季节之章:春
日期:2010-03-22 16:42:29ITPUB知识分享者
日期:2010-06-28 10:02:43季节之章:夏
日期:2010-07-16 09:20:442010世博会纪念徽章
日期:2010-07-22 11:35:022010世博会纪念徽章
日期:2010-08-09 10:41:19ITPUB季度 技术新星
日期:2010-08-31 10:47:25季节之章:秋
日期:2010-12-10 16:23:30ITPUB官方微博粉丝徽章
日期:2011-07-20 17:06:48
15#
发表于 2010-7-2 21:55 | 只看该作者
学习了;

使用道具 举报

回复
论坛徽章:
27
数据库板块每日发贴之星
日期:2010-06-17 01:01:07迷宫蛋
日期:2011-07-07 15:25:46紫蛋头
日期:2011-08-10 10:31:56ITPUB十周年纪念徽章
日期:2011-09-27 16:33:28ITPUB十周年纪念徽章
日期:2011-11-01 16:25:222012新春纪念徽章
日期:2012-02-07 09:59:35ITPUB知识分享者
日期:2012-02-20 17:49:25铁扇公主
日期:2012-02-21 15:02:40ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:48
16#
 楼主| 发表于 2010-7-2 23:20 | 只看该作者
原帖由 Yong Huang 于 2010-6-27 05:05 发表


I forgot that. OK. How about "drop ... purge" versus "truncate"?

Yong Huang


前者会将表结构及其数据全部删除,而truncate 只是删除表中的数据。

使用道具 举报

回复
论坛徽章:
27
数据库板块每日发贴之星
日期:2010-06-17 01:01:07迷宫蛋
日期:2011-07-07 15:25:46紫蛋头
日期:2011-08-10 10:31:56ITPUB十周年纪念徽章
日期:2011-09-27 16:33:28ITPUB十周年纪念徽章
日期:2011-11-01 16:25:222012新春纪念徽章
日期:2012-02-07 09:59:35ITPUB知识分享者
日期:2012-02-20 17:49:25铁扇公主
日期:2012-02-21 15:02:40ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53ITPUB 11周年纪念徽章
日期:2012-10-09 18:14:48
17#
 楼主| 发表于 2010-7-2 23:48 | 只看该作者
原帖由 Yong Huang 于 2010-6-26 02:17 发表
> 速度,一般来说:   drop>   truncate   >   delete      

Drop may not be faster than truncate. If you know somebody's benchmark or your own, please let us know.

Yong Huang


I am sorry that I have no examples now . just learn it from somebody ,

I will try it  and put  the resault on itpub later

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2010-7-4 21:36 | 只看该作者
1.truncate会生成新的数据段data_object_id,
2.在只读表空间上,只有drop能完成

使用道具 举报

回复
论坛徽章:
0
19#
发表于 2010-7-7 00:18 | 只看该作者
drop table t;若没有带purge的话,原来t表上的索引,触发器等依附于该表的对象名称会变成BIN$开头的名称。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表