使用大量数据来引导tempDB的最佳选择

时间:2017-04-03 21:38:17

标签: sql-server etl tempdb

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

我的ETL脚本使用T-SQL,因为我的TempDB已满,所以需要花费大量时间来执行。

在您看来,这是带领这一点的最佳方式:

  • 使用提交事务?
  • 清理TempDB?

1 个答案:

答案 0 :(得分:0)

他们回答这个问题的唯一方法是采用非常高水平的一般回应。

您有几个选择:

  1. 只需为TempDB分配更多空间。
  2. 优化您的ETL查询并调整索引。
  3. 选项2通常是更好的选择。过度使用TempDB表明发生了低效的排序或连接。要解决此问题,您需要分析ETL代码的实际执行计划。请查看以下内容:

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

    希望这有用。

    的Marius