我有一个非常大的表(将其命名为表 A:可能有 3 亿条记录)和另一个大约有 100,000 条记录的表(将其命名为表 B)。任务是从表 B 中检索表 A 中不存在的所有记录。表 A 和表 B 的结构相同。
我在两个表中都使用了主键,并在用于在 WHERE 子句中搜索的非唯一字段上添加了非结构化索引。
目前我正在执行连接操作来完成任务......(Col1 是主键)
SELECT Col1 FROM Table_B
WHERE Col1 NOT IN (
SELECT Table_B.Col1
FROM Table_A INNER JOIN
Table_B ON Table_A.Col1 = Table_A.Col1 )
有没有更有效的方法?
任务是在 2 分钟内检索信息。但是,它大约需要 18-25 分钟。检索相同的。
我目前正在使用带有存储过程的 LINQ to SQL 来检索数据。它是有益的还是我应该坚持从数据库中进行通常的检索。
如果我使用 Views 在多个表中分解表 A 会有帮助吗?但是,将其分解为视图可能涉及复杂的查询。请帮我解决这个问题。非常感谢。