[pgsql-jp: 40499] Re: 大容量のテーブルに対してSQLを発行するとエラーになる件について

Itagaki Takahiro itagaki.takahiro @ gmail.com
2010年 11月 4日 (木) 18:27:32 JST


2010/11/4 Hiroshi Inoue <inoue @ tpf.co.jp>:
> psqlodbcドライバは取得データをメモリに保持しますので、これだけ大量の
> データを取得すると大抵の場合メモリーオーバーフローを起こします。回避
> するためにはDeclare~Fetchを使用するをオンにして利用してください。

便乗質問になりますが、この際には DECLARE と FETCH の SQL を
発行することになりますか? 拡張プロトコルであれば、
プロトコル・レベル・カーソルもサポートされていると思いますが、
ODBC ドライバでは利用されないでしょうか?

少数の行の取得の場合は DECLARE + FETCH のオーバーヘッドが
無視できないので、少しでも軽いプロトコル・レベル・カーソルを
使えれば良いなと思うことがあります。
# libpq ではサポートされていないことが分かっているので、
# もし ODBC でサポートされているならば、移行を考えていました。

-- 
Itagaki Takahiro


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