哪个更快?使用"IN('x',''y')"的多个DELETE语句或单个DELETE语句"

New*_*bie 9 database sql-server

只是想知道哪个更快:

DELETE FROM table_name WHERE X='1'
DELETE FROM table_name WHERE X='2'
DELETE FROM table_name WHERE X='3'
Run Code Online (Sandbox Code Playgroud)

要么

DELETE FROM table_name WHERE X IN ('1', '2', '3')
Run Code Online (Sandbox Code Playgroud)

任何想法,提示或参考在哪里阅读?

谢谢你们!

Jos*_*ons 20

由于以下几个原因,单次删除会更快:

  1. 只需要生成一个计划
  2. 只涉及一个交易(如果您使用它们)
  3. 如果从代码运行这些代码,那么ODBC调用和网络流量的开销就会减少
  4. 任何索引都需要刷新一次,而不是多次.