0

私はかなりパフォーマンスの悪いクエリ(継承した)を持っており、それを最適化する方法がよくわかりません...私が理解している限り、2番目の列の値を1番目の列の値に加えてからの値として設定していますリレーションシップが見つかった別のテーブル。

update table1 set
col2 = col1 || coalesce (( 
    select table2.the_column_wanted from table2 where table2.fk = table1.pk and
    table2.flag = 'Y'))

where flag = 'Y' and pk in ( select distinct fk from table2 );
4

1 に答える 1

0

正確な速度の問題はテーブルの特性によって異なりますが、一般的にはMERGEこの種の問題を調査します。このようなもの:

MERGE INTO table1 USING table2
   ON table1.pk = table2.fk and 
      table1.flag = 'Y' and
      table2.flag = 'Y'
   WHEN MATCHED THEN UPDATE SET
      table1.col2 = table1.col1 || table2.the_column_wanted;

書かれたクエリは非常に疑わしいです。おそらく、「継承」したすべてのコードをよく見る必要があります。

于 2012-09-20T12:38:28.803 に答える