[SQL]タブ

[SQL]タブには、以下の特性があります。

特性

内容

データベース情報

このパラメータを使用して、Magic uniPaaSがRDBMSに渡すことのできるデータベース固有の情報を指定します。このパラメータはオプションです。

オーナ名

テーブルまたはビューの所有者を指定します。論理名を使用することができます。

 

位置

Magic uniPaaSは、DBMSの種類によってデフォルトで使用できる位置インデックスが決まっています。Oracleの場合、ROWIDカラムが使用されます。これ以外のRDBMSでは、最小の重複不可インデックスが使用されます。そのほか、重複不可インデックス以外のインデックスを指定することもできます。

この特性の有効な値は、以下のとおりです。

  • D=デフォルト …… Magic uniPaaS独自のデフォルト値をテーブルの位置インデックスとして使用します。

  • R=ROWID …… Oracle のテーブルには、ROWID カラムを使用します。

  • U=重複不可インデックス …… 他のRDBMSには、最も短い重複不可インデックスを使用します。このインデックスは、他のインデックスを位置キーとして使用することで上書きできます。

注意:

「重複不可インデックス」を指定した場合、性能を改善するためにデータベースの実際のインデックスを使用してください。

インデックス

[位置]特性で 「U=重複不可インデックス」を指定した場合、ここで「重複不可インデックス」を位置として指定します。

デフォルト位置

[位置]パラメータで「D=デフォルト」を指定した場合、「デフォルト位置インデックス」として使用するインデックスを指定します。この特性は読み取り専用です。

Magic uniPaaSは最小のセグメント(最も短いということではありません)を使用して自動的にユニークな識別子を選択します。

テーブルの存在チェック

blue_up.jpg

この設定により、実行時にアクセスするSQLテーブルの存在をチェックし、存在しない場合にSQLテーブルを作成するかを指定します。

この特性の有効な値は、以下のとおりです。

  • Yes …… データベースにテーブルが作成されます。また、アクセスするテーブル全ての存在がチェックされます。このチェックにより処理速度が低下する可能性があることに注意してください。

  • No …… アクセス前にテーブルの存在がチェックされません。テーブルが存在しない場合、RDBMSからエラーが出力されます。実行モードでは、処理速度を高めるために「No」に設定してください。

  • D=データベースに依存 …… 使用するデータベースの[データベース特性]に依存します。[データベース特性]の[テーブルの存在チェック]特性が有効になります。

テーブルのタイプ

blue_up.jpg

テーブルタイプは「T=テーブル」または「V=ビュー」のいずれかになります。

  • T=テーブル …… ユーザがDBテーブルを作成できるようになります。

  • V=ビュー …… ビュー(仮想テーブル)を作成できるようになります。ビューはuniPaaSで作成、削除、または変更できないため、DbDelDbCopy関数が無効になります。ビューを作成する場合、位置キーとして重複不可インデックスを定義する必要があります。

ヒント

blue_up.jpg

Oracle、MS-SQL ServerなどのRDBMSでは、照会処理にオプティマイザを指定することができます。ここには、SELECT文に連結する文字列が指定できます。

  • Yes …… [ヒント]特性が有効になります。

  • No …… [ヒント]特性が無効になります。

Magic uniPaaSは、入力された文字列をチェックしません。開発者は、構文が正しいかどうかをあらかじめ確認する必要があります。ヒントは特殊な場合にのみ使用することをお勧めします。

この特性が「Yes」に設定され右側の[ヒント]特性が空白の場合は、[データベース]特性の[ヒント]特性が継承されます。

対応するゲートウェイ:MS-SQL

カーソル

blue_up.jpg

MS-SQL Server でのみ有効です。

MS-SQL Serverゲートウェイの場合、内部DBコマンドとカーソルのどちらでも指定できます。DBコマンドを使用する場合は、各結果セットに対する個別の接続が必要になります。結果セットが大きいほど、処理速度は向上します。

この特性の有効な値は、以下のとおりです。

  • Yes …… テーブル上のカーソルが使用できます。

  • No …… テーブル上のカーソルが使用できません。代わりにDBコマンドを使用します。

  • D=デフォルト …… Magic uniPaaSは、以下のことを考慮してカーソルかDBコマンドを使用します。

  • MS-SQL Serverテーブルがメインソースとして定義されている場合は、Magic uniPaaSはカーソルを使用します。

  • MS-SQL Serverテーブルがリンクテーブルとして使用されている場合は、Magic uniPaaSはDBコマンドを使用します。

配列サイズ

blue_up.jpg

いくつかのMagic uniPaaSのSQLデータベースゲートウェイは、配列処理をサポートしています。データベースからレコードをフェッチする場合、ゲートウェイは1度に1レコードずつフェッチするのではなく、レコードをまとめてフェッチすることによってネットワークのトラフィックを減らします。配列サイズは、一回のフェッチ処理でデータベースから取ってくることのできるレコード数です。データは、Magicエンジン側の配列として保存されます。

デフォルトでは、配列のサイズは「0」ですが、Magic uniPaaSは独自のデフォルトサイズを使用しています。

このサイズは変更ができます。大規模なテーブルをスキャンする場合、配列のサイズを増やすと処理速度が向上します。ただし、Magic uniPaaSのデフォルト値を使用することをお勧めします。この値は、テーブルとあらかじめ定義されたボリュームデータサイズのレコード長を考慮します。

テーブル内の配列のサイズを変更すると、[データベース特性]の設定が上書きされます。

  • Oracleのデフォルトは、1テーブル当たりのレコード長が1200として計算されます。

  • MSSQLのデフォルトは、1テーブル当たりのレコード長が4096として計算されます。

ダイアログボックスの左下の隅のに表示される数は、データソースのレコード長です。

オンラインとバッチタスクに対する影響

  • Oracleデータベースで動作する場合、配列サイズの変更はオンラインとバッチタスクで影響します。

  • MS-SQLデータベースで動作する場合、エンジンがデフォルトのカーソルに設定されたバッチタスクに対するKeySetカーソルをエンジンが使用する場合のみ影響します。これは、MSSQLのデフォルトで、動的なカーソルが使用されるため、オンラインタスクには影響しません。

開発者レベルのゲートウェイログを参照することで、フェッチ処理の違いを確認することができます。データベースからの実際のフェッチは、[配列サイズ]特性によって行われます。

ログに、実際のフェッチ処理の記録を確認します。そして、この行は、データベースから取り出されるレコード数が配列サイズの計算値(デフォルトの「0」の場合、上記で説明したような計算方法か、に開発者によって定義された値)に基づいていることが示されています。

対応するゲートウェイ:MS-SQL