SQL Server中tempdb的用途是什么?

时间:2016-03-24 03:03:26

标签: sql-server

我需要澄清SQL Server中的tempdb,并需要对以下内容进行一些澄清

  1. 它的目的是什么?
  2. 我们可以创建一个自己的tempdb以及如何让自己的<?php session_start(); include 'connect.php'; $query = mysql_query("SELECT * FROM firstform $id ='$_SESSION[user_id]'"); while($row = mysqli_fetch_assoc($query)) { $id=$row['user_id']; $manager =$row['manager_name']; $evaluator =$row['evaluator_name']; $outlet =$row['outlet_location']; $date =$row['date']; $day =$row['day']; $timein =$row['time_in']; $timeout =$row['time_out']; $overall=$row['overall']; $quality=$row['quality']; $service=$row['service']; $cleanliness=$row['cleanliness']; } ?> 引用自己的数据库吗?

3 个答案:

答案 0 :(得分:3)

FROM MSDN

tempdb系统数据库是一个全局资源,可供连接到SQL Server实例的所有用户使用,用于保存以下内容:

  1. 显式创建的临时用户对象,例如:global 或本地临时表,临时存储过程,表 变量或游标。
  2. 由SQL Server数据库引擎创建的内部对象, 例如,用于存储线轴或中间结果的工作表 排序
  3. 由数据修改事务生成的行版本 使用行版本控制隔离的读取提交的数据库 或快照隔离事务。
  4. 由数据修改事务生成的行版本 用于功能,例如:在线索引操作,多个活动 结果集(MARS)和AFTER触发器。
  5. tempdb中的操作记录最少。

    这样可以回滚事务。每次启动SQL Server时都会重新创建tempdb,以便系统始终以数据库的干净副本启动。

    临时表和存储过程在断开连接时自动删除,并且在系统关闭时没有活动连接。因此,tempdb中永远不会有任何内容从SQL Server的一个会话保存到另一个会话。 tempdb上不允许执行备份和还原操作。

答案 1 :(得分:2)

TempdB是一个系统数据库,我们无法创建系统数据库.Tempdb是所有数据库的全局资源,这意味着临时表,表变量,用户数据库的版本存储...所有都将使用tempdb ..这是一个漂亮的tempdb的基本解释。请参阅以下链接,了解它如何用于其他目的,如数据库电子邮件,..

https://msdn.microsoft.com/en-us/library/ms190768.aspx

答案 2 :(得分:0)

1:这就是它所说的。临时存储。举例来说,当您要求DISTINCT结果时,SQL Server必须记住它已经发送给您的行。与临时表相同。

2:没有意义。 Tempdb不是数据库而是服务器 - ONE TempDB无论有多少数据库。您可以更改它的位置和方式(文件编号,大小),但它永远不会与一个数据库相关(除非您在SQL Server实例上只有一个数据库)。拥有自己的Tempdb并不是SQL Server的工作方式。虽然我们在这里 - 不需要备份(tempdb)。当SQL Server启动时,Tempdb将重新初始化为空。

而且,顺便说一下,如果你担心边缘能力等问题,那将是显而易见的。其中包括我阅读我曾经使用过的每项主要技术的文档。您应该考虑采用这种方法,因为这是了解您正在做什么的唯一方法。