1.20 長いテキストの使用
バージョン12.2.1.4.1以降、EDQでは、max_string_sizeがEXTENDEDに設定されたデータベースがサポートされているため、最大サイズが32767バイトのVARCHAR列を作成できます。EDQ結果表のすべてのVARCHAR列は、これまでデフォルトでVARCHAR(4000)でしたが、VARCHAR(32767)として作成されるようになりました。これにより、はるかに長いデータを格納できるようになりますが、お客様の環境によっては、次のような問題が発生します:
- VARCHAR(32767)への結果の書込みが大幅に遅くなる可能性があります。
- 6398バイトを超える長さが定義されたVARCHAR列が、索引付けされない可能性があります。
一般的に、結果表の索引は、結果ブラウザのデータのソートとフィルタに使用されます。結果表に索引がなくてもバッチ処理に問題はありませんが、次に示すように、許容可能なパフォーマンスに索引が不可欠なユース・ケースが存在します:
- ステージング済データ参照のキー列。
- 一致表のCODED_VALUE列。
VARCHARの最大サイズは、ファイルdirector.properties
のプロパティoracle.max.string.size
を設定すると小さくできます。たとえば:
oracle.max.string.size = 4000
ただし、必要な場合に、長いデータを書き込むことはできません。
ほとんどの場合に許容可能なパフォーマンスを維持し、必要な場合には長いデータ書き込めるようにするため、EDQバージョン12.2.1.4.3以降では、ステージング済データとスナップショットの作成メカニズムにより、個々の列をlongとマークできるようになっています。longとマークされた列はVARCHAR(32767)として作成され、その他の列はVARCHAR(4000)として作成されます。
デフォルトの列サイズは、ファイル
director.properties
の次のプロパティを設定して制御できます:
- oracle.default.string.size: longとマークされていない任意の列に使用するサイズを設定します。デフォルト値は4000です。
- oracle.max.string.size: longとマークされている任意の列に使用するサイズを設定します。拡張文字列が有効になっているデータベースのデフォルト値は32767で、それ以外は4000です。
oracle.default.string.sizeとoracle.max.string.sizeの値が等しくない場合は、列の選択フラグが表示されないことに注意してください。これは、拡張文字列が有効になっていないデータベースなどで発生します。