Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从两个大表中获取数据比较统计信息的最有效方法是什么_C#_Sql_Oracle_Linq - Fatal编程技术网

C# 从两个大表中获取数据比较统计信息的最有效方法是什么

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进行比较更好,还是使用LINQ在C中进行比较更有效?如果我们用C语言做,怎么做

例如,我有两个oracle表:A和B。A和B具有相同的列:

位置字符串 类别字符串 新型号是/否 项目代码字符串 一个表大约有80000条记录;B表有大约20000条记录。需要进行的比较如下

对于每个位置:

A中有多少项与B中具有相同位置、相同类别和相同型号条件的项匹配

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_代码是该项的标识符。