在使用具有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除外。这些是指向相同链接服务器的同义词。