z/os で DB2 10 を使用しています。私の質問は、私の列と他の列の列連結に別のインデックス(クラスター化されていない)がすでにある場合、列にインデックスを追加すると、インデックスを追加する通常のコストがかかるかどうかです。たとえば、インデックスを追加したいcol1 と col2 の連結である col4 にインデックスが存在する場合、col1 に。
状況が気になる方はどうぞ。別のデータベースから変換するときにいくつかのテーブルを作成しましたが、キーは結合されたフィールドにありました。古いキーを模倣する (システム全体を書き直すのではなく) が、これらのフィールドを使いやすいように分割するために、古い個々の列をすべて含むテーブルと、トリガーによって作成されるキー用の新しい列をいくつか用意します (挿入時)。 ) いくつかの列を連結することにより、それらがスペースと等しくない場合は nb となり、これらの新しい列にはインデックスが付けられます。
したがって、たとえば、テーブルには col1 (char)、col2 (char)、および col3 があり、挿入時に col1 と col2 の連結としてインデックス付き col4 が作成されます。
これは、col4 が古いデータベースと一致するように行われました。たとえば、col1 または col2 が空白の場合、col4 は存在しません。
まあ、欠点は、これが包括的なルールとして行われ、一部のテーブルでは col1 と col2 が決して空白にならないことです。そのため、col1、col2 のインデックスは同じになります...そして実際には、(col2 ではなく) col1 のみで検索したい場合があるため、実際に優先されます...特に他のテーブルへの結合で使用します。
それで...その場合、db2はほとんど同じことである非クラスター化インデックスから何らかの利点を得ますか?