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.sizeoracle.max.string.sizeの値が等しくない場合は、列の選択フラグが表示されないことに注意してください。これは、拡張文字列が有効になっていないデータベースなどで発生します。