gpt4 book ai didi

c# - 减少往返次数

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:22 25 4
gpt4 key购买 nike

我在不同的服务器上有 2 个数据库:服务器 1 有所有更改列表的列表,服务器 2 有更改列表中所有修改文件的列表.

我需要合并两个表中的数据。

我的第一个查询是

Select changelist from database1;

这给了我更改列表的列表。

现在,对于每个更改列表,我需要使用以下命令触发查询

foreach change in changelist
select * from database2 where changelist= change;

有什么方法可以一次将所有更改列表发送到数据库并在一次往返中获取数据?

最佳答案

如果另一个表中的很大一部分项目将被使用,并且您有足够的资源(即内存)能够做到这一点,一个选择是从您的第二个源中拉下整个更改列表表然后在您的 C# 程序中从那里开始工作。如果需要所有/大部分数据,这根本不是浪费。如果您只需要一小部分数据,但它仍然有效,那么它可能是最简单的选择,因此无论如何都值得这样做。

另一种选择是尝试构建如下查询:

select * from database2 where changelist in (change1, change2, change3, ...);

只要更改的数量足够小,这是一个选项。根据您的数据库,您通常会有一个硬性限制,即一千个或两个,尽管在您达到这一点之前,此选项可能会变得有点困惑。

关于c# - 减少往返次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18597279/

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