0

我有一个性能很差的查询(我继承的),我不太确定如何优化它......据我所知,它将第二列的值设置为第一列的值加上一个值另一个表,其中找到了关系。

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 回答