SQL Server 2005链接服务器到DB2性能问题

时间:2008-09-17 17:09:11

标签: sql-server db2

我有一台SQL Server 2005计算机,其中JDE DB2设置为链接服务器。

由于某种原因,从这个框到db2框的任何查询的性能都很糟糕。

例如。以下需要7分钟才能从Management Studio

运行
SELECT     *
FROM       F42119 
WHERE     SDUPMJ >= 107256

在iSeries Navigator中运行需要几秒钟

有什么想法?我假设有一些配置问题。

5 个答案:

答案 0 :(得分:5)

在某些搜索中,SQL Server将决定将整个表格拉到自身,并在SQL Server中对数据进行排序和搜索,而不是将查询发送到远程服务器。这通常是整理设置的问题。

确保提供商设置了以下选项: 数据访问, 整理兼容, 使用远程整理

然后使用提供程序创建新的链接服务器,并选择以下提供程序选项 动态参数, 嵌套查询, 允许进行中

设置选项后,请稍微更改查询以获取新的查询计划。

答案 1 :(得分:1)

这可能是SQL Server计算机上的内存问题。我最近了解到链接服务器查询使用操作系统分配内存。而本机SQL Server查询使用SQL Server预先分配的内存。如果您的SQL Server计算机配置为使用服务器内存的90%或更多,我会稍微扩展一下。也许60%是正确的选择。

要检查的另一件事是SQL Server处理器优先级。确保未启用“提升SQL Server优先级”。

我假设您正在通过ODBC进行访问。请记住,您不是在这里编写本机db2查询,而是在ODBC sql查询中编写。如果您只需要只读数据,则可能需要尝试将ODBC数据源配置为只读模式(如果这是一个选项)。

答案 2 :(得分:1)

在DB2集成的项目中,我通过调用OPENQUERY函数的存储过程直接选择或查看来替换每个查询。

我的解释是SqlServer在应用WHERE条件之前获取整个表,而OPENQUERY将SQL语句直接传递给db驱动程序。

无论如何,修改后的表现是可以接受的。

答案 3 :(得分:0)

我的第一个念头是司机。几年前我不得不将DB2链接到SQL Server 2000,并且找到可行的驱动程序和设置参数的正确组合非常困难......

所以也许我因此而有偏见,但我会尝试升级或降级驱动程序或更改设置,以便DB2驱动程序可以运行INPROC(如果它还没有这样做)。

答案 4 :(得分:0)

我将DB2作为链接服务器遇到了一些问题。我不知道它是否会解决你的问题,但这是我的问题:

1)在ODBC设置中的EXECUTE期间启用延迟关闭支持和预取 2)在所有选择上添加“FOR FETCH ONLY” 3)使用SELECT * FROM OPENROWSET(LinkedServerName,'SQL Command')方法进行查询