リファレンスガイド> データソースの機能サポート> データソースを組み合わせる際の関数サポートの問題> 照合シーケンス
 
照合シーケンス
TDVはバイナリー照合を使用し、照合設定の変更をサポートしていません。そのため、基になるデータソースの照合設定が異なる場合、照合に依存するクエリ(たとえば、CHARまたはVARCHARデータを含む列で並べ替えるクエリ)では、プッシュクエリと非プッシュクエリの結果が異なる場合があります。
データソースはさまざまな照合スキームをサポートし(一部は複数の照合スキームをサポートします)、それらのデフォルトは常にTDVと同じではありません。さらに、ほとんどのデータソースでは許可されていないため、TDVは接続ごとまたはクエリごとのデータソース照合スキームの接続を変更できません。
この照合の違いにより、列に特殊文字(%、- 、その他)が含まれている場合、予測できない結果や誤った結果が生じる可能性があります。ユーザーは、次のSQL構造を探して、結果がこの違いの影響を受けないことを確認する必要があります。
JOIN中、TDVはデフォルトの結合アルゴリズムとしてSORT MERGEを選択します。 SORT MERGEを実行すると、TDVは両側にORDER BY句を挿入します。結合の片側にデータソースデータが含まれている場合、並べ替え順序がTDVの期待とは異なる可能性があるため、MERGEプロセスで誤った結果が生成される可能性があります。
オプションは、SORT MERGEクエリで{OPTION HASH}を使用し、TDVにSORT MERGEアルゴリズムの代わりにHASHアルゴリズムを使用するように強制することです。ただし、クエリエンジンは小さい側をハッシュしてから大きい側をストリーミングする必要があるため、HASHアルゴリズムはより多くのメモリを使用することに注意してください。
一般に、ORDER BYがプッシュされた場合とTDV内で実行された場合では、データソースの結果が異なる場合があります。
WHERE句に特殊文字を含む述語が含まれている場合、プッシュと非プッシュで結果が異なる場合があります。
データソースの[詳細設定]タブの下部にあるチェックボックスを使用すると、データソースを照合に敏感なものとしてマークできます。結合に関係するデータソースの1つが照合に敏感であるとマークされている場合、TDVはSORT MERGE結合アルゴリズムを使用しません。
多くの場合、SQLで別の照合スキームを指定できますが(たとえば、「COLLATE Latin1_General_BIN」を使用)、これはインデックス作成に干渉し、パフォーマンスに影響を与える可能性があります。