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

UNFREEZE PLANS (SQL)

1 つ以上の凍結したクエリ・プランを凍結解除します。

Synopsis

UNFREEZE PLANS [[FROM] UPGRADE] BY ID statement-hash  UNFREEZE PLANS [[FROM] UPGRADE] BY TABLE table-name  UNFREEZE PLANS [[FROM] UPGRADE] BY SCHEMA schema-name  UNFREEZE PLANS [[FROM] UPGRADE]

引数

statement-hash 引用符で囲まれた、クエリ・プランの SQL 文の定義の内部ハッシュ表現。場合によっては、同じ SQL 文のように見えても、文のハッシュ・エントリが異なることがあります。SQL 文の異なるコード生成を必要とする設定/オプションの相違によって、異なる文ハッシュが生成されます。これは、異なる内部最適化をサポートする異なるクライアント・バージョンや異なるプラットフォームで発生することがあります。"SQL 文の詳細" を参照してください。
table-name 既存のテーブルまたはビューの名前。table-name は修飾 (schema.table)、未修飾 (table) のどちらでもかまいません。テーブル名が未修飾の場合は、既定のスキーマ名が使用されます。
schema-name 既存のスキーマの名前。このコマンドは、指定されたスキーマ内のすべてのテーブルの、凍結されたすべてのクエリ・プランを凍結解除します。

説明

UNFREEZE PLANS コマンドは、凍結したクエリ・プランを凍結解除します。クエリ・プランを凍結するには、FREEZE PLANS コマンドを使用します。

FROM UPGRADE 節を指定せずに UNFREEZE PLANS を使用すると、プランの状態が凍結/明示のすべてのクエリ・プランが凍結解除されます。FROM UPGRADE 節を指定して UNFREEZE PLANS を使用すると、プランの状態が凍結/アップグレードのすべてのクエリ・プランが凍結解除されます。この節の FROM キーワードはオプションです。

UNFREEZE PLANS には、クエリ・プランを凍結解除するための 4 つの構文形式が用意されています。

  • 指定されたクエリ・プラン : UNFREEZE PLANS BY ID statement-hashstatement-hash 値は、二重引用符で区切る必要があります。

  • テーブルのすべてのクエリ・プラン : UNFREEZE PLANS BY TABLE table-name。テーブル名またはビュー名を指定できます。クエリ・プランが複数のテーブルまたはビューを参照する場合、これらのテーブルまたはビューのいずれかを指定すると、クエリ・プランは凍結解除されます。

  • スキーマ内のすべてのテーブルのすべてのクエリ・プラン : UNFREEZE PLANS BY SCHEMA schema-name

  • 現在のネームスペースのすべてのテーブルのすべてのクエリ・プラン : UNFREEZE PLANS

このコマンドは、1 つ以上のクエリ・プランが凍結解除される場合は SQLCODE 0 を発行し、クエリ・プランが凍結解除されない場合は SQLCODE 100 を発行します。影響を受けた行 (%ROWCOUNT) は、凍結解除されたクエリ・プランの数を示します。

その他のインタフェース

次の $SYSTEM.SQL.Statement メソッドを使用して 1 つのクエリ・プランまたは複数のクエリ・プランを凍結解除できます : 1 つのプランの場合は UnfreezeStatement()Opens in a new tab、関係のすべてのプラン (クエリ・プランで参照されるテーブルまたはビュー) の場合は UnfreezeRelation()Opens in a new tab、スキーマのすべてのプランの場合は UnfreezeSchema()Opens in a new tab、現在のネームスペースのすべてのプランの場合は UnfreezeAll()Opens in a new tab。対応する Freeze メソッドがあります。

"InterSystems SQL 最適化ガイド" の "凍結プラン" の章の "凍結プランのインタフェース" のセクションで説明されているように、管理ポータルを使用してクエリ・プランを凍結解除できます。

セキュリティおよび特権

UNFREEZE PLANS コマンドは、ユーザに %Development:USE 権限が必要な特権操作です。このような権限は管理ポータルを介して付与できます。この特権なしで UNFREEZE PLANS コマンドを実行すると、SQLCODE -99 エラーが発生し、コマンドは失敗します。以下の 2 つの例外があります。

  • 埋め込み SQL を介してコマンドが実行され、特権チェックを実行しない。

  • ユーザが特権チェックなしを明示的に指定する (例えば、checkPriv 引数を 0 に設定して %Prepare() を呼び出したり、%SQL.StatementOpens in a new tab%ExecDirectNoPriv() を呼び出したりすることによって指定)。

関連項目

FeedbackOpens in a new tab