SQL 解説書

連合システム用の SQL オプション

この節には、以下の点が記されています。

列オプション

列オプションの主な目的は、SQL コンパイラーにニックネーム列の情報を提供することです。 1 つまたは複数の列の列オプションを 'Y' に設定すると、 コンパイラーは、評価操作を実行する述部でのプッシュダウンの可能性をさらに考慮できます。 プッシュダウン処理についての詳細は、管理の手引き: パフォーマンス を参照してください。

表 120. 列オプションとその設定値
オプション 有効な設定値 デフォルト設定値
numeric_string

'Y'
はい - この列には数値データのストリングだけが含まれます。 重要: この列に、後書きブランクの付いた数値ストリングだけが含まれる場合、 'Y' を指定することはお勧めできません。

'N'
いいえ - この列は数値データのストリングに限定されていません。

列の numeric_string を 'Y' に設定すると、 列データの分類に干渉するブランクがこの列には含まれないことを、 最適化プログラムに知らせることになります。 このオプションは、データ・ソースの照合順序が DB2 の照合順序とは異なる場合に役立ちます。 このオプションでマークされた列は、 照合順序が異なるためにローカルな (データ・ソースの) 評価から除かれるということはありません。

'N'
varchar_no_trailing_blanks 特定の VARCHAR 列に後書きブランクがないかどうかを示します。

'Y'
はい - この VARCHAR 列に後書きブランクはありません。

'N'
いいえ - この VARCHAR 列には後書きブランクがあります。

データ・ソース VARCHAR 列に埋め込みブランクがない場合、 最適化プログラムがその列にアクセスするときの戦略は、 列に後書きブランクが含まれているかどうかによって異なる部分があります。 デフォルトでは、 最適化プログラムは後書きブランクを実際に含んでいるものと「想定」しています。 この想定に基づき、 これらの列から返された値が希望する値になるように照会を変更するアクセス戦略が開発されます。 ただし、VARCHAR 列に後書きブランクがなく、そのことを最適化プログラムに知らせてある場合、 さらに効果的なアクセス戦略を開発することができます。 特定の列に後書きブランクがないことを最適化プログラムに知らせるには、 ALTER NICKNAME ステートメントでその列を指定してください (構文については、 SQL 解説書 を参照してください)。

'N'

関数マッピング・オプション

関数マッピング・オプションの主な目的は、 データ・ソースでデータ・ソース関数を実行した場合のコストに関する情報を提供することです。 プッシュダウン分析により、 マッピング内で 2 つの関数のいずれかが呼び出せると判断された場合、 最適化プログラムはマッピング定義で提供される統計情報を使って、 データ・ソース関数の実行コストの見積もりを DB2 関数の実行コストの見積もりと比較することができます。

表 121. 関数マッピング・オプションとその設定値
オプション 有効な設定値 デフォルト設定値
disable デフォルト関数マッピングを使用不可にする。 有効値は 'Y' および 'N'。 'N'
initial_insts データ・ソース関数が呼び出される最初と最後のときに処理される命令数の見積もり。 '0'
initial_ios データ・ソース関数が呼び出される最初と最後のときに実行される入出力回数の見積もり。 '0'
ios_per_argbyte データ・ソース関数に渡される引き数セットのバイトごとに使用される入出力回数の見積もり。 '0'
ios_per_invoc データ・ソース関数の呼び出しごとの入出力回数の見積もり。 '0'
insts_per_argbyte データ・ソース関数に渡される引き数セットのバイトごとに処理される命令数の見積もり。 '0'
insts_per_invoc データ・ソース関数の呼び出しごとに処理される命令数の見積もり。 '450'
percent_argbytes データ・ソース関数が実際に読み取る入力引き数バイトの平均パーセント値の見積もり。 '100'
remote_name データ・ソース関数の名前。 ローカル名

サーバー・オプション

サーバー・オプションは、サーバーを記述するために使用します。 位置情報 (データ・ソース・マシンの名前など) に加えて、 オプションでは、データ・ソースの機密保護およびパフォーマンス属性を指定できます。 機密保護オプションは、 パスワード通信の制御 (データ・ソースに送信される場合もされない場合もある) と、 認証情報 (大文字小文字を問わない ID およびパスワード) を提供します。 パフォーマンス・オプションは、 最適化プログラムが、データ・ソースで評価操作を実行できるかどうかを判別し、 データ・ソースからデータを検索する照会を完了するための 最適コスト・モデルを判別するのに役立ちます。

表 122. サーバー・オプションとその設定値
オプション 有効な設定値 デフォルト設定値
collating_sequence データ・ソースが連合データベースと同じデフォルト照合順序を使用しているかどうかを、 コード・セットと国別情報に基づいて指定する。 データ・ソースの照合順序が DB2 の照合順序と異なっている場合、 DB2 の照合順序に依存しているほとんどの操作は、 データ・ソースにおいてリモートに評価できません。 一例として、データ・ソースのあるニックネーム文字列に対して 異なる照合順序で MAX 列関数を実行する場合があります。 MAX 関数がリモート・データ・ソースにおいて評価される場合は結果が異なるので、 DB2 は集約操作と MAX 関数をローカルに実行します。

照会に等号が含まれている場合は、照合順序が異なっていても ('N' に設定されている)、 照会のその部分をプッシュダウンすることができます。 たとえば、述部 C1 = 'A' をデータ・ソースにプッシュダウンすることができます。 もちろん、データ・ソースでの照合順序で大文字小文字が区別されない場合、 そのような照会をプッシュダウンすることはできません。 データ・ソースが大文字小文字を区別しない場合、 C1= 'A' と C1 = 'a' の結果は同じです。 これは大文字小文字の区別を行う環境 (DB2) では受け入れられません。

管理者は、 データ・ソースの照合順序と一致する特定の照合順序の連合データベースを作成できます。 この方法を用いると、すべてのデータ・ソースが同じ照合順序を使用する場合、または、 ほとんどあるいはすべての列関数が同じ照合順序を使用するデータ・ソースに向けられている場合は、 パフォーマンスが高速になります。

'Y'
データ・ソースの照合順序は、連合データベースの照合順序と同じ。

'N'
データ・ソースの照合順序は、連合データベースの照合順序と異なる。

'I'
データ・ソースの照合順序は、連合データベースの照合順序と異なっており、 大文字小文字を区別しない (たとえば、'TOLLESON' と 'TolLESon' は同じものとみなされる)

'N'
comm_rate 連合サーバーとその関連データ・ソース間の通信速度を指定する。 秒当たりの MB 単位で表されます。

有効な値は 1 〜 2147483647 です。 値は整数だけ (たとえば 12) で表さなければなりません。

'2'
connectstring OLE DB Provider への接続に必要な初期化特性を指定します。 接続ストリングの詳細な構文と意味については、 Microsoft OLE DB 2.0 Programmer's Reference and Data Access SDK, Microsoft Press, 1998 の『Data Link API of the OLE DB Core Components』を参照してください。
なし
cpu_ratio データ・ソースの CPU が連合サーバーの CPU より、 どれほど速いまたは遅いかを表す。

有効な値は、0 より大きく 1x1023 より小さい値です。 値は任意の有効な double 表記 (たとえば、123E10、123、または 1.21E4) で表すことができます。

'1.0'
dbname 連合サーバーがアクセスするデータ・ソース・データベースの名前。 DB2 ファミリー・データ・ソースでは必須ですが、Oracle** データ・ソースには適用されません。 これは、Oracle インスタンスにはデータベースが 1 つしか含まれていないためです。 DB2 の場合、この値はインスタンス内の特定のデータベース (DB2 (OS/390 版) では、 データベース LOCATION 値) に対応しています。
なし。
fold_id (この表の最後にある注 1 および 4 を参照。) 連合サーバーが認証のためにデータ・ソースに送信するユーザー ID に適用される。 有効な値は以下のとおりです。

'U'
連合サーバーは、ユーザー ID をデータ・ソースに送信する前に、 ユーザー ID を大文字に変換します。 これは、DB2 ファミリーおよび Oracle** データ・ソースについて論理的に選択できます (この表の最後にある注 2 を参照)。

'N'
連合サーバーは、ユーザー ID をデータ・ソースに送信する前に、 ユーザー ID に対して何の処理も行いません。 (この表の最後の注 2 を参照。)

'L'
連合サーバーは、ユーザー ID をデータ・ソースに送信する前に、 ユーザー ID を小文字に変換します。

これらの設定値のいずれも使用しない場合は、 連合サーバーはユーザー ID を大文字にしてデータ・ソースに送信しようとします。 そのユーザー ID を正常に送信できない場合は、 サーバーはユーザー ID を小文字で送信しようとします。

なし。
fold_pw (この表の最後にある注 1、3 および 4 を参照。) 連合サーバーが認証のためにデータ・ソースに送信するパスワードに適用される。 有効な値は以下のとおりです。

'U'
連合サーバーは、パスワードをデータ・ソースに送信する前に、 パスワードを大文字に変換します。 これは、DB2 ファミリーおよび Oracle** データ・ソースについて論理的に選択できます。

'N'
連合サーバーは、パスワードをデータ・ソースに送信する前に、 パスワードに対して何の処理も行いません。

'L'
連合サーバーは、パスワードをデータ・ソースに送信する前に、 パスワードを小文字に変換します。

これらの設定値のいずれも使用しない場合は、 連合サーバーはパスワードを大文字にしてデータ・ソースに送信しようとします。 そのパスワードを正常に送信できない場合は、 サーバーはパスワードを小文字で送信しようとします。

なし。
io_ratio データ・ソースの入出力システムが連合サーバーの入出力システムより、 どれほど速いまたは遅いかを表す。

有効な値は、0 より大きく 1x1023 より小さい値です。 値は任意の有効な double 表記 (たとえば、123E10、123、または 1.21E4) で表すことができます。

'1.0'
node データ・ソースを RDBMS のインスタンスとして定義するための名前。 すべてのデータ・ソースについて必須です。

DB2 ファミリー・データ・ソースの場合、これは、 連合データベースの DB2 ノード・ディレクトリーで指定されているノードです。 このディレクトリーを表示するには、 db2 list node directory コマンドを発行します。

Oracle** データ・ソースの場合、 この名前は Oracle** tnsnames.ora ファイルで指定されているサーバー名です。 Windows NT プラットフォームでこの名前にアクセスするには、 Oracle** SQL Net Easy Configuration ツールの 「View Configuration Information」オプションを指定します。

なし。
password パスワードがデータ・ソースに送信されるかどうかを指定する。

'Y'
パスワードは常にデータ・ソースに送信されて妥当性検査されます。 これはデフォルト値です。

'N'
パスワードはデータ・ソースに送信されず (ユーザー・マッピングに関係なく)、 妥当性検査されません。

'ENCRYPTION'
パスワードは常に暗号化された形式でデータ・ソースに送信されて妥当性検査されます。 暗号化されたパスワードをサポートする DB2 ファミリー・データ・ソースについてのみ有効です。

'Y'
plan_hints プラン・ヒントを使用可能にするかどうかを指定する。 プラン・ヒントはステートメントの一部分であり、 データ・ソース最適化プログラムについての追加情報を提供します。 特定の照会タイプについてこの情報を利用すれば、 照会パフォーマンスを改善することができます。 プラン・ヒントは、データ・ソース最適化プログラムが索引を使用するかどうか、 どの索引を使用するか、またはどの表結合順序を使うかを判別するのに役立ちます。

'Y'
データ・ソースがプラン・ヒントをサポートしている場合は、 プラン・ヒントが使用可能になります。

'N'
プラン・ヒントはデータ・ソースで使用可能になりません。

'N'
pushdown

'Y'
DB2 はデータ・ソースに操作を評価させることを考慮します。

'N'
DB2 はリモート・データ・ソースからの列しか検索せず、 データ・ソースに結合などのその他の操作を評価させません。

'Y'
varchar_no_trailing_blanks このデータ・ソースが、 ブランクが埋め込まれていない varchar 比較セマンティクスを使用するかどうかを指定する。 後書きブランクを含んでいない可変長文字ストリングについて、 一部の DBMS のブランク埋め込みなしの比較セマンティクスでは、 DB2 の比較セマンティクスと同じ結果が戻されます。 データ・ソースにあるすべての VARCHAR 表 / 視点の列に 後書きブランクが含まれていないことが確かである場合は、 データ・ソースについてこのサーバー・オプションを 'Y' に設定することを考慮してください。 このオプションは、Oracle** データ・ソースでしばしば使用されます。 ニックネーム (視点を含む) を持つ可能性のあるすべてのオブジェクトを考慮に入れてください。

'Y'
このデータ・ソースのブランク埋め込みなしの比較セマンティクスは、DB2 と同じです。

'N'
このデータ・ソースのブランク埋め込みなしの比較セマンティクスは、 DB2 と同じではありません。

'N'

表 122 の注:

  1. このフィールドは、認証に指定される値に関係なく適用されます。
  2. DB2 はユーザー ID を大文字で保管するので、 値 'N' と 'U' は論理的に互いに同等です。
  3. パスワードの設定が 'N' である場合は、fold_pw を設定しても効果はありません。 パスワードが送信されないので、大文字小文字の区別は意味をなしません。
  4. いずれかのオプションについてヌル値設定を使用することは避けてください。 DB2 がユーザー ID とパスワードの解決を複数回試行することになるので、 ヌル値設定は有用に思えますが、パフォーマンスが低下する場合があります (DB2 が、 データ・ソース認証に成功するまでに ユーザー ID とパスワードを 4 回送信するということもあり得ます)。

ユーザー・オプション

ユーザー・オプションは、ユーザー・マッピングの許可および会計ストリング情報を提供します。 これらのオプションを使用すると、 データ・ソースでの認証時に DB2 認証 ID を表すための ID およびパスワードを指定できます。

表 123. ユーザー・オプションとその設定値
オプション 有効な設定値 デフォルト設定値
remote_authid データ・ソースでの許可 ID を示す。 有効な設定値には、長さ 255 以下の任意のストリングが含まれます。 このオプションを指定しない場合、データベースへの接続に使用された ID が使用されます。 なし。
remote_domain このデータ・ソースへの接続に関する認証をユーザーに与えるのに使用される、 Windows NT ドメインを示します。 有効な設定には、何らかの有効な Windows NT ドメイン名が含まれます。 このオプションを指定しない場合、データ・ソースへの認証は、 そのデータベースのデフォルト認証ドメインを使用して行われます。 なし。
remote_password データ・ソースでの許可パスワードを示す。 有効な設定値には、長さ 32 以下の任意のストリングが含まれます。 このオプションを指定しない場合、データベースへの接続に使用されたパスワードが使用されます。 なし。
accounting_string DRDA 会計ストリングを指定するために使用される。 有効な設定値には、長さ 255 以下の任意のストリングが含まれます。 このオプションは、会計情報を渡す必要がある場合にのみ必須です。 DB2 コネクト 使用者の手引き を参照。 なし。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]