【问题标题】:Temporary table record limit in Sql serverSql server中的临时表记录限制
【发布时间】:2012-04-10 07:33:03
【问题描述】:

临时表中的记录是否有任何限制..我已经尝试了 130 万条记录..将来我可能必须根据应用程序的需求处理数十亿条记录..有可能吗?如果我能知道记录的限制..我可以尝试从源数据库中拆分记录并在限制范围内进行管理。提前致谢

【问题讨论】:

  • 我想说这个问题属于“如果你不得不问,你可能做错了什么”的类别 - 但你还没有描述你的整体问题/解决方案是什么。

标签: sql sql-server sql-server-2008 temp-tables


【解决方案1】:

tempdb 与任何其他数据库之间的差异很小,尤其是在限制方面。

如果您可以将其存储在用户表中,那么您也可以将其存储在临时表中。它不必放入 RAM,因为 tempdb 与任何其他数据库一样存储在磁盘上(仅具有更积极的缓存和更少的日志记录)。

来源:http://msdn.microsoft.com/en-us/library/ms190768.aspx

【讨论】:

    【解决方案2】:

    临时表是一个表,因此适用:Maximum Capacity Specifications for SQL Server

    每张表的行数

    受限于可用存储空间

    【讨论】:

      【解决方案3】:

      任何表都将遇到使用table value constructor 的单个 T-SQL INSERT 语句可以插入最多 1000 行的硬性限制。

      The number of row value expressions in the INSERT statement exceeds
      the maximum allowed number of 1000 row values. 
      

      https://dba.stackexchange.com/questions/82921/the-number-of-row-value-expressions-in-the-insert-statement-exceeds-the-maximum

      【讨论】:

        【解决方案4】:

        不,临时表没有记录限制(限制是磁盘空间)。但要小心,因为临时表是在 tempdb 数据库中物理创建的,并且该数据库必须放置在大小合适的磁盘上。

        【讨论】:

          【解决方案5】:

          临时表是stored in the tempdb Database,只要 tempdb 本身可以增长(即直到磁盘已满),它们就可以增长。

          【讨论】:

            【解决方案6】:

            在您的服务器内存(即磁盘)支持之前,您将多少条记录推入临时表是没有问题的。

            我认为你在临时表中推送的记录数没有限制。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-06-08
              • 2011-02-14
              • 2011-12-18
              • 2018-03-30
              • 1970-01-01
              • 2010-09-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多