- - PR -
SQL文について質問したいのですが。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-29 16:36
platiniさん
スガさん リックスさん 返信ありがとうございます。 肝心な事を書き忘れておりました。 DBはPostgreSQLです。すみませんでした。 GROUP BY 句は、初めて使用します。 集計を行う際に使用するのですね。 勉強になりました。 PostgreSQLでもうまく取得する事ができました。 ありがとうございました。 でも、ちょっと気になる事があるのですが。 DBの件数は「1970件」なのですが、 SQLの応答時間が長いような気がするのですが。 下記のようなSQL文ですと、応答時間が「0.020000秒」です。 select * from sinsei_tbl where product_no = 'a0001000' GROUP BY 句を使用すると、多少処理が遅くなるのでしょうか? platiniさん SQL応答時間:16.063000秒 スガさん すみません。エラーとなって実行できませんでした。 ERROR: Column reference "product_no" is ambiguous リックスさん SQL応答時間:13.519000秒 | ||||
|
投稿日時: 2003-09-29 17:06
Group byを使用すると、遅くなるのは間違いないです。
SQLの演算スピードとしては早くなることはありません。 (SQLのParse処理は少なくともselect * from より明らかにかかる) ただ、元データがもっと件数が多い場合、 SQLの実行開始(着手)時間は select * のほうが 速いかわりに、結果のデータ量はgroup byのほうが 少なくなるので、その分早くなるときがあるかもしれません。 product_noと、sinsei_idで複合索引を作成すると、 速くなるように思います。(もう索引作ってますか?) | ||||
|
投稿日時: 2003-09-29 17:19
platiniさん
返信ありがとうございます。
本当に勉強になります。ありがとうございます。 >product_noと、sinsei_idで複合索引を作成すると、 >速くなるように思います。(もう索引作ってますか?) 申し訳ないのですが、「複合索引」というのは何でしょうか? インデックスの事ですか? product_noとsinsei_idはPRIMARY KEYで登録しておりますので、 インデックスはできているのですが。 | ||||
|
投稿日時: 2003-09-29 17:25
ども、ほむらです。
group by は内部的にデータをソートしているはずなので 処理時間が遅くなるのはそのためだと思います。 group by に限らず、distinct(重複削除)を使用した場合も同様のはず。 # 記述内容が不安なので削除 [ メッセージ編集済み 編集者: ほむら 編集日時 2003-09-29 17:29 ] | ||||
|
投稿日時: 2003-09-29 17:38
どうも、はじめまして。
platiniさんのSQLが通るようでしたら、GROUP BY句の前に where b.product_no = a.product_no を追加してみてはいかがでしょうか? | ||||
|
投稿日時: 2003-09-29 19:09
ほむらさん
たるたるさん 返信ありがとうございました。 たるたるさんの通りに、where句を追加した結果、 SQL文の応答時間がすごく短縮されました。 where句を追加しない場合 SQL応答時間:17.055000秒 where句を追加した場合 SQL応答時間:1.282000秒 皆様。 本当に今回はありがとうございました。 そして、大変勉強になりました。 また、何かありましたら宜しく御願い致します。 | ||||
|
投稿日時: 2003-09-29 20:35
蛇足的な投稿になってしまいますが、
上での間違いを訂正しておきます。。 (PostgreSQLで動くと思います)
何にせよ、問題を解決なされているようなので何よりです! ![]() | ||||
|
投稿日時: 2003-09-29 21:26
こんばんは。完全に話題よりそれてしまいますが、
@ITさまにご要望です。 今回のスレッドに参加して思ったことですが、データベース・SQLの話題を 「IP Network」で行うのには違和感がありました。 開発・運用管理のどちらも、ネットワークとはスキルの重複がありません。 また、今回のクエリーの組み方にしても、プログラミングの(手続き的な)考え方とも 違う、ある種独特(セット指向)の考え方やスキルが要求されます。 データベースというカテゴリーで、独立したフォーラム・BBSがあったほうが 良いと感じました。 いきなり不躾な内容となってしまいましたが、検討していただければと思います。 |