Sql SSIS任务的索引调整

Sql SSIS任务的索引调整,sql,sql-server,ssis,indexing,performance,Sql,Sql Server,Ssis,Indexing,Performance,我正在使用SSIS在仓库中加载表。因为我的SSI速度很慢,所以在表上建立索引似乎是个好主意 此仓库上没有主键(因此也没有外键)、索引(集群或其他)、约束。换句话说,它是100%无效率的 我们将根据使用情况放置索引,通过分析新查询和当前查询性能 因此,我认为我应该使用全新的数据库引擎优化顾问,而不是用我们那种老式的、费力的方式来阅读SQL语句和执行计划 我在SSIS包中关闭了SQL日志记录,并运行了“调优”跟踪,将其保存到表中,并在调优顾问中分析了输出。大多数查找按以下方式进行: exec sp_

我正在使用SSIS在仓库中加载表。因为我的SSI速度很慢,所以在表上建立索引似乎是个好主意

此仓库上没有主键(因此也没有外键)、索引(集群或其他)、约束。换句话说,它是100%无效率的

我们将根据使用情况放置索引,通过分析新查询和当前查询性能

因此,我认为我应该使用全新的数据库引擎优化顾问,而不是用我们那种老式的、费力的方式来阅读SQL语句和执行计划

我在SSIS包中关闭了SQL日志记录,并运行了“调优”跟踪,将其保存到表中,并在调优顾问中分析了输出。大多数查找按以下方式进行:

exec sp_executesql N'从[dbo].[Company]中选择[Active]、[CompanyID]、[CompanyName]、[CompanyShortName]、[CompanyTypeID]、[HierarchyNodeID],其中([CompanyID]=@P1)和([StartDateTime]不为NULL,[EndDateTime]为NULL),N'@P1 int',

exec sp_executesql N'从[dbo].[Company]中选择[Active]、[CompanyID]、[CompanyName]、[CompanyShortName]、[CompanyTypeID]、[HierarchyNodeID],其中([CompanyID]=@P1)和([StartDateTime]不为NULL,[EndDateTime]为NULL),N'@P1 int',2

exec sp_executesql N'从[dbo].[Company]中选择[Active]、[CompanyID]、[CompanyName]、[CompanyShortName]、[CompanyTypeID]、[HierarchyNodeID],其中([CompanyID]=@P1)和([StartDateTime]不为NULL,[EndDateTime]为NULL),N'@P1 int',3

exec sp_executesql N'从[dbo].[Company]中选择[Active]、[CompanyID]、[CompanyName]、[CompanyShortName]、[CompanyTypeID]、[HierarchyNodeID],其中([CompanyID]=@P1)和([StartDateTime]不为NULL,[EndDateTime]为NULL),N'@P1 int',4

分析时,这些语句有“事件未引用任何表”的原因。嗯?它没有看到来自dbo.Company的消息吗??!!这是怎么回事

因此,我有多个问题:

  • 如何让它捕获在跟踪中执行的实际语句,而不是在批处理中提交的语句
  • 对于针对SQL Server 2008运行的SSIS包的性能调优,是否有任何最佳实践可遵循

  • 仓库总是有索引,至少在我的世界里是这样:-)。ETL负载通常很容易索引,因为查询非常基本。(您只需对业务键列进行索引,以便在查找中更快地获取仓库键。)

    例如,“其中([CompanyID]=@P1)和([StartDateTime]不为NULL,[EndDateTime]为NULL)”看起来可能CompanyID是一个查找键,需要一个索引

    您在示例中看到的是参数化SQL(这很好)。您是否考虑过使用缺少索引的DMV而不是优化向导?我个人喜欢这种方法,因为它简单直接。只是不要立即获取所有建议的索引;需要判断哪些是真正明智的实施方法


    此外,如果您的负载缓慢,可能是由于其他原因。外键在起作用吗?您是否正在批量加载(这很棘手,因为您可以要求服务器进行批量插入,并且它可以根据目标表中聚集索引和非聚集索引的详细信息忽略您的请求)

    问题根据您的输入进行编辑。我没有用车管所。我没有FKs或PKs-仓库中只有索引。无检查约束-仅默认约束。你有什么DMV的资源可以让我学习吗?