【问题标题】:Using SQL Server Temp tables使用 SQL Server 临时表
【发布时间】:2011-09-06 08:25:20
【问题描述】:

我正在重写一个使用大量临时表的 Access 应用程序。这意味着数据被添加到表中,经过处理,用于其他表中的更新,然后数据被删除。我试图弄清楚何时将其移动到 SQL Server,如果使用类似的暂存/临时表或存储在本地内存中的表的过程是更好的做法。

有没有首选的方法?

编辑:

根据要求提供更多信息。目前的流程基本上是上午的流程。

Table1 data moves to Table2 (temp)
Table1 data is deleted
Table1 gets new data for the day
Table2 gets a few updates
Table2 is then used to update Table1
Table2 data is deleted.

正如我所说,当前进程在一个设计糟糕的 Access DB 中运行,因此我们正在为 SQL 服务器重新设计它。

【问题讨论】:

    标签: ms-access sql-server-2005 temp-tables


    【解决方案1】:

    这是“视情况而定”的情况之一。总的来说,如果有多个用户(或自动源)同时运行使用“临时表方法”的进程,则最好使用临时表,因为每个实例都有自己独特的一组(一个或更多)临时表。但是,如果这种过程只有一个实例,那么拥有一组“固定”的永久临时表来完成工作是有意义的。

    【讨论】:

    • 只有一个进程正在运行并使用“临时”表。
    • 如果整个过程像您描述的那样(相对)简单,那么在存储过程中使用临时表就足够了。如果有大量数据(相对于您的硬件或您想要的性能),您可能会通过永久暂存表获得更好的性能。
    • 但是存储过程中的临时表不需要物理存储在磁盘中的物理表中。
    • 临时表(和表变量)总是存储在物理磁盘上的物理表中——这就是 TempDB 的全部意义所在。 SQL 非常擅长快速高效地执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多