你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
没有找到相关结果
TravyLee - 尼玛!这哪是下雨,分明就是有人在泼水! 2013-07-09 回答
赞同来自: 冰咖啡 、子呆不呆
delete命令并不能完全释放掉表格或者索引的数据结构以及他们申请的页面。 在这一点上,SQL Server2005以后的版本比之前的版本做得好些,树比堆做 得更好些。 TRUNCATE语句和DELETE语句相比具有以下优点: 1,所用的事务日志空间较少 delete每删除一行数据,都会在事务日志中为删除的每行记录一个项。 truncate table通过释放用于存储数据的数据也来删除数据,并且在 事务日志中只记录页释放这个动作,而不是记录每一行。 2,使用的锁比较少 当执行delete语句的时候,将锁定表中各行以便删除。truncate table 始终锁定表和页面,而不是各行。 3,表中毫无例外的不保留任何页 执行delete语句之后,表仍然会包含空页。例如,必须至少使用一个排他表锁, 才能释放堆中的空页。如果执行删除操作时没有使用表锁,表(堆)中将包含 许多空页。对于索引,删除操作会留下一些空页,尽管这些页会通过后太清除 进程迅速释放。 truncate table删除表中的所有行数据,但表的结构及其列,约束,索引等都 保持不变。如要删除表定义及其数据,直接使用drop table语句 为了及时的删除数据,释放空间,可以采用的方法有: 1,在表格上建立聚集索引 2,如果所有数据都不要了,要使用truncate table语句,而不是drop table语句 3,如果表格本身也不需要了,直接drop table 此外需要说明的是: 在delete数据之后,SQL Server却没有完全释放空间,虽然这些空间没被释放掉, 但是当表格插入新的数据时,这些空间会被从新使用。 如果真的看着这些空间碍事,而表格又不能整个被删除,处理起来就有点麻烦。如 果表格有聚集索引,重建以下索引能释放这些页面,还是很方便的。但是没有聚集 索引,可能就要重建一张表,把数据从旧表里复制过去,然后删除旧表,释放空间 或者在这张表上创建一个聚集索引。
Gabriel - 茕茕白兔 东走西顾 衣不如新 人不如故 2013-07-09 回答
赞同来自: 梁勇 、子呆不呆
梁勇 - 天道酬勤、上善若水。爱好商业智能 2013-07-09 回答
赞同来自: Gabriel
要回复问题请先登录或注册
成功一定有方法,失败一定有原因!
推荐一份编程学习资源,包含了各类编程语言学习进阶路线图、视频教程、配套书籍文档、数百份面经,各大厂面试真题。编程语言包括:Java、前端、PHP、Python、Linux运维、软件测试、数据解构与算法、C语言、go语言等
微信扫码关注公众号,发送 "编程"获取资源
3 个回复
TravyLee - 尼玛!这哪是下雨,分明就是有人在泼水! 2013-07-09 回答
赞同来自: 冰咖啡 、子呆不呆
Gabriel - 茕茕白兔 东走西顾 衣不如新 人不如故 2013-07-09 回答
赞同来自: 梁勇 、子呆不呆
此点是否正确,需要请同学拍砖.
梁勇 - 天道酬勤、上善若水。爱好商业智能 2013-07-09 回答
赞同来自: Gabriel