[pgsql-jp: 34490] JDBCとavg関数

koyama mlac @ hintmark.com
2004年 12月 15日 (水) 19:54:18 JST


k7-koyama ともうします

Postgresql7.4.5 を SuSELinuxで使っています(kernel2.6です)

AVG 関数 の速度で、疑問に思ったので、質問させて下さい。

================================================
対象テーブル

table a  
create table a {
 a_key_col integer not null  primary key,
 str_col varchar(50) not null
};


table b 

create table b {
 b_key_col integer not null  primary key,
 a_key_col integer not null,   ----> a.a_key_col 外部キー
 b_key_col_2 integer not null, 
 b_num     integer not null
};


=================================================
上記のテーブルから、作成した view

CREATE VIEW view SELECT 
aaa.*,
bbb.str_col 
FROM 
  (SELECT 
      b_key_col_2, 
      a_key_col,
      sum(b_num) AS b_num,
      avg(b_num) AS b_num 
   FROM b 
   GROUP BY b_key_col2, a_key_col 
   )  aaa   
LEFT OUTER JOIN b ON a.a_key_col=b.a_key_col ;


これを pgsql で引くと、1秒以内でとてもスムーズに早く引けるのですが、
JDBC経由では、ものすごく時間がかかってしまいます(30秒程度)


Postgresは、ソースコードをコンパイルして入れ、JDBC もその際に、
生成されたものです。
pgsql自体でも時間がかかれば、気にならないのですが、レコードが
僅か 10レコードしかないテーブルなので、JDBCドライバの問題なのか
疑問に思いました。

みなさんの環境で、このような事が起こっていませんでしょうか?

宜しくお願い致します。



















pgsql-jp メーリングリストの案内