首页 > 解决方案 > 如何通过 c# 从 1400 万个表中删除 100,000 个特定行?

问题描述

我有两个文本文件,每行都包含字符串。我比较这些文本文件以查找哪些字符串已添加,哪些已删除。

每天大约有 100,000 个字符串被添加,100,000 个字符串被删除。

我目前使用 System.Data.SqlClient.SqlBulkCopy 添加新行。这会在大约 1 秒内添加 100,000 个新行。

但是,我看不到删除行的类似方法。我有 100,000 个字符串要从 1400 万行的表中删除。即使尝试使用 IN (x,x,x,x) 一次性删除 5000 也会导致一分钟后超时。

c# 中是否有一种有效的方法来删除这些字符串?

标签: c#sql

解决方案


您可以在另一个表中插入要删除的字符串。

然后使用delete连接到该表的查询一次将它们全部删除。

delete t
from your_table t
join helper_table h on t.name = h.name

推荐阅读