链接服务器与所有者与读者帐户的SQL性能问题

时间:2016-03-23 18:57:47

标签: sql-server linked-server

在使用具有Reader权限的链接服务器时,我有一个完美运行的查询。它在1秒内返回。然后,如果我将链接服务器切换为拥有所有者权限,它将运行/挂起,直到我取消查询。

总结一下,完全相同的查询和两个链接的服务器是相同的。唯一的区别在于,在一个查询中,链接服务器仅具有读取权限,而另一个查询链接服务器仅具有所有者权限。

我认为使用具有所有者权限的链接服务器会打开统计信息/索引并且会更快但在这种情况下绝对不是这种情况。我查看了两个查询的SQL执行计划,两者都非常不同。任何人都可以解释为什么会这样,并解释为什么安全权利如此严重地影响执行计划?

读者示例

SELECT DISTINCT 
    BOLINE.BO_ID, 2 AS SORTORDER 
FROM 
    REQ
JOIN 
    (SELECT * 
     FROM cp_BO_LN_READER 
     WHERE RQ_ID > '') BOLINE ON CAST(REQ.REQ_ID AS VARCHAR) = BOLINE.RQ_ID 

UNION 

SELECT 
    'ALL', 1 AS SORTORDER 
ORDER BY
    SORTORDER, BO_ID

所有者示例

与Reader示例相同,但使用CP_BO_LN_OWNER切换cp_BO_LN_READER除外。这些是指向相同链接服务器的同义词。

0 个答案:

没有答案