操作系SQLの前処理を行うときに,XDBはディクショナリ表にアクセスして,SQL中に指定されている表の表定義情報を作成します。表定義情報とは,表にアクセスするときに必要となる情報で,表の情報だけではなく,列やインデクスの情報なども含んでいます。
一度作成した表定義情報をメモリ上に保存しておき,同じ表定義情報が必要になったときに,保存していた表定義情報を再利用します。表定義情報を保存しておく領域を表定義プールといい,ディクショナリ表を検索して作成した表定義情報を格納し,必要に応じて再利用する機能を表定義プール機能といいます。表定義プール機能を使用すると,ディクショナリ表にアクセスして表定義情報を作成する必要がなくなるため,その分のオーバヘッドが削減され,SQLの処理性能が向上します。
表定義プールがいっぱいになった場合,表定義プールに保存されている表定義情報が掃き出されます。表定義情報はLRU方式で管理されているため,最も長い時間使われていない表定義情報が掃き出されます。
表定義プール機能を使用する場合は,XDBサービス定義のxdb_tabledefpool_sizeオペランドを指定してください。
なお,使用中の表定義情報は表定義プールから掃き出されません。このため,掃き出すことができる表定義情報がなかったり,掃き出しても必要な大きさの表定義プールが確保できなかったりした場合は,その表定義情報は使用されたあとで保存されないため,再利用されません。