- PR -

複合索引

投稿者投稿内容
zilloll
常連さん
会議室デビュー日: 2006/02/01
投稿数: 24
投稿日時: 2006-02-03 16:19
他に絞込み条件があるのであれば、そのカラムに
インデックスを設定することが検討できると思います。
また、集計については、以下のように相関サブクエリを
利用することで、速くなるかも知れません。
サブクエリ部はインデックスを利用した検索を行う
必要がありますし、仕様上そう単純なものでは
ないのかもしれませんが・・・

<部門内の従業員数を取得する例>
[GROPY BY]
select b.bumon_code, count(*)
from bumon_tbl b, employee_tbl e
where b.bumon_code = e.bumon_code
and b.type = '1'
group by b.bumon_code;

[相関サブクエリ]
select bumon_code, (
select count(*) from employee_tbl
where bumon_code = b.bumon_code) count
from bumon_tbl b
where type = '1';

また、絞込みを行うためだけに結合をしているような
テーブルがあれば、結合ではなくEXISTS句に変えることも
いいかも知れません。
guest98
常連さん
会議室デビュー日: 2006/02/02
投稿数: 22
投稿日時: 2006-02-03 17:29
他の条件列にもインデックスは付けてあります。
関数索引も適用しました。

相関サブクエリ、EXISTSは、使ったことがありません。
ちょっと勉強してみます。

ヒントありがとうございます。

スキルアップ/キャリアアップ(JOB@IT)