0

2012 年 5 月 17 日以降に計画テーブルに追加された新しい市場を検索したいと考えています。この選択は機能しますが、16k レコードではパフォーマンスが低下します。2 番目の個別のキーワードを削除すると、パフォーマンスが大幅に向上し、同じ結果が得られますが、この選択をさらに高速化する必要があります。約25秒かかります。もっと速い方法があるはずですか?

select distinct(market) 
from plan
where date_added > '2012-05-17'
and market not in (select distinct(market) from plan where date_added < '2012-05-17')
4

2 に答える 2

3

これでパフォーマンスが向上するかどうかは定かではありませんが、別のアプローチです。

select market
  from (select market,
               min(date_added) min_date
          from plan
         group by market) as sub_plan
 where sub_plan.min_date > '2012-05-17';

また、私はオラクルの専門家であるため、構文上の小さな違いはご容赦ください。

于 2012-05-17T17:37:13.583 に答える
0

この行全体を省略できますか?

and market not in (select distinct(market) from plan where date_added < '2012-05-17'

date_added が > 2012-05-17 であることを既に指定しているため、冗長です。

于 2012-05-17T17:27:43.107 に答える