« 外部結合 | Main | Genio »

2003.12.19

SQLの複雑さと実行回数

SQLネタをもう1つ。

あるひとかたまりのデータを取得する場合、
・複雑なSQLを1回
・簡単なSQLを複数回
を比較すると、データ量が少ないうちは前者のほうがパフォーマンスがいいこともありますが、
データ量が膨大になってくると、後者のほうがパフォーマンスがよかったりすることもあるようで。

SQLの実行時間が、(データ取得後の処理も含めて)平均20分だったものが、1分程度で片付くようになったり(笑
まぁ、単純に前者のSQLがダメダメだったから、という説もありますが(汗

内容的には、プログラム(Java)でも処理可能な集計処理も1つのSQLでまとめてやってしまおうと、
多数のLEFT OUTER、多数のSUBQUERY、多数のCASE WHEN節を使った「自己満足に浸れる」SQL(爆)を、
シンプルにして集計処理をJavaに任せるようにしたんですけどね(^^;;

#CASE WHENなどを使わずにGROUP BYなどだけで事足りるような場合だと、SQLで集計もやってしまった方が速いことも多いようですが。

|

« 外部結合 | Main | Genio »

DB」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/36461

Listed below are links to weblogs that reference SQLの複雑さと実行回数:

« 外部結合 | Main | Genio »