小编典典

tempDB如何工作?

sql

我试图理解tempDB,以下是我脑海中浮现的疑虑。

  1. 数据的生命周期是tempDB多少?假设查询正在执行某些操作Order BytempDB用于执行该操作。查询结束后,其他人也会执行利用的查询tempDB。第二个查询会在中找到第一个查询写的记录,tempDB还是将其删除?
  2. Sql Engine内部是否创建了任何 可见的tempDB?我如何知道由于该查询而创建的临时表?Sql引擎是否遵循任何命名约定来命名这些临时表?

我是新来的,tempDB所以请原谅我问这样愚蠢(如果有的话)的问题:-)

如果有人可以向我指出可以帮助我了解tempDB的良好资源,那将是非常不错的。


阅读 173

收藏
2021-03-17

共1个答案

小编典典

临时表存储在tempdb中,直到断开连接为止(或者在使用最后一个连接的全局临时表中断开连接时)。当您完成使用drop
table语句使用表时,也可以(这样做是一种很好的做法)。

不,如果其他人是本地临时表,则其他人将看不到您的临时表(他们可以查看和使用全局临时表)多个人可以运行使用相同临时表名称的命令,但它们不会在本地临时表中重叠,因此您可以有一个名为#test的表,其他10,000个用户也可以,但是每个用户都有自己的结构和数据。

您通常不想在tempdb中查找临时表。可以检查是否存在,但这是我唯一一次直接引用tempdb的情况。只需使用您的临时表名称。以下示例检查存在性

  IF OBJECT_ID('TempDB.dbo.#DuplicateAssignments') IS NOT NULL 
  BEGIN 
  DROP TABLE #DuplicateAssignments 
  END

您可以通过以下方式为临时表命名:在名称前添加#(对于本地表,您将使用999.9%的时间),对于全局临时表,则使用##,然后使用所需的其余名称。

2021-03-17