我们遇到了一个有点奇怪的情况。基本上,我们的一个数据库中有两个表,其中包含大量我们不需要或不关心的日志信息。部分原因是我们的磁盘空间不足。
我正在尝试清理表,但这需要很长时间(在周末运行后仍然有 57,000,000 多条记录......而这只是第一个表!)
仅使用删除表就会花费很长时间并耗尽驱动器空间(我相信是因为事务日志的原因)。现在我正在使用 while 循环一次删除记录 X,同时使用 X 来确定实际上最快的记录。例如,X=1000 需要 3 秒,而 X=100,000 需要 26 秒……计算速度稍快一些。
但问题是有没有更好的办法呢?
(完成此操作后,将运行 SQL 代理作业,每天清理一次表......但需要先将其清除。)
TRUNCATE http://www.tsqltutorials.com/truncate-table.php删除表或禁用索引
TRUNCATE TABLE [tablename]
截断将从表中删除所有记录,而不单独记录每个删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)