【问题标题】:What would be a better approach a temp table or ordinary table?临时表或普通表有什么更好的方法?
【发布时间】:2013-06-27 12:16:04
【问题描述】:

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

【问题讨论】:

  • 你是什么意思数据库间通信?能不能详细解释一下!什么类型的沟通或什么?否则,#Temp 是存储临时数据的最佳方式。
  • 由于临时表总是在数据库服务器的 tempDb 数据库中创建,所以每当我们访问该表(选择/更新)时,它都会从当前工作数据库中访问 tempDb 数据库。这就是我所说的 Inter数据库通信
  • 是的,但是,当您更改 SQL 连接时,它会影响您。我的意思是,每当您的连接存在时,您的临时表都会自动删除,当且仅当您的连接发生变化时,您将不会获得该表。因此,在您拥有单个 SQL 连接之前,您不会有任何问题。那么,你是哪个平台呢?

标签: sybase temp-tables


【解决方案1】:

虽然与临时表的通信在技术上是一种“数据库间”通信,但 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2013-04-15
    • 1970-01-01
    • 2021-08-18
    • 2017-08-14
    相关资源
    最近更新 更多