SQL の機能強化
2022.2 リリースには、SQL の機能強化が数多く含まれています。
SQL プロセス・ビュー
SQL プロセス・ビューは、システム上で現在実行されているすべての SQL 文を参照するために、システム管理ポータルで、SQL にアクセス可能なシンプルなビューと対応するページを提供します。これにより、管理者は文インデックスで取得した情報に基づいて、異常に長い時間実行されている可能性のあるクエリを迅速に識別し、この実行時間を同じクエリの履歴実行時統計と直ちに比較できます。
この変更は、同じ内部インフラストラクチャを利用して対応するメトリックを公開する、弊社の System Alerting and Monitoring (SAM)Opens in a new tab 製品と完全に統合されています。
シャード・クラスタ全体での負荷を分散
このリリースで、シャード・クラスタでのオブジェクト・データ・モデルに対して完全にサポートされるようになりました。以前より、個別のオブジェクトスタイルのアクセスは既にサポートされており、そのようなコード (本質的にプロシージャ) は呼び出されたノードで実行されていました。このリリースでは、シャード・クラスタのすべてのノードでプロシージャ・コードを呼び出すための、2 つの使いやすい API メソッドを導入しています。
Broadcast() メソッドは、各データまたは計算ノードでルーチンまたはメソッドを 1 回呼び出すメソッドで、クラスタ全体で複雑な ObjectScript コードを開始するために使用できます (フィードから新しいデータを取り出してローカルに挿入するためなど)。別個の Map() メソッドは、そのインスタンスが物理的に格納されているデータ・ノードで、シャード・クラスのインスタンスごとにルーチンまたはメソッドを 1 回呼び出します。これらのメソッドは、単一サーバ上のプロセス全体に作業を分散する作業キュー・マネージャと同じシグニチャ・スタイルに従います。
(%SYSTEM.ShardWorkMgrOpens in a new tab 内の) これらの 2 つのメソッドにより、シャード・クラスタを利用するのに必要な柔軟性が開発者に提供されます。
ラテラル結合のサポート
このリリースでは、ラテラル結合のサポートが導入されています。これは、テーブルまたはサブクエリを結合する方法で、結合されたそれぞれのストリームが別個に評価されることはありません。典型的なユース・ケースとして、サブクエリに、結合されている別のテーブルへの参照、または結合されている別のテーブルの列値を入力として取るテーブル値関数が含まれる場合などがあります。LATERAL JOIN は、標準の ANSI SQL 構文です。
その他
-
スキーマ管理の向上 — このリリースでは、テーブルやビュー用の CREATE IF NOT EXISTS、およびプロシージャや関数などのコード・アーティファクト用の CREATE OR REPLACE など、数多くの便利な拡張機能を IRIS DDL に導入しています。また、DDL エクスポート・ユーティリティは、DDL として表現できるより多くのクラス定義機能をカバーするようになりました。%SYSTEM.SQL.SchemaOpens in a new tab の ExportDDL() メソッドを参照してください。
-
リスト・コレクションの投影 — 以前に Array of コレクション・プロパティが投影されていたのと同じような方法で、List of スタイル・コレクション・プロパティを子テーブルに投影できるようになりました。つまり、物理ストレージ・オプションと SQL プロジェクションは完全に独立しています。
-
パフォーマンスの向上 — SQL クエリの実行時に、JOIN、GROUP BY、ORDER BY およびその他の構文を使用することは、クエリ・プランのある部分で一時的なデータ構造 (内部的に "tempfile" と呼ばれます) が構築された後、クエリ・プランの別の部分によってそれが読み取られることを意味します。この変更は、内部構文を使用してこれらの一時的なデータ構造を格納し、利用可能なメモリを適切に活用して、全体的なクエリ・パフォーマンスを向上させる方法に関するいくつかの変更をまとめています。これらの変更では、プロセス・プライベート・メモリの新しい既定値を利用します (新しい既定の bbsiz 設定により、既定で無制限になります)。