SQLを実行する前に,XDBはSQLの解析処理を行います。この解析処理のことをSQLの前処理といい,SQLの前処理によって作成される情報をSQLの前処理結果といいます。前処理結果にはアクセスパスなどの情報が含まれています。
XDBは,一度作成した前処理結果をメモリ上に保存しておき,同じSQLが実行されたときに,保存していた前処理結果を再利用します。前処理結果を保存しておく領域をSQLプールといい,前処理結果を再利用する機能をSQLプール機能といいます。SQLプール機能を使用すると,SQLの前処理に掛かるオーバヘッドが削減され,SQLの処理性能が向上します。
SQLプールがいっぱいになった場合,SQLプールに保存されている前処理結果が掃き出されます。前処理結果はLRU方式で管理されているため,最も長い時間使われていない前処理結果が掃き出されます。
ただし,使用中の前処理結果はSQLプールから掃き出されません。このため,掃き出すことができる前処理結果がなかったり,掃き出しても必要な大きさのSQLプールが確保できなかったりした場合は,前処理結果を保存するためのメモリを動的に確保します。
SQLプール機能を使用する場合は,XDBサービス定義のxdb_sqlpool_sizeオペランドを指定してください。
なお,SQLプール機能では,スレッドごとにメモリを割り当てているため,スレッドごとに独立して動作します。