C# 从两个大表中获取数据比较统计信息的最有效方法是什么
从两个大表中获取数据比较统计信息的最有效方法是什么?使用SQL进行比较更好,还是使用LINQ在C中进行比较更有效?如果我们用C语言做,怎么做 例如,我有两个oracle表:A和B。A和B具有相同的列: 位置字符串 类别字符串 新型号是/否 项目代码字符串 一个表大约有80000条记录;B表有大约20000条记录。需要进行的比较如下 对于每个位置: A中有多少项与B中具有相同位置、相同类别和相同型号条件的项匹配 A中有多少项与B中具有相同位置、相同类别但不同型号条件的项匹配 A中有多少项位于B中但位于不同位置 有多少项在A中但不在B中C# 从两个大表中获取数据比较统计信息的最有效方法是什么,c#,sql,oracle,linq,C#,Sql,Oracle,Linq,从两个大表中获取数据比较统计信息的最有效方法是什么?使用SQL进行比较更好,还是使用LINQ在C中进行比较更有效?如果我们用C语言做,怎么做 例如,我有两个oracle表:A和B。A和B具有相同的列: 位置字符串 类别字符串 新型号是/否 项目代码字符串 一个表大约有80000条记录;B表有大约20000条记录。需要进行的比较如下 对于每个位置: A中有多少项与B中具有相同位置、相同类别和相同型号条件的项匹配 A中有多少项与B中具有相同位置、相同类别但不同型号条件的项匹配 A中有多少项位于B中但
谢谢你的帮助 让SQL引擎完成它设计的任务 前两个问题很简单。给定这样的模式:
create table foo
(
location varchar(200) ,
category varchar(32) ,
new_model char(1) check( new_model in ('Y','N') ) ,
item_code varchar(32) ,
)
create table bar
(
location varchar(200) ,
category varchar(32) ,
new_model char(1) check( new_model in ('Y','N') ) ,
item_code varchar(32) ,
)
两个几乎完全相同的查询就可以做到这一点:
select a.location , count(*) as question_1
from foo a
join bar b on b.location = a.location
and b.category = a.category
and b.new_model = a.new_model
group by a.location
order by a.location
select a.location , count(*) as question_2
from foo a
join bar b on b.location = a.location
and b.category = a.category
and b.new_model != a.new_model
group by a.location
order by a.location
假设索引合理,性能应该良好
根据你给我们的信息,最后两个问题
A中有多少项位于B中但位于不同位置?
有多少项在A中但不在B中?
无法回答,因为我们没有定义每个表中的行的唯一标识。最有效的方法是使用SQL进行处理。这允许您利用查询优化和并行处理。而且,它减少了来回传输的数据量。若您确实有关于如何执行此操作的问题,请使用表格布局、示例数据和所需结果创建一个问题。通过编辑此问题或删除此问题并编写另一个问题来执行此操作。可能的重复感谢您的输入。我主要想确认SQL是否是最佳选择。为这个问题添加了一个转折点,如果这两个表位于两个数据库中,那么执行SQL需要创建数据库链接。SQL仍然是最佳选择吗?感谢您的意见!谢谢你的回答。如果在SQL中这样做是最好的选择,那么我知道如何编写查询。基本上,我想确认SQL是无可争议的选择。需要明确的是,这两个表位于两个不同的数据库中。因此,如果选择SQL,那么我们需要在这两个数据库之间创建数据库链接。添加此扭曲,您仍然建议在SQL中执行此操作吗?对于最后两个问题,item_代码是该项的标识符。