【发布时间】:2017-02-03 18:04:40
【问题描述】:
我有一个 SSIS 包,可以将数据从 SQL 服务器移动到 Postgres 9.5 数据库。我正在使用最新的 Postgres ODBC 驱动程序连接到 postgres 服务器。大部分操作是插入、更新和更新插入。当我在 Visual Studio 2012 中从我的开发机器(Win 10 64 位)运行这个包时,速度非常快。它可以在大约 40 秒内传输大约 80k 行。
当我将它部署到服务器(一个 SQL Server 2012 实例)并使用 SQL 管理工作室运行它时,它的执行速度非常缓慢。传输少于 10 行大约需要 20 秒,并且需要很长时间才能处理完整的数据集。我从不让 if 完成,因为它需要太长时间。
我的开发机器和服务器都安装了完全相同的 postgres 驱动程序并配置了相同的 ODBC 源。
编辑:我还应该注意,我有其他包部署到该服务器上运行得很好,尽管这些包不涉及 postgres 或使用 ODBC 做任何事情。
【问题讨论】:
-
您在本地和服务器上使用相同的数据库吗?如果没有,可能是服务器很忙,或者服务器上的表很大,但你的开发表很小。
-
您在本地和服务器上使用的 postgres 中的表是否相同?您能否提供运行缓慢的数据流的图像?
-
检查 ODBC 和/或驱动程序跟踪/日志记录。
-
FLICKER & Mark,它在开发和测试服务器上都是相同的数据库和表。 TallTed 你能详细说明一下吗?我在哪里可以找到这些,我应该寻找什么?
-
首先查看 ODBC 管理器 a/k/a 数据源控制面板的跟踪选项卡。确保已禁用此功能。还要查看您的 DSN 设置,并确保那里没有启用跟踪/日志记录。
标签: sql-server postgresql ssis odbc sql-agent-job