1

我有一个存储过程,我需要在其中保存一些数据并对其进行处理。为此,我正在使用临时表(#temp)。现在由于临时表存储在 tempDb 中,这将导致数据库间通信,所以创建一个普通表会更好吗?#temp 表还有其他好处吗?

4

1 回答 1

0

虽然与临时表的通信在技术上是一种“数据库间”通信,但 tempdb 通常是高度缓存的(或者可以配置为这样),因此它更有可能是从内存读取,然后是从磁盘读取。

默认情况下,临时表也只能由创建它的进程访问,这可以保护数据不被未经授权的用户读取。表的清理也是自动管理的。它还可以帮助减少工作数据库中的资源争用。

从实际的角度来看,可以对常规数据库进行微调以提供比 #temp 表更好的性能,但对于大多数用途,#temp 表将是一个更实用的解决方案。

Tempdb 概述: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31654.1550/html/sag1/ X73131.htm

Tempdb 性能和调优: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00841.1502/html/phys_tune/ X94507.htm

于 2013-06-27T13:15:43.887 回答