ena*_*rik 0 t-sql database sql-delete
哪个更好,一个带有where子句的delete语句包含10,000或过滤器(例如从表中删除id = 1或id = 2或id = 3等)或执行10,000个删除语句(例如从表中删除id = 1 ;从表中删除id = 2;等)?该数据库是MS SQL Server.
编辑
ID不是顺序的,并且没有where子句可以用来捕获它们(例如id> 100且id <50)因为我不知道这些ID是如何相关的(除了它们全部来自同一张表).所以这真的是一个性能问题.
你在哪里获得要删除的ID?肯定有这么多,他们在某个地方的数据库中.如果是这种情况,你可以这样做:
DELETE FROM MyTable
WHERE ID IN ( /* Select query that returns your 10000 IDs here */ )
Run Code Online (Sandbox Code Playgroud)
如果它们不在数据库中,则添加它们,即使这意味着创建一个表来保存它们只会存在足够长的时间来完成它.