0

クエリが好きな理由

delete from A where F1 IN (1,2,3,5,5) and F2 IN (7,9,10,11)

非常に遅い (F1 と F2 はインデックスが作成され、統計が更新されます)。どのように最適化しますか?

4

2 に答える 2

0

推測では、デュアルループです

私のサンプルは
選択です 最初に選択を最適化する方がはるかに高速です
PK に結合すると、クエリ オプティマイザーはより多くの作業を
行うことができます しかし、PK では 5 を 2 回挿入することはできません

create table #tempF1 (ID int primary key);
insert into #tempF1 values (1),(2),(3),(4);
create table #tempF2 (ID int primary key);
insert into #tempF2 values (1),(2),(3),(5);

select * 
from tbl
inner merge join #tempF1 
   on tbl.F1 = #tempF1.ID
inner merge join #tempF2 
   on tbl.F1 = #tempF2.ID

あなたの状況では機能しない可能性があり、他の結合ヒントをテストし、ヒントなしでテストする

クエリオプティマイザーが愚かになった複雑なクエリを持ついくつかの大きなテーブルでこの手法を使用します

于 2013-08-02T14:30:33.930 に答える