带大量数据的 tempDB 的最佳选择

Best Options to lead with tempDB with a lot of data

为了使用 SQL Server 2014 从多个数据源和大量数据加载数据。

我的 ETL 脚本在 T-SQL 中,由于我的 TempDB 已满,因此执行需要花费大量时间。

在你看来,这是最好的领导方式:

他们回答这个问题的唯一方法是给出非常高水平的一般性回答。

您有几个选择:

  1. 只需分配更多 space 给 TempDB。
  2. 优化您的 ETL 查询并调整您的索引。

选项 2 通常是更好的方法。过度使用 TempDB 表明正在发生低效的排序或连接。要解决此问题,您需要分析 ETL 代码的 实际执行计划 。查找以下内容:

  • 查询计划中的感叹号。这通常表明连接或排序操作必须溢出到 TempDB,因为优化器低估了所需的内存量。您可能有需要更新的统计数据。
  • 寻找估计行数和实际行数之间的巨大差异。这也可能表明参数嗅探问题的统计数据已过时。
  • 查找排序操作。通常可以通过向 table 中添加索引来删除它们。
  • 寻找低效的访问方法。这些通常可以通过添加覆盖索引来解决。例如 table 如果您只需要大 table 中的少量行,则扫描。请注意,table 扫描通常是加载数据仓库时的最佳方法。

希望这对您有所帮助。

马吕斯