0

我是 SQL Server 的新手,虽然在 Oracle 数据库中花费了足够的时间。在我管理的当前应用程序中,包含许多非规范化的临时表来接收上游数据。

已在登台表上创建了视图,每个登台表由大约 40 个表和多个连接组成。这些视图加载与另一个数据库中的视图同名的数据集市表。

这些视图需要花费大量时间来加载数据集市表,大约需要 5 小时。逻辑是截断加载,即每天截断整个数据库,并使用格式文件将数据从源系统文件加载到暂存区表中。

由于故意编写了截断加载过程,如何调整这些视图以使加载过程更快?

4

1 回答 1

0

您可能需要查看正常的东西:

  • 打开statistics io看看哪个表导致查询中的大部分I/O
  • 从实际计划中的最左侧节点检查您的查询计划创建不会超时(因为所有连接)
  • 查看计划中的粗箭头(=正在处理的大量行)
  • 检查计划中任何昂贵的操作(排序、假脱机、具有大行数的键查找)
  • 检查计划中估计行数与实际行数的数量级差异

不要太关注实际计划中的成本百分比,这些只是估计值,可能会产生极大的误导。

如果没有更多细节(创建表和索引子句、实际查询计划)等,很难提供任何更详细的信息。

于 2017-03-14T18:12:55.717 回答