Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

管理ポータルの SQL インタフェースの使用法

この章では、InterSystems IRIS® データ・プラットフォームの管理ポータルから SQL 操作を実行する方法について説明します。管理ポータル・インタフェースはダイナミック SQL を使用するので、実行時にクエリが作成および実行されます。管理ポータル・インタフェースの目的は、小規模なデータ・セットの SQL コードの開発とテストを支援することです。プロダクション環境で SQL を実行するためのインタフェースを目的としたものではありません。

また、管理ポータルには、SQL を構成するための各種オプションも用意されています。詳細は、"システム管理ガイド" にリストされている SQL およびオブジェクトの設定ページを参照してください。

管理ポータルの使用に関する一般的な情報については、左上にある [ヘルプ] ボタンを選択します。右上隅にある [担当者] ボタンを使用すると、管理ポータルから InterSystems ソフトウェアに関する問題をインターシステムズのサポート窓口 (WRC)Opens in a new tab に報告できます。SQL パフォーマンスに関する問題を WRC に報告するには、この章の "ツール" のセクションを参照してください。

管理ポータルの SQL 機能

InterSystems IRIS では、InterSystems IRIS 管理ポータルから SQL ツールを使用してデータを検証および操作できます。これを始める起点は、管理ポータルの [システム・エクスプローラ] オプションです。ここから、[SQL] オプションを選択します。ここには SQL インタフェースが表示され、以下のことができます。

  • SQL クエリ実行 — SQL コマンドを作成して実行します。既存のテーブルおよびデータに対して SQL クエリを実行し、テーブルを作成したり、テーブル・データを挿入、更新、または削除できます。テキスト・ボックスに SQL コード (SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、およびその他の SQL 文) を直接記述したり、テキスト・ボックスに SQL 履歴から文を取得したり、テキスト・ボックスにテーブルをドラッグ・アンド・ドロップしてクエリ (SELECT 文) を生成したり、クエリ・ビルダ・インタフェースを使用してクエリ (SELECT 文) を構成したりすることができます。

  • スキーマ・コンテンツのフィルタ処理 — 画面の左側に、現在のネームスペースに対する SQL スキーマ、またはこれらのスキーマのフィルタ処理済みサブセットを、各スキーマのテーブル、ビュー、プロシージャ、およびクエリ・キャッシュと共に表示します。個々のテーブル、ビュー、プロシージャ、またはクエリ・キャッシュを選択して、その [カタログの詳細] を表示できます。

  • ウィザード — ウィザードを実行し、データのインポートデータのエクスポート、またはデータの移行を実行します。ウィザードを実行して、テーブルまたはビューにリンク、またはストアド・プロシージャにリンクします。

  • アクション — ビューの定義、テーブル定義の詳細の出力、テーブルのチューニングの実行やインデックスの再構築によるクエリのパフォーマンスの向上、不要なクエリ・キャッシュの削除や不要なテーブル、ビュー、プロシージャ定義の削除によるクリーン・アップを実行します。

  • テーブルを開く — 表示モードで、テーブル内の現在のデータを表示します。これは通常、テーブル内の完全なデータではありません。列内のレコードの数とデータの長さの両方が、表示を管理しやすくするために制限されます。

  • ツール — [SQL 実行時統計]、[インデックス分析]、[代替表示プラン]、[レポート生成]、および [レポートのインポート] のうちのいずれかのツールを実行します。

  • ドキュメント — SQL エラーコードのリストおよび SQL 予約語のリストを表示できます。テーブルを選択すると、クラス・ドキュメント (テーブルのクラス・リファレンス・ページ) を表示できます。

ネームスペースの選択

すべての SQL 操作は、特定のネームスペース内で行われます。したがって、最初に SQL インタフェース・ページの上部にある [切り替え] オプションをクリックして、使用するネームスペースを指定する必要があります。これにより、利用可能なネームスペースのリストが表示され、その中から選択できます。

管理ポータルの既定のネームスペースを設定できます。管理ポータルで、[システム管理][セキュリティ][ユーザ] の順に選択します。目的のユーザの名前をクリックします。これにより、ユーザ定義を編集できるようになります。[一般] タブで、ドロップダウン・リストから [開始ネームスペース] を選択します。[保存] をクリックします。開始ネームスペースが選択されていない場合は、%SYS が既定で使用されます。

ユーザ・カスタマイズ

管理ポータルの多くの SQL 操作は、ユーザごとに自動的にカスタマイズされます。[クエリ実行] タブまたは [SQL 文] タブでフィルタ、最大、モードなどのオプションを設定した場合、このユーザ指定値は将来使用するために保持されます。同じユーザが管理ポータルを有効化すると、そのユーザの前の設定が表示されます。InterSystems IRIS を再起動すると、すべてのオプションが既定値に戻ります。

ネームスペースの選択はカスタマイズされません。ユーザ定義の実行開始ネームスペースに戻ります。

フィルタ・オプションの使用の詳細は、"スキーマ・コンテンツのフィルタ処理" を参照してください。

SQL クエリの実行

管理ポータルで、[システム・エクスプローラ][SQL] の順に選択します。ページ上部の [切り替え] オプションを使ってネームスペースを選択します。利用可能なネームスペースのリストが表示されます。SQL クエリを実行するには、以下の 3 つのオプションがあります。

  • [クエリ実行] : SQL コマンドを作成して実行します。SQL コマンドには、SELECT クエリ、あるいは InterSystems SQL の DDL 文または DML 文を入力できます。文は、実行時に InterSystems IRIS サーバで検証されます。

  • [履歴を表示] : 前に実行した SQL 文を呼び出し、それを再実行するか、編集してから実行します。正常に実行されなかった文を含め、実行されたすべての文がリストされます。

  • [クエリ・ビルダ] : SQL クエリ・ビルダを起動します (これは、SELECT 文を作成することのみを目的としています)。SQL クエリ・ビルダ内で、テーブル、列、WHERE 節の述語、および他のクエリ・コンポーネントを選択して、SQL SELECT クエリを作成します。その後、[クエリ実行] をクリックしてクエリを実行できます。

SQL 文の作成

[クエリ実行] テキスト・ボックスにより、SELECT クエリや CALL クエリを記述できますが、それだけでなく、CREATE TABLE などの DDL 文や、INSERTUPDATEDELETE などの DML 文を含めて、大半の SQL 文も記述できます。

以下を使用して、[クエリ実行] テキスト・ボックスで SQL コードを指定できます。

  • テキスト・ボックスに SQL コードを入力 (または貼り付け) ます。SQL コードの領域では、SQL テキストはカラー表示されず、構文や存在の検証も行われません。ただし、自動スペル検証は行われます。[X] アイコンを使用して、テキスト・ボックスの内容を消去できます。

  • [履歴を表示] リストを使用して、前の SQL 文を選択します。選択した文がテキスト・ボックスにコピーされます。文を実行すると、この文は [履歴を表示] リストの一番上に移動します。[履歴を表示] には、実行に失敗した文も含め、以前に実行されたすべての文がリストされます。

  • テーブルのドラッグ・アンド・ドロップを使用して、テキスト・ボックスで SQL コードを作成します。

  • [クエリ実行] テキスト・ボックスではなく [クエリ・ビルダ] を使用して、SELECT クエリを指定および実行できます。[クエリ・ビルダ] を使用して実行された SELECT クエリは、[クエリ実行] には表示されず、[履歴を表示] にはリストされません。

[クエリ実行] テキスト・ボックス内の SQL コードには、以下を含めることができます。

  • ? 入力パラメータ。TOP ?WHERE Age BETWEEN ? AND ? のような入力パラメータを指定すると、[実行] ボタンに [クエリのパラメータ値を入力してください] ウィンドウが表示されます。このウィンドウには、クエリに指定した順序でパラメータごとの入力フィールドが表示されます。? 入力パラメータの詳細は、このドキュメントの “ダイナミック SQL の使用法” の章の "SQL 文の実行" を参照してください。

  • 空白文字。複数の空白スペース、1 つまたは複数の改行を指定できます。Tab キーは無効にされます。コードを SQL コードの領域にコピーすると、既存のタブは単一の空白スペースに変換されます。改行および複数の空白スペースは保持されません。

  • コメント。SQL コードの領域では、1 行および複数行のコメントがサポートされています。コメントは保持され、[履歴を表示] 表示に示されます。コメントは [プラン表示] の [文テキスト] 表示またはクエリ・キャッシュには表示されません。

  • 複数の結果セットを返すクエリ。

テキスト・ボックスで SQL コードを作成したら、[プラン表示] ボタンをクリックすれば、SQL コードを実行せずに SQL コードをチェックすることができます。コードが有効な場合、[プラン表示] にクエリ・プランが表示されます。コードが無効な場合、[プラン表示] に SQLCODE エラー値とメッセージが表示されます。[プラン表示] ボタンを使用して、最後に実行した SQL コードについても、この情報を表示できます。

SQL コードを実行するには、[実行] ボタンをクリックします。

テーブルのドラッグ・アンド・ドロップ

画面の左側にある [テーブル] リスト (または [ビュー] リスト) からテーブル (またはビュー) をドラッグし、それを [クエリ実行] テキスト・ボックスにドロップして、クエリを生成できます。これにより、テーブル内の非表示でないすべてのフィールドの select-item リストが指定された SELECT、およびテーブルを指定する FROM 節が生成されます。その後、さらにこのクエリを変更し、[実行] ボタンを使用して実行できます。

画面の左側にある [プロシージャ] リストから、プロシージャ名をドラッグ・アンド・ドロップすることもできます。

クエリ・オプションの実行

SQL 実行インタフェースには、以下のオプションがあります。

  • SELECT[選択モード] ドロップダウン・リストでは、クエリでデータ値の提供 (WHERE 節内など) とクエリ結果セットへのデータ値の表示に使用される形式を指定します。可能なオプションは、[表示モード] (既定)、[ODBC モード]、および [論理モード] です。これらのオプションの詳細は、このドキュメントの “InterSystems IRIS の基礎” の章にある “データ表示オプション” を参照してください。

    INSERT または UPDATE[選択モード] ドロップダウン・リストでは、入力データを表示形式から論理格納形式に変換するかどうかを指定できます。このデータ変換を行うには、SQL コードが RUNTIME 選択モードを使用してコンパイルされている必要があります実行時には、[選択モード] ドロップダウン・リストは [論理モード] に設定する必要があります。詳細は、"InterSystems SQL リファレンス" の "INSERT" または "UPDATE" 文を参照してください。

    [選択モード] は、InterSystems IRIS 日時や ObjectScript %List 構造データなど、論理格納形式が目的の表示形式 (表示または ODBC) とは異なるデータ型に対して特に有用です。

  • [最大] フィールドでは、クエリから返すデータの最大行数を制限できます。0 を含む任意の正の整数に設定できます。[最大] を設定すると、明示的に変更するまで、セッションの期間中はその値がすべてのクエリに使用されます。既定値は 1000 です。最大値は 100,000 であり、値を入力していない ([最大] を NULL に設定した) 場合、100,000 より大きな値を入力した場合、または数値以外の値を入力した場合は、これが既定値となります。TOP 節を使用することで、返されるデータの行数を制限することもできます。[最大] は、DELETE など、他の SQL 文には影響を与えません。

[詳細] オプションをクリックすると、SQL 実行インタフェースには以下の追加オプションが表示されます。

  • [言語] : SQL コードの言語。選択可能な値は、IRIS、Sybase、および MSSQL です。既定値は IRIS です。Sybase と MSSQL については、"Transact-SQL (TSQL) 移行ガイド" を参照してください。選択した言語が、管理ポータルに次回アクセスするときのユーザ・カスタマイズされた既定値になります。

    [DIALECT] が Sybase または MSSQL である場合、[クエリ実行] テキスト・ボックスには複数の SQL コマンドを指定できます。すべての挿入、削除、および更新コマンドが最初に実行された後、指定された順に SELECT コマンドが実行されます。複数の結果セットは別のタブで返されます。

  • [行番号] : 結果セットの表示に各行の行番号を含めるかどうかを指定するチェック・ボックス。行番号は、結果セット内の各行に連続的に割り当てられる整数です。これは返された行の単純な番号であり、RowID%VID とは一致しません。行番号列の見出し名は # です。既定では、行番号は表示されません。

  • [フォアグラウンドでクエリを実行] : フォアグラウンドでクエリを実行するかどうかを指定するチェック・ボックスです。簡単なクエリは、バックグラウンドよりもフォアグラウンドで実行する方がはるかに高速であることが普通です。一方、長時間を要するクエリをフォアグラウンドで実行すると、その実行中に管理ポータルが応答しなくなることがあります。既定では、バックグラウンドですべてのクエリが実行されます。

これらのオプションはすべて、ユーザ・カスタマイズされます。

[プラン表示] ボタン

[プラン表示] ボタンをクリックすると、ページのテキスト・ボックスに表示されているクエリの現在のクエリ・プランの相対コスト (オーバーヘッド) を含む文テキストとクエリ・プランが表示されます。[プラン表示] は、[クエリ実行] または [履歴を表示] インタフェースのいずれかから起動できます。クエリ・プランは、クエリが作成 (コンパイル) されたとき、つまり、クエリを記述して [プラン表示] ボタンを選択したときに生成されます。クエリ・プランを表示するために、クエリを実行する必要はありません。[プラン表示] では、無効なクエリで起動すると SQLCODE とエラー・メッセージが表示されます。

SQL 文の結果

[クエリ実行] テキスト・ボックスで SQL コードを記述したら、[実行] ボタンをクリックしてそのコードを実行できます。SQL 文が正常に実行されると、結果がコード・ウィンドウの下に表示されます。SQL コードが失敗すると、エラー・メッセージがコード・ウィンドウの下に (赤色で) 表示されます。[プラン表示] ボタンを押すと、SQLCODE エラーとエラー・メッセージが表示されます。

[クエリ実行] では、SQL コード実行はバックグラウンド・プロセスとして実行されます。コードの実行中、[実行] ボタンは [キャンセル] ボタンに置き換わります。これにより、長時間実行されているクエリの実行をキャンセルできます。

クエリ・データの表示

結果セットはテーブルとして返されます。その際、[行番号] ボックスにチェックが付けられている場合は、最初の列 (#) として行カウンタが表示されます。残りの列は、指定した順に表示されます。RowID (ID フィールド) は、表示される場合も非表示の場合もあります。各列は列名 (または、指定した場合は列のエイリアス) で識別されます。集計、式、サブクエリ、ホスト変数、またはリテラルの SELECT 項目は、列エイリアスによって (指定されている場合)、または Aggregate_Expression_Subquery_HostVar_、または Literal_ という文字列のすぐ後に SELECT 項目のシーケンス番号 (既定では) が続く文字列によって識別されます。

行または列にデータがない (NULL) 場合は、結果セットに空白のテーブル・セルが表示されます。空の文字列リテラルを指定すると、HostVar_ フィールドが空白のテーブル・セルと共に表示されます。NULL を指定すると、Literal_ フィールドが空白のテーブル・セルと共に表示されます。

選択したフィールドが日付、時刻、タイムスタンプ、または %List エンコードされたフィールドの場合、表示される値は表示モードによって異なります。

以下の表示機能は、管理ポータルの SQL インタフェース [クエリ実行] の結果表示および [テーブルを開く] のデータ表示に固有です。

  • データ型が %Stream.GlobalCharacterOpens in a new tabストリーム・フィールドには、実際のデータ (最大 100 文字) が文字列として表示されます。ストリーム・フィールド内のデータが 100 文字より多い場合は、データの最初の 100 文字の後に、他にもデータがあることを示す省略記号 (...) が表示されます。

  • データ型が %Stream.GlobalBinaryOpens in a new tab のストリーム・フィールドは <binary> として表示されます。

  • 文字列データ・フィールドでは、必要に応じて行を折り返して、実際のデータをすべて表示します。

  • 整数フィールドは、結果テーブル・セル内で右寄せされます。RowID、数値、および他のすべてのフィールドは左寄せされます。

同じクエリをダイナミック SQL コード、SQL シェル、または埋め込み SQL コードを使用して実行した場合、これらの結果表示機能は使用されません。

指定したクエリが 1 つ以上の結果セットを返した場合、[クエリ実行] ではこれらの結果セットが [結果 #1][結果 #2] などの名前のタブとして表示されます。

クエリ実行メトリック

成功した場合、[クエリ実行] には、パフォーマンス情報とクエリ・キャッシュのルーチン名が表示されます。表示する結果データがある場合は、パフォーマンス情報の下に表示されます。実行情報には、[列数][パフォーマンス]、クエリ・キャッシュ名を示す [クエリキャッシュ]、およびクエリを最後に実行した時間のタイムスタンプを示す [最終更新] が含まれます。

  • [列数] : 操作が成功した場合、CREATE TABLE などの DDL 文では列数 : 0 が表示されます。INSERT、UPDATE、DELETE などの DML 文では、影響を受ける行の数が表示されます。

    SELECT では、結果セットとして返される行の数が表示されます。返される行の数は [最大] の設定によって制御されます。これは、選択可能だった行数よりも少ない場合があります。複数の結果セットの場合は、結果セットごとの行数が / 文字で区切られてリストされます。1 つ以上の集約関数を指定し、フィールドを選択しないクエリでは、FROM 節のテーブルに行が含まれない場合でも、常に列数 : 1 が表示され、式、サブクエリ、集約関数の結果が返されます。集約関数を指定せず、行を選択しないクエリでは、FROM 節のテーブルを参照しない式とサブクエリのみをクエリで指定した場合でも、常に列数 : 0 が表示され、結果は返されません。FROM 節のないクエリでは、常に列数 : 1 が表示され、式、サブクエリ、集約関数の結果が返されます。

  • [パフォーマンス] : 経過時間 (秒の小数部単位)、グローバル参照の合計数、実行されたコマンドの合計数、およびディスク読み取り待ち時間 (ミリ秒単位) で測定されます。クエリにクエリ・キャッシュがある場合、これらのパフォーマンス・メトリックはクエリ・キャッシュの実行に関するものになります。このため、クエリの初回実行のパフォーマンス・メトリックは、以降の実行よりもかなり高くなります。指定したクエリが複数の結果セットを返す場合、これらのパフォーマンス・メトリックはすべてのクエリの合計値です。

    これらのパフォーマンス・メトリックを詳しく分析するには、MONLBL (行単位の監視ユーティリティ) を実行し、アスタリスク・ワイルドカードを %sqlcq* のように使用して、ルーチン名を指定します。"^%SYS.MONLBL を使用したルーチン・パフォーマンスの検証" を参照してください。

  • [クエリ・キャッシュ] : 自動的に生成されたクエリ・キャッシュ・クラス名。例えば、%sqlcq.USER.cls2 では、USER ネームスペースの 2 番目のクエリ・キャッシュを示しています。各新規クエリには、次に続く整数を伴った新規クエリ・キャッシュ名が割り当てられます。このクエリ・キャッシュ名をクリックして、クエリ・キャッシュに関する情報を表示できます。さらに、その [表示プラン] を表示したり、クエリ・キャッシュを実行したりするためのリンクも表示されます。(DDL 文は、"キャッシュされない SQL コマンド" を参照してください。)

    管理ポータルを閉じたり、InterSystems IRIS を停止しても、クエリ・キャッシュが削除されたり、クエリ・キャッシュの番号の割り付けがリセットされたりすることはありません。現在のネームスペースからクエリ・キャッシュを削除するには、%SYSTEM.SQL.Purge()Opens in a new tab メソッドを呼び出します。

    すべての SQL 文でクエリ・キャッシュが生成されるわけではありません。リテラル置換値 (TOP 節の値および述語のリテラルなど) を除いて、既存のクエリ・キャッシュと同じクエリでは、新しいクエリ・キャッシュは作成されません。DDL 文や特権割り当て文など、一部の SQL 文はキャッシュされません。CREATE TABLE など、クエリ以外のSQL 文ではクエリ・キャッシュ名も表示されます。ただし、このクエリ・キャッシュ名は作成された後すぐに削除され、同じクエリ・キャッシュ名が次の SQL 文 (クエリまたはクエリ以外) によって再使用されます。

  • 凍結状態 : クエリ・プランが凍結されている場合、クエリ・キャッシュ・クラス名の後に凍結プランの状態が (括弧で囲んで) 表示されます。例 : (Frozen/Explicit)。クエリ・プランが凍結されていない場合、ここには何も表示されません。

  • [最終更新][クエリ実行] (または他の SQL 操作) が最後に実行された日時。このタイムスタンプは、同じクエリが繰り返し実行される場合でも、クエリが実行されるたびにリセットされます。

  • また、実行に成功すると、[印刷] リンクが表示されます。リンクをクリックすると [クエリ印刷] ウィンドウが表示され、クエリ・テキストおよびクエリ結果セットを印刷するかファイルにエクスポートするかを選択できます。クリック可能な [クエリ][結果] を切り替えて、クエリ・テキストまたはクエリ結果セットを表示または非表示にすることができます。表示されるクエリ結果セットには、ネームスペース名、結果セット・データおよび行数、タイムスタンプ、クエリ・キャッシュ名が含まれます (タイムスタンプは、[クエリ印刷] ウィンドウが開かれた時間で、クエリが実行された時間ではありません)。[クエリ印刷] ウィンドウの [印刷] ボタンをクリックすると、[クエリ印刷] ウィンドウのスクリーンショットが印刷されます。[ファイルにエクスポート] チェック・ボックスには、エクスポート・ファイルの形式 (xml、hdml、pdf、txt、csv) およびエクスポート・ファイルのパス名を指定するオプションが表示されます。[エクスポート] オプションでは [クエリ][結果] の切り替えは無視され、常に結果セット・データ (既定では exportQuery.pdf) と行数 (既定では exportQueryMessages.pdf) のみがエクスポートされます。クエリ・テキスト、ネームスペース、タイムスタンプ、クエリ・キャッシュ名は含まれません。

失敗した場合は、[クエリ実行] にエラー・メッセージが表示されます。[プラン表示] ボタンをクリックすると、対応する SQLCODE エラーの値およびメッセージを表示できます。

履歴の表示

現在のセッション中に実行された既存の SQL 文をリストするには、[履歴を表示] をクリックします。[履歴を表示] には、このインタフェースから呼び出したすべての SQL 文 (正常に実行された文と、実行に失敗した文の両方) がリストされます。既定では、SQL 文は実行時間順にリストされ、最後に実行した文がリストの先頭に表示されます。任意の列見出しをクリックして、SQL 文を列の値別に昇順または降順で並べ替えることができます。[履歴を表示] リストから SQL 文を実行すると、その [実行時間] (ローカルの日付とタイムスタンプ) が更新され、その [カウント] (実行された回数) がインクリメントされます。

[履歴を表示] リストをフィルタ処理するには、[フィルタ] ボックスに文字列を指定してから Tab キーを押します。文字列を含む履歴項目のみが、更新されたリストに含まれます。フィルタ文字列は、[SQL文] 列 (テーブル名など) または [実行時間] 列 (データなど) で見つかった文字列のいずれかとなります。フィルタ文字列では、大文字と小文字は区別されません。フィルタ文字列は、明示的に変更するまで有効です。

[履歴を表示] から SQL 文を選択してその文を変更および実行できます。これにより、その文が [クエリ実行] テキスト・ボックスに表示されるようになります。[クエリ実行] で、SQL コードを変更してから [実行] をクリックします。[履歴を表示] から取得した SQL 文を変更すると、その文は新規文として [履歴を表示] に保存されます。これには、大文字と小文字、空白、またはコメントの変更など、実行に影響しない変更が含まれます。空白は [履歴を表示] には表示されませんが、SQL 文が [履歴を表示] から取得されるときには保持されます。

未変更の SQL 文は [履歴を表示] リストから直接実行 (再実行) できます。これを行うには、[履歴を表示] リスト内のその SQL 文の右にある [実行] ボタンをクリックします。

[プラン][印刷]、[削除] のボタンを選択することもできます。[印刷] ボタンをクリックすると [クエリ印刷] ウィンドウが表示され、クエリ・テキストおよびクエリ結果セットを印刷するかファイルにエクスポートするかを選択できます。[削除] ボタンは、履歴から SQL 文を削除します。[履歴を表示] リストの最後にある [すべて削除] ボタンは、履歴内のすべての SQL 文を削除します。

[履歴を表示] リストは、クエリ・キャッシュのリストと異なる点に注意してください。[履歴を表示] は、実行中に失敗したものも含めて現在のセッションから呼び出された SQL 文をリストします。

その他の SQL インタフェース

InterSystems IRIS は、このドキュメントの他の章で説明するように、SQL コードを記述し実行する、他の多くの方法をサポートしています。これには、以下のものがあります。

  • 埋め込み SQL : ObjectScript コードに埋め込んだ SQL コードです。

  • ダイナミック SQL%SQL.StatementOpens in a new tab クラス・メソッド (または他の結果セット用クラス・メソッド) を使用して、ObjectScript コードから SQL 文を実行します。

  • SQL シェル : SQL シェル・インタフェースを使用して、ターミナルからダイナミック SQLを実行します。

スキーマ・コンテンツのフィルタ処理

管理ポータルの左側にある SQL インタフェースでは、スキーマ (またはフィルタ・パターンに一致する複数のスキーマ) のコンテンツを表示できます。

  1. SQL インタフェース・ページの上部にある [切り替え] オプションをクリックして、使用するネームスペースを指定します。これにより、利用可能なネームスペースのリストが表示され、その中から選択できます。

  2. [フィルタ] を適用するか、[スキーマ] ドロップダウン・リストからスキーマを選択します。

    [フィルタ] フィールドを使用して、検索パターンを入力してリストをフィルタ処理できます。スキーマ、またはスキーマ (1 つまたは複数) 内のテーブル、ビュー、またはプロシージャ名 (項目) をフィルタ処理できます。検索パターンは、スキーマの名前、ドット (.)、および項目の名前で構成されます。それぞれの名前は、リテラルやワイルドカードの組み合わせで構成されます。リテラルでは、大文字と小文字が区別されません。ワイルドカードは以下のとおりです。

    • アスタリスク (*) は、任意のタイプの 0 文字以上の文字を意味します。

    • アンダースコア (_) は、任意の型の任意の 1 文字を意味します。

    • アポストロフィ (') の否定の接頭語は、“ではない“ (以外のすべて) を意味します。

    • 円記号 (\) エスケープ文字 : \_ は、リテラルのアンダースコア文字を意味します。

    例えば、S* は、先頭文字が S のすべてのスキーマを返します。S*.Person は、先頭文字が S のすべてのスキーマ内の、すべての Person 項目を返します。*.Person* は、すべてのスキーマ内の、先頭文字が Person のすべての項目を返します。検索パターンのコンマ区切りリストを使用して、リストされたパターンのいずれかを満たすすべての項目を選択できます (OR ロジック)。例えば、*.Person*,*.Employee* は、すべてのスキーマ内の、すべての Person 項目および Employee 項目を選択します。

    [フィルタ] 検索パターンを適用するには、更新ボタンをクリックするか、Tab キーを押します。

    [フィルタ] 検索パターンは、明示的に変更するまで有効です。[フィルタ] フィールドの右にある “x” ボタンを使用すると、検索パターンがクリアされます。

  3. [スキーマ] ドロップダウン・リストからスキーマを選択すると、前のすべての [フィルタ] 検索パターンがオーバーライドされてリセットされ、1 つのスキーマのために選択されます。[フィルタ] 検索パターンを指定すると、前のすべての [スキーマ] がオーバーライドされます。

  4. 必要に応じ、[適用先] ドロップダウン・リストを使用して、リストする項目のカテゴリをテーブル、ビュー、プロシージャ、クエリ・キャッシュ、または上記のすべてから指定します。既定は [すべて] です。“[適用先]“ ドロップダウン・リストで指定したカテゴリは、[フィルタ] または [スキーマ] によって制限されます。“[適用先]“ で指定されていないカテゴリは、引き続き、ネームスペース内のそのカテゴリ・タイプのすべての項目をリストします。

  5. オプションで、[システム] チェック・ボックスにチェックを付けて、システム項目 (名前の先頭文字が % の項目) を含めます。既定では、システム項目は含まれません。

  6. 指定された [スキーマ] または指定された [フィルタ] 検索パターンの項目をリストするには、カテゴリのリストを展開します。リストを展開する場合、項目が含まれていないカテゴリは展開されません。

  7. 展開されたリスト内の項目をクリックすると、SQL インタフェースの右側にその [カタログの詳細] が表示されます。

    選択した項目が [テーブル] または [プロシージャ] の場合は、[カタログの詳細][クラス名] 情報に、対応する Class Reference ドキュメントへのリンクが表示されます。

フィルタ設定はユーザ・カスタマイズされ、そのユーザが将来使用するために保持されます。

[参照] タブ

[参照] タブには、ネームスペース内のすべてのスキーマ、またはネームスペース内のスキーマのフィルタ処理済みサブセットを簡単に表示できる便利な方法が用意されています。[すべてのスキーマの表示] または [フィルタを使用してスキーマを表示] を選択できます。これらを選択すると、管理ポータル の SQL インタフェースの左側で指定されているフィルタが適用されます。[スキーマ名] 見出しをクリックして、そのスキーマをアルファベットの昇順または降順でリストできます。

リストされた各スキーマには、それが関連付けられているテーブル、ビュー、プロシージャ、およびクエリ (クエリ・キャッシュ) へのリンクがあります。スキーマにそのタイプの項目がない場合は、そのスキーマ・リスト列にハイフン (名前付きリンクではない) が表示されます。これにより、スキーマのコンテンツに関する情報を簡単に入手できます。

テーブル、ビュー、プロシージャ、またはクエリのリンクをクリックすると、それらの項目に関する基本情報のテーブルが表示されます。テーブルの見出しをクリックして、リストを列の値の昇順または降順で並べ替えることができます。[プロシージャ] テーブルには、管理ポータルの SQL インタフェースの左側にある [プロシージャ] 設定に関係なく、必ずエクステント・プロシージャが含まれています。

[カタログの詳細] タブを使用すると、個々のテーブル、ビュー、プロシージャ、およびクエリ・キャッシュの詳細情報を入手できます。[参照] タブから [テーブル] または [ビュー] を選択しても、そのテーブル用の [テーブルを開く] リンクはアクティブになりません

カタログの詳細

管理ポータルでは、テーブルビュープロシージャ、およびクエリ・キャッシュごとに、[カタログの詳細] 情報が示されます。管理ポータルの SQL インタフェースのスキーマ・コンテンツのフィルタ処理 (左側) コンポーネントを使用すると、[カタログの詳細] に表示する個々の項目を選択できます。

テーブルのカタログの詳細

テーブルごとに以下の [カタログの詳細] オプションが用意されています。

  • [テーブル情報] : [テーブルタイプ] (TABLE、GLOBAL TEMPORARY、または SYSTEM TABLE (システム・テーブルは [システム] チェック・ボックスにチェックが付いている場合にのみ表示されます))、所有者名、最終コンパイルのタイムスタンプ、外部のブーリアン値と読み取り専用のブーリアン値、[クラス名]エクステント・サイズ子テーブルと親テーブル (関連する場合) のいずれかまたは両方の名前および他のテーブル (関連する場合) への 1 つ以上の [リファレンス] フィールド、既定のストレージ・クラス %Storage.Persistent を使用するかどうか、ビットマップ・インデックスをサポートしているかどうか、RowID フィールド名、RowId の基礎となっているフィールドのリスト (関連する場合)、およびテーブルがシャード化されているかどうか。明示的なシャード・キーが存在する場合、シャード・キー・フィールドが表示されます。

    [クラス名] は、"インターシステムズ・クラス・リファレンス" ドキュメント内の対応するエントリへのリンクです。[クラス名] は、"識別子とクラスのエンティティ名" で説明されているように、句読点文字を削除してテーブル名から導出された一意の package.class 名です。

    [リファレンス] が [テーブル情報] に表示されるのは、現在のテーブル内のフィールドから別のテーブルへの 1 つまたは複数の参照がある場合のみです。このような別のテーブルへの参照は、参照されるテーブルの [テーブル情報] へのリンクとしてリストされます。

    [シャード化] : テーブルがシャード・マスタ・テーブルの場合、[テーブル情報] にシャード・ローカル・クラスおよびシャード・ローカル・テーブルの名前が、"インターシステムズ・クラス・リファレンス" ドキュメント内の対応するエントリへのリンクと共に表示されます。テーブルがシャード・ローカル・テーブルの場合、[テーブル情報] にシャード・マスタ・クラスおよびシャード・マスタ・テーブルの名前が、"インターシステムズ・クラス・リファレンス" ドキュメント内の対応するエントリへのリンクと共に表示されます。シャード・ローカル・テーブルは、[システム] チェック・ボックスにチェックが付いている場合にのみ表示されます。

    このオプションには、[テーブルを開くときにロードする行の数] 用の変更可能な値も用意されています。これは、[テーブルを開く] で表示する行の最大数を設定します。設定可能な範囲は 1 ~ 10,000 です。既定値は 100 です。管理ポータルでは、設定可能な範囲外の値が有効な値に修正されます。0 は 100 に修正され、小数は次に大きな整数へ切り上げられます。10,000 を超える数値は 10,000 に修正されます。

  • [フィールド] : テーブル内のフィールド (列) のリスト。表示される項目は、[フィールド名][データタイプ][カラム#][必須][ユニーク][照合][隠し]、[最大長]、[最大値]、[最小値]、[ストリーム][コンテナ][xDBCタイプ]、[参照先]、[バージョン列]、[選択性]、[外れ値の選択性]、および [平均フィールドサイズ] です。

  • [マップ/インデックス] : テーブルに定義されているインデックスのリスト。[インデックス名]、[SQL マップ名]、[列]、[タイプ]、[ブロックカウント]、[マップを継承?]、および [グローバル] の各項目が表示されます。

    [インデックス名] はインデックス・プロパティ名で、プロパティの名前付け規約に従います。SQL インデックス名から生成される際、SQL インデックス名の句読点文字 (アンダースコアなど) は削除されます。[SQL マップ名] は、インデックスの SQL 名です。生成される [SQL マップ名] は制約名と同じで、同じ名前付け規約に従います (後述)。[列] は、インデックスに指定されるフィールドまたはフィールドのコンマ区切りリストを指定します。例 $$SQLUPPER({Sample.People.Name}) のように、インデックスの照合タイプ および schema.table.field 完全参照を指定する場合もあります。[タイプ] は、ビッドマップ・エクステントデータ/マスタインデックス (標準インデックス)、ビットマップ、またはビットスライス・インデックス、および一意制約のいずれかです。[ブロックカウント] には、総数、およびその総数の測定方法の両方が含まれています。この測定方法は、クラス作成者による明示的な設定 ([定義済み])、TuneTableによる計算 ([測定済み])、またはクラス・コンパイラによる推測 ([推測済み]) です。[継承したマップ?]) が [はい] の場合は、このマップはスーパークラスから継承されています。[グローバル] は、インデックス・データを含む添え字付きグローバルの名前です。インデックス・グローバルの名前付け規約は、"インデックスのグローバル名" を参照してください。このグローバル名を ZWRITE に渡すことで、インデックス・データを表示できます。

    このオプションには、インデックスを再構築するための各インデックスのリンクも用意されています。

  • [トリガ] : テーブルに定義されているトリガのリスト。表示される項目は、[トリガ名]、[時間イベント]、[順序]、および [コード] です。

  • [制約] : テーブルのフィールドに対する制約のリスト。表示される項目は、[制約名]、[制約タイプ]、[制約データ] (括弧内にリストされたフィールド名) です。制約には、主キー外部キー一意制約が含まれます。主キーは定義上、一意であり、1 回のみリストされます。このオプションでは、制約を制約名別にリストします。複数のフィールドに関係がある制約は、コンポーネント・フィールドのコンマ区切りリストを表示する制約データを使用して、1 回のみリストされます。制約タイプは、UNIQUE、PRIMARY KEY、暗黙的な PRIMARY KEY、FOREIGN KEY、または暗黙的な FOREIGN KEY です。

    INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE を呼び出して制約をリストすることもできます。この場合は、制約をフィールド名別にリストします。以下の例では、UNIQUE、PRIMARY KEY、FOREIGN KEY、および CHECK のすべての制約のフィールド名と制約名を返します。

    SELECT Column_Name,Constraint_Name FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_SCHEMA='Sample' AND TABLE_NAME='Person'

    テーブルが %PUBLICROWID を指定して定義され、明示的な主キーが定義されていない場合、制約タイプ Implicit PRIMARY KEY および制約名 RowIDField_As_PKey で RowID フィールドが表示されます。

    明示的な制約の場合、制約名は以下のように生成されます。

    • フィールド定義で指定された制約 : 例えば、FullName VARCHAR(48) UNIQUE または FullName VARCHAR(48) PRIMARY KEY。フィールドの制約名値は構文 TABLENAME_CTYPE# で生成される値です。ここで、CTYPE は UNIQUE、PKEY、または FKEY で、# は名前のない制約にテーブル定義で指定された順序で割り当てられる連続する整数です。例えば、FullName に MyTest テーブルで 2 番目の名前のない一意の制約 (ID フィールドは除く) がある場合、FullName に生成される制約名は MYTEST_UNIQUE2 です。FullName が主キーで、MyTest テーブルで 3 番目の名前のない制約が指定されている (ID フィールドは除く) 場合、FullName に生成される制約名は MYTEST_PKEY3 です。

    • CONSTRAINT キーワード名前付き制約節 : 例えば、CONSTRAINT UFullName UNIQUE(FirstName,LastName) または CONSTRAINT PKName PRIMARY KEY(FullName)。制約名は指定された一意の制約名です。例えば、MyTest テーブル内の FirstName と LastName それぞれが制約名 UFullName を持ち、FullName は制約名 PKName を持ちます。

    • 名前なし制約節 : 例えば、UNIQUE(FirstName,LastName) または PRIMARY KEY (FullName)。制約名値は構文 TABLENAMECType# で生成される値です。ここで、CType は Unique、PKey、または FKey で、# は名前のない制約にテーブル定義で指定された順序で割り当てられる連続する整数です。例えば、FirstName と LastName に MyTest テーブルで 2 番目の名前のない一意の制約 (ID フィールドは除く) がある場合、FirstName と LastName に生成される制約名は MYTESTUnique2 です。FullName が主キーで、MyTest テーブルで 3 番目の名前のない制約 (ID フィールドは除く) が指定されている場合、FullName に生成される制約名は MYTESTPKey3 です。(大文字/小文字が混在し、アンダースコアがないことに注意してください。)

    フィールドが複数の一意制約に関係している場合、制約名ごとに別個にリストされます。

  • [クエリキャッシュ] : テーブルのクエリ・キャッシュのリスト。表示される項目は、[ルーチン名]、[クエリ文字列]、[作成日時]、[ソース]、および [クエリタイプ] です。

  • [テーブルの SQL 文] : このテーブル用に生成された SQL 文のリスト。ネームスペース全体の SQL 文の表示と同じ情報です。

ビューのカタログの詳細

管理ポータルの SQL インタフェースでは、ビュー、プロシージャ、およびクエリ・キャッシュの [カタログの詳細] も用意されています。

ビューごとに以下の [カタログの詳細] オプションが用意されています。

  • 情報表示[所有者] 名、[最終コンパイル] タイムスタンプ。このタイムスタンプは、[ビュー編集] リンクを使用し、変更を保存すると更新されます。

    [読込専用で定義されています] および [ビューは更新可能です] ブーリアン : ビュー定義に WITH READ ONLY が含まれる場合、これらはそれぞれ 1 と 0 に設定されます。それ以外の場合、ビューが単一テーブルから定義されている場合は 0 と 1 に設定され、ビューが結合テーブルから定義されている場合は 0 と 0 に設定されます。このオプションは、[ビュー編集] リンクを使用して変更できます。

    [クラス名] は、"識別子とクラスのエンティティ名" で説明されているように、句読点文字を削除してビュー名から導出された一意の package.class 名です。

    [チェックオプション] は、ビュー定義に WITH CHECK OPTION 節が含まれる場合にのみリストされます。LOCAL または CASCADED を指定できます。このオプションは、[ビュー編集] リンクを使用して変更できます。

    [クラスタイプ] は VIEW です。これは、ビュー定義を編集するための [ビュー編集] リンクを提供します。

    [テキストの表示] は、ビューの定義に使用する SELECT 文です。ビュー定義は、[ビュー編集] リンクを使用して変更できます。

    フィールドのリストには、[フィールド名]、[データ型]、[MAXLEN パラメータ]、[MAXVAL パラメータ]、[MINVAL パラメータ]、[BLOB] (%Stream.GlobalCharacter または %Stream.GlobalBinary フィールド)、[長さ]、[精度]、および [スケール] が含まれます。

  • [ビューの SQL 文] : このビュー用に生成された SQL 文のリストです。ネームスペース全体の SQL 文の表示と同じ情報です。

ストアド・プロシージャのカタログの詳細

プロシージャごとに以下の [カタログの詳細] オプションが用意されています。

  • ストアド・プロシージャ情報

    [クラス名] は、クラス名の先頭に型識別子 (‘func’、‘meth’、‘proc’、‘query’) を追加し (例えば、SQL 関数 MyProc は funcMyProc になります)、"識別子とクラスのエンティティ名" で説明されているように、句読点文字を削除して、プロシージャ名から導出された一意の package.class 名です。[クラスのドキュメント] は、"インターシステムズ・クラスリファレンス" 内の対応するエントリへのリンクです。[プロシージャタイプ] (関数など)。[メソッドまたはクエリ名] は、生成されるクラス・メソッドまたはクラス・クエリの名前です。この名前は、"識別子とクラスのエンティティ名" での説明のとおりに生成されます。[プロシージャ実行] リンクは、プロシージャをインタラクティブに実行するオプションを提供します。

  • [ストアドプロシージャの SQL 文] : このストアド・プロシージャ用に生成された SQL 文のリストです。ネームスペース全体の SQL 文の表示と同じ情報です。

クエリ・キャッシュのカタログの詳細

[クエリキャッシュ] には、クエリの全テキスト、クエリ実行プランを表示するためのオプション、および該当クエリ・キャッシュをインタラクティブに実行するためのオプションが用意されています。

ウィザード

アクション

  • [ビュー作成]ビューを作成するためのページを表示します。このオプションの使用法は、このドキュメントの “ビューの定義と使用” の章で説明しています。

  • [カタログ印刷] — テーブル定義に関する完全な情報を印刷できます。[カタログ印刷] をクリックすると、印刷プレビューが表示されます。この印刷プレビューのインデックス、トリガ、制約をクリックすると、カタログの出力から情報を追加したり除外することができます。

  • [クエリキャッシュ削除] — クエリ・キャッシュを削除する 3 つのオプション (現在のネームスペースのすべてのクエリ・キャッシュの削除、指定されたテーブルのすべてのクエリ・キャッシュの削除、選択したクエリ・キャッシュのみ削除) があります。

  • [テーブル・チューニング情報] — 選択したテーブルに対してテーブルチューニング機能を実行します。これは現在のデータに対する各テーブル列の選択性を計算します。選択性の値が 1 の場合は、一意として定義されている (すべてが一意のデータ値を持つ) 列を示します。選択性の値が 1.0000% の場合は、現在のすべてのデータ値が一意の値である、一意として定義されていない列を示します。1.0000% よりも大きいパーセントは、現在のデータの列の重複する値の相対的な数を示します。これらの選択性の値を使用すると、定義するインデックスとインデックスの使用法を決定してパフォーマンスを最適化できます。

  • [スキーマ内の全テーブルをチューニング] — 現在のネームスペース内の指定されたスキーマに属するすべてのテーブルに対してテーブルのチューニング機能を実行します。

  • [テーブルのインデックスを再構築] — 指定されたテーブルのすべてのインデックスを再作成します。

  • [この項目を削除] — 指定されたテーブル定義、ビュー定義、プロシージャ、またはクエリ・キャッシュをドロップ (削除) します。この操作を実行するには、適切な権限を持っている必要があります。[削除] は、テーブル・クラスの定義に [DdlAllowed] が含まれている場合を除き、永続クラスを定義して作成したテーブルでは使用できません。使用すると、操作は SQLCODE -300 エラーで失敗し、%msg が “DDL がクラス schema.tablename に対して有効になっていません” に設定されます。対応する永続クラスにサブクラス (派生クラス) がある場合、テーブルに対して [削除] は使用できません。操作は SQLCODE -300 エラーで失敗し、%msg が "クラス 'Schema.tablename' に派生クラスがあるため、DDL を介して削除できません" に設定されます。

    クラスがリンク・テーブルとして定義されている場合は、そのリンク・テーブル・クラスが DdlAllowed として定義されていない場合でも、Drop アクションによりローカル・システム上のそのリンク・テーブルが削除されます。Drop では、このリンクが参照する、サーバ上の実際のテーブルは削除されません。

  • [すべての文のエクスポート] — 現在のネームスペース内のすべての SQL 文をエクスポートします。SQL 文は XML 形式でエクスポートされます。ファイルにエクスポートするか、ブラウザ表示ページにエクスポートするかを選択できます。

  • [文のインポート] — XML ファイルから現在のネームスペースに SQL 文をインポートします。

テーブルを開く

管理ポータルの SQL インタフェースの左側にあるテーブルまたはビューを選択すると、そのテーブルまたはビューの [カタログの詳細] が表示されます。ページ上部の [テーブルを開く] リンクもアクティブになります。[テーブルを開く] は、テーブル内の実際の (または、ビューを介してアクセスする) データを表示します。このデータは、表示形式で示されます。

既定では、データの最初の 100 行が表示されます。この既定値を変更するには、[カタログの詳細] タブの [テーブル情報] にある [テーブルを開いたときにロードする列の数] を設定します。値をロードする行数よりもテーブル内にある行が多い場合は、データ表示の下部に [継続データがあります...] インジケータが表示されます。値をロードする行数よりもテーブル内にある行が少ない場合は、データ表示の下部に [完了] インジケータが表示されます。

データ型が %Stream.GlobalCharacterOpens in a new tab の列には、実際のデータ (最大 100 文字) が文字列として表示されます。最初の 100 文字を超えるデータは、省略記号 (...) によって示されます。

データ型が %Stream.GlobalBinaryOpens in a new tab の列は <binary> として表示されます。

ツール

[システム・エクスプローラ][SQL][ツール] ドロップダウン リストから、以下のツールにアクセスできます。これらのツールは、[システム・エクスプローラ][ツール][SQL パフォーマンス・ツール] からアクセスできるものと同じです。

  • [SQL 実行時統計] : 指定したクエリの SQL 実行時統計を生成するためのユーザ・インタフェース。

  • [インデックス分析] : 指定したスキーマに関してさまざまなタイプのインデックス分析を収集するためのユーザ・インタフェース。

  • [代替表示プラン] : 指定したクエリの代替表示プランを生成するためのユーザ・インタフェース。

  • レポート生成は、SQL クエリ・パフォーマンス・レポートをインターシステムズ WRC (インターシステムズのカスタマ・サポート窓口) に送信するために使用します。このレポート・ツールを使用するには、最初に WRC から WRC 追跡番号を取得する必要があります。

  • [レポートのインポート] は、既存の WRC レポートをファイル名でインポートするために使用します。インターシステムズでの使用専用。

FeedbackOpens in a new tab