SSIS 验证缓慢。OLTP OLAP 在同一台服务器上运行

Zan*_*ane 7 sql-server-2008 sql-server ssis olap

我有四台相同的服务器 2 用于生产,另外两台是演示机器/紧急故障切换盒。更强大的机器是一个 16 核 127 gig 的 Ram 托管我们的数据仓库和我们的 OLTP 数据库。功能较弱的盒子是我们用于 ETL 和数据存储的 8 核 98 gig ram 盒子。我遇到的问题是在生产服务器上集成服务需要大量时间来执行包验证。对于在 6 秒内返回的查询,完成包验证需要 40 秒。如您所见,这是一个相当简单的包。 插入更新删除

请记住,这只是我用作示例的包,我的所有包都有相同的问题,尽管有些程度较低。当我运行它时,验证部分平均需要 40 秒。 执行开始

为了更好地测试这一点,我在姊妹机器上运行了完全相同的包,它运行所有与该机器相同的 SQL 作业。只有执行前验证需要 0 秒,查询需要 4 到 6 秒。

为了进一步测试这一点,我对两个 SQL 服务器实例运行了查询。

SELECT '{' + CAST(Store_Id AS CHAR(36)) + '}' AS Store_Id
      ,'{' + CAST(ItemGroupDetail_Id AS CHAR(36)) + '}' AS ItemGroupDetail_Id
      ,ItemGroupType_Id
      ,'{' + CAST(Concept_Id AS CHAR(36)) + '}' AS Concept_Id
      ,'{' + CAST(Company_Id AS CHAR(36)) + '}' AS Company_Id
      ,'{' + CAST(ItemGroup_Id AS CHAR(36)) + '}' AS ItemGroup_Id
      ,GroupName
      ,Sort
      ,NameOverride
      ,'{' + CAST(ParentGroup_Id AS CHAR(36)) + '}' AS ParentGroup_Id
      ,Active
      ,'{' + CAST(UserCreated AS CHAR(36)) + '}'  AS UserCreated
      ,'{' + CAST(UserModified AS CHAR(36)) + '}'  AS UserModified
  FROM bos_vAllItemGroups
Run Code Online (Sandbox Code Playgroud)

在实时更新的主服务器上执行平均在 5 秒内返回 63326 行,在 3 秒内返回 50527 行。可以预料的是,该服务器在相同规格下的活动要少得多,我希望它会稍微快一点。我没想到的是,包验证时间会比实际查询运行时间增加得多。

经过昨天的大量挖掘,我想我可能已经发现了问题,但不知道如何证明。生产 OLTP 数据库管理全国数字菜单板的内容,这些菜单板经常打电话回家检查新内容。大多数情况下,没有什么可改变的,查询会在几毫秒内完成。然而,他们确实发送了这个过程,最终平均每秒运行 4500 个查询。这可能是我的问题的原因吗?来自我们的网络服务器的大量交易。如果是,我如何证明?我已经尝试让这些数据库在不同的机器上运行,因为这个 OLTP 数据库和我们的数据仓库一样增长非常快,而且从我的所有阅读来看,将 OLAP 和 OLTP 数据库保持在同一台服务器上被认为是不好的做法。

bil*_*nkc 1

通过一些离线对话,赞恩能够确定,如果他们可以保持连接打开,就会加快验证速度。

为此,我建议他们更改连接管理器上的属性,以将 RetainSameConnection 属性True从其默认值翻转。