gpt4 book ai didi

sql-server - 在 sql 存储过程中使用 OPENQUERY 的原因是什么?

转载 作者:行者123 更新时间:2023-12-03 03:01:06 25 4
gpt4 key购买 nike

我目前正在审查一些在数据库上运行存储过程的作业。所有这些存储过程都连接到链接服务器。我对这个功能不太熟悉。我目前正在尝试确定为什么使用这些查询而不是普通查询,因为我正在运行的查询似乎正在提取数据。

我读到了这个,这是MSDN对openquery的解释。 :

http://technet.microsoft.com/en-us/library/ms188427.aspx

我还读过这篇文章,这是一个 stackoverflow 链接,讨论为什么不在本地服务器上使用它。 :

Why is using OPENQUERY on a local server bad?

我的问题是,当存储过程需要链接服务器的嵌入式凭据时,您基本上只使用它吗?还是还有更多我不知道的使用 OpenQuery 的原因?

最佳答案

我能想到使用 openquery 的两个优点。它可以通过在远程服务器上进行必要的过滤来减少需要传输的数据量。它可以让远程服务器上的查询优化器在连接表时选择最佳的执行计划。

另一种选择是使用REMOTE JOIN我使用它有一些运气,但 Aaron Bertrand 在这里写了一篇很好的文章。. http://www.mssqltips.com/sqlservertip/2765/revisit-your-use-of-the-sql-server-remote-join-hint/

这是 MS 文档

远程

Specifies that the join operation is performed on the site of the right table. This is useful when the left table is a local table and the right table is a remote table. REMOTE should be used only when the left table has fewer rows than the right table. If the right table is local, the join is performed locally. If both tables are remote but from different data sources, REMOTE causes the join to be performed on the site of the right table. If both tables are remote tables from the same data source, REMOTE is not required. REMOTE cannot be used when one of the values being compared in the join predicate is cast to a different collation using the COLLATE clause. REMOTE can be used only for INNER JOIN operations.

关于sql-server - 在 sql 存储过程中使用 OPENQUERY 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com