Microsoft SQL Serverコネクタ > Microsoft SQL Serverコネクタによるマッピングとマッピングタスク > SQL ELTの最適化
  

SQL ELTの最適化

Microsoft SQL Serverソースからデータの読み取りを行って、データを変換し、ターゲットにデータの書き込みを行う場合に、SQL ELTの最適化を設定して、トランスフォーメーションロジックをソースまたはターゲットデータベースシステムにプッシュすることができます。ソースとターゲットのデータベースが同じである場合は、完全なSQL ELTの最適化を設定するとパフォーマンスを向上させることができます。
SQL ELTの最適化の適用時に、Secure Agentはトランスフォーメーションロジックをデータベースにプッシュします。Secure AgentはトランスフォーメーションロジックをSQLクエリに変換し、そのSQLクエリをデータベースに送信します。トランスフォーメーションを処理するSQLクエリはデータベースで実行されます。
SQL ELTの最適化により、データベースでのトランスフォーメーションロジックの処理がSecure Agentよりも高速になるため、マッピングのパフォーマンスが向上します。また、Secure Agentではデータベースから読み取るデータ量も少なくなります。
Secure Agentがデータベースにプッシュするトランスフォーメーションロジックの量は、データベース、トランスフォーメーションロジック、およびマッピング設定によって決まります。Secure Agentでは、データベースにプッシュできないすべてのトランスフォーメーションロジックが処理されます。
SQL ELTの最適化をマッピングに設定すると、Secure Agentは、ソースからターゲットまで、またはソースデータベースにプッシュできないダウンストリームトランスフォーメーションに達するまで、最適化されたマッピングの分析を行います。Secure Agentでは、トランスフォーメーションロジックがプッシュダウンされたソースごとにSELECT文を生成して実行します。次に、Secure AgentはこのSQLクエリの結果を読み込み、マッピングの残りのトランスフォーメーションを処理します。
詳細モードのマッピングに対してSQL ELTの最適化を設定することはできません。
Secure Agentは、次のトランスフォーメーションロジックをMicrosoft SQL ServerソースまたはMicrosoft SQL Serverターゲットにプッシュできます。
トランスフォーメーション
サポートされているSQL ELTの最適化のタイプ
Aggregator
ソース、完全
Expression
ソース、完全
フィルタ
ソース、完全
Joiner
ソース、完全
Sorter
ソース、完全
Union
ソース、完全
Router
完全

完全なSQL ELTの最適化

完全なSQL ELTの最適化の適用時に、Secure Agentはマッピングのすべてのトランスフォーメーションロジックをターゲットデータベースにプッシュします。[SQL ELTの最適化]セクションで完全なSQL ELTの最適化を設定できます。
完全なSQL ELTの最適化は、ソースとターゲットが同じ接続にある場合に適しています。例えば、マッピングにMicrosoft SQL ServerソースとMicrosoft SQL Serverターゲットが含まれている場合は、完全なSQL ELTの最適化を設定して、すべてのトランスフォーメーションロジックをMicrosoft SQL ServerソースデータベースからMicrosoft SQL Serverターゲットデータベースにプッシュします。

ソースSQL ELTの最適化

ソースSQL ELTの最適化の適用時に、Secure Agentは、ソースからターゲットまで、またはソースデータベースにプッシュできないダウンストリームトランスフォーメーションに達するまで、最適化されたマッピングの分析を行います。
Secure Agentでは、データベースにプッシュできるトランスフォーメーションごとのトランスフォーメーションロジックに基づいて、SELECT文が生成、実行されます。次に、Secure AgentではこのSQLクエリの結果が読み込まれ、残りのトランスフォーメーションが処理されます。
ソースとターゲットが異なるデータベースに存在している場合は、SQL ELTの最適化を使用するようにマッピングを設定できます。例えば、マッピングにMicrosoft SQL ServerソースとOracleターゲットが含まれている場合は、ソースSQL ELTの最適化を設定して、処理する一部のトランスフォーメーションロジックをMicrosoft SQL Serverソースにプッシュすることができます。

SQL ELTの最適化の関数

SQL ELTの最適化を使用した場合、Secure Agentはデータベース内の同等の関数を特定することで、トランスフォーメーションの式を変換します。データベースに対応する関数が存在しない場合、Secure Agentはトランスフォーメーションロジックを処理します。
次の表に、Microsoft SQL Serverで使用できるSQL ELTの最適化の関数とそのサマリを示します。
関数
SQL ELTの最適化のタイプ
ABS()
ソース、完全
ADD_TO_DATE()
完全
ASCII() 1
完全
AVG()
ソース、完全
CEIL() 1
完全
CHR()
完全
CONCAT() 1
完全
COS()
ソース、完全
COSH()
完全
COUNT()
ソース、完全
DATE_COMPARE()
ソース、完全
DATE_DIFF()2
完全
DECODE()
ソース、完全
EXP()
ソース、完全
FIRST()
完全
FLOOR() 1
完全
GET_DATE_PART()
完全
IIF()
ソース、完全
IN()
ソース、完全
INSTR()
完全
IS_DATE()2
完全
IS_NUMBER()2
完全
ISNULL()
ソース、完全
LAST_DAY()2
完全
LENGTH() 1
完全
LN()
完全
LOG()
完全
LOWER()
ソース、完全
LPAD()2
完全
LTRIM() 1
完全
MAX()
ソース、完全
MIN()
ソース、完全
MD5() 2
ソース、完全
MOD() 1
完全
POWER()
ソース、完全
REPLACECHR()2
完全
REPLACESTR()2
完全
ROUND(NUMBER)
完全
RTRIM() 1
完全
SIGN()
完全
SIN()
ソース、完全
SINH()
完全
SOUNDEX()
完全
SQRT()
ソース、完全
STDDEV()
完全
SUBSTR()
完全
SUM()
ソース、完全
SYSTIMESTAMP() 1
完全
TAN()
ソース、完全
TANH()
完全
TO_BIGINT
完全
TO_CHAR(DATE) 1
完全
TO_CHAR(NUMBER) 1
完全
TO_DATE()
完全
TO_DECIMAL()
完全
TO_FLOAT()
完全
TO_INTEGER()
完全
TO_NUMBER()
完全
TRUNC(NUMBER)
完全
UPPER()
ソース、完全
VARIANCE()
完全
1ソースSQL ELTの最適化で有効になっているマッピングの式トランスフォーメーションにも適用されます。
2式トランスフォーメーションにのみ適用されます。

SQL ELTの最適化の変数

SQL ELTの最適化を使用した場合、Secure Agentはデータベース内の同等の変数を特定することで、トランスフォーメーションの式を変換します。データベースに対応する変数が存在しない場合、Secure Agentはトランスフォーメーションロジックを処理します。
次の表に、Microsoft SQL Serverで使用できるSQL ELTの最適化の変数とそのサマリを示します。
変数
SQL ELTの最適化のタイプ
SESSSTARTTIME
完全
SYSDATE
完全

SQL ELTの最適化の設定

マッピングを最適化するには、マッピングをタスクに追加してから、マッピングタスクでSQL ELTの最適化を設定します。
    1マッピングタスクの[ランタイムオプション]タブで、[SQL ELTの最適化]セクションに移動します。
    2[SQL ELTの最適化]リストから、必要なSQL ELTの最適化のタイプを選択します。

クロススキーマSQL ELTの最適化

マッピングタスクでクロススキーマSQL ELTの最適化を使用し、同じデータベース内にある異なるスキーマに関連付けられたMicrosoft SQL Serverオブジェクトに対してデータの読み取りと書き込みを行うことができます。
クロススキーマSQL ELTの最適化を使用するには、2つのMicrosoft SQL Server接続を作成し、それぞれの接続にスキーマを指定します。ソース接続のスキーマとターゲット接続のスキーマがそれぞれ異なり、両方のスキーマが同じデータベースに属している必要があります。マッピングタスクにSQL ELTの最適化を設定する場合は、詳細セッションプロパティでクロススキーマSQL ELTの最適化を有効にします。デフォルトでは、このチェックボックスはオンです。

クロススキーマSQL ELTの最適化の設定

Microsoft SQL ServerマッピングタスクのクロススキーマSQL ELTの最適化を設定するには、次の手順を実行します。
    1次の2つのMicrosoft SQL Server接続を作成し、それぞれに異なるスキーマを定義します。
    1. asqlsv_1 Microsoft SQL Server接続を作成し、接続プロパティでCQA_SCHEMA1スキーマを指定します。
    2. bsqlsv_2 Microsoft SQL Server接続を作成し、接続プロパティでCQA_SCHEMA2スキーマを指定します。
    2Microsoft SQL Serverマッピングm_sqlsv_pdo_acrossSchemaを作成します。以下のタスクを実行します。
    1. aCQA_SCHEMA1を使用してデータを読み取るには、ソーストランスフォーメーションを追加し、Microsoft SQL Serverソースオブジェクトと接続sqlsv1を含めます。
    2. bCQA_SCHEMA2を使用してデータを書き込むには、ターゲットトランスフォーメーションを追加し、Microsoft SQL Serverターゲットオブジェクトと接続sqlsv2を含めます。
    3Microsoft SQL Serverマッピングタスクを作成し、次のタスクを実行します。
    1. a設定したMicrosoft SQL Serverマッピングm_sqlsv_pdo_acrossSchemaを選択します。
    2. b[ランタイムオプション]タブの[SQL ELTの最適化]セクションで、SQL ELTの最適化の値を[完全]に設定します。
    3. c[詳細セッションプロパティ]セクションで、[クロススキーマSQL ELTの最適化の有効化]チェックボックスを選択します。
    4. dタスクを保存し、[終了]をクリックします。
    マッピングタスクを実行すると、Secure Agentは、CQA_SCHEMA1スキーマに関連付けられたMicrosoft SQL Serverソースオブジェクトからデータを読み取り、CQA_SCHEMA2スキーマに関連付けられたMicrosoft SQL Serverターゲットオブジェクトにデータを書き込みます。

SQL ELTの最適化に関するルールとガイドライン

Microsoft SQL Serverマッピングに対してSQL ELTの最適化を設定する場合は、次のようなルールとガイドラインを考慮してください。
Microsoft SQL Serverマッピングに対して完全なSQL ELTの最適化を設定する場合は、次のようなルールとガイドラインを考慮してください。
完全なSQL ELTの最適化が有効になっているMicrosoft SQL Serverマッピングで式トランスフォーメーションを使用する場合は、次のようなルールとガイドラインを考慮してください。