2

我看到一些代码,其中作者在删除临时表之前立即截断了临时表。这样做有理由吗?

TRUNCATE TABLE #Temp
DROP TABLE #Temp
4

6 回答 6

3

另一个原因是 aDROP TABLE是一个完全记录的操作,因此通过首先截断(从不记录)可以降低事务记录开销。

于 2010-04-10T14:43:57.090 回答
2

可能作者的印象是,如果表已经为空,则 DROP TABLE 会更快,并且知道 TRUNCATE 会比 DELETE 更快。

于 2010-04-09T15:37:13.040 回答
1

可能是个傻瓜。(不是说我很完美)。

于 2010-04-09T15:48:35.500 回答
1

在非常大的临时表上,先截断然后删除有时会更快,因为截断只是移动指针。通常不需要它,因为临时表会自行删除。

于 2010-04-10T00:41:09.473 回答
1

另一种可能性是编码器试图避免在临时表大于 8MB 时发生延迟下降。即截断它然后丢弃它。我不确定 SQL 引擎是否会被此愚弄,但它可能会强制同步清理。我不明白你为什么要这样做,也许是为了避免累积延迟下降的一些问题(用于销毁的临时表)

于 2011-11-11T01:46:13.887 回答
0

可能查看TRUNCATE命令是否由于现有外键而引发异常?

于 2010-04-09T15:28:10.523 回答