S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

SELECT文での排他オプション

100万件超えるテーブルのカウントを取ると、

KFPA11912-E Insufficient memory for DB exclusive control[PrdbResultSet.next][HiRDB_CONNECTION_ID(sds01:882201:6452)]

ってなメッセージが出てきました。
排他のためのメモリーが足りねぇってことだけど、なんでだ?と思ってたら、どうもHiRDBではSELECT文の排他オプションがWITH SHARE LOCKってのがデフォルトになってるらしい。
んで、共有ロックするためのメモリが足りませんよ、と言ってるのか。
まぁ件数考えたら共有ロックするような件数じゃないしw
ということで、排他モードを解除して検索するんなら
SELECT COUNT(*) FROM hoge WITHOUT LOCK [WAIT|NOWAIT]
ってな感じにすればいいらしい。
詳しくはこちら