2010年11月 4日

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

お世話になります、片山です。

PostgreSQL8.2.14(サーバ、クライアント共に)+ODBC(ドライバver8.2.4)を使用して
おります。
(接続文字列は以下の通りです)
DSN=PostgreSQL35W;DATABASE=MIDO;SERVER=MIDO;PORT=5432;UID=MID
O;PWD=xxxxxxxxxxxxxx;SSLmode=disable;ReadOnly=0;Protocol=7.4-2;FakeOidIndex=
0;ShowOidColumn=0;RowVersioning=0;ShowSystemTables=0;ConnSettings=;Fetch=100;

Socket=4096;UnknownSizes=0;MaxVarcharSize=255;MaxLongVarcharSize=8190;Debug=0
;CommLog=0;Optimizer=1;Ksqo=1;UseDeclareFetch=0;TextAsLongVarchar=1;UnknownsA
sLongVarchar=0;BoolsAsChar=1;Parse=0;CancelAsFreeStmt=0;ExtraSysTablePrefixes
=dd_;;LFConversion=1;UpdatableCursors=1;DisallowPremature=0;TrueIsMinus1=0;BI
=0;ByteaAsLongVarBinary=0;UseServerSidePrepare=0;LowerCaseIdentifier=0;XaOpt=
1

280万件のデータが入ったテーブル(テーブルサイズ:2161MB)に対して、全レコー
ドを取得する単純なSQLを発行しましたところ、
エラーが発生しました。
#エラーが返ってくるまでの時間は1秒程度です。

■エラー内容
「[Microsoft OLE DB Provider for ODBC Drivers] Out of memory while reading
tuples.;Error while executing the query (SQLState:S1000)」

■メモリの消費量
クライアントメモリ⇒仮想メモリ300MB 実メモリ60MB
サーバメモリ⇒接続時から仮想メモリ158MB  実メモリ38MBでほぼ安定

メモリの消費量からして、メモリの制限にひっかかったとは考えにくいのですが...
お手数ですが以下の2つについて教授願えないでしょうか。
1.サーバorクライアントの問題どちらであるか
2.エラーとなる原因

以上お願いいたします。

投稿者 xml-rpc : 2010年11月 4日 17:38
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/99705
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。