2024年6月20日木曜日

Oracle APEXのデータ・ディクショナリ・キャッシュを更新する方法をPerplexity.aiに聞いてみる

Oracle APEX 24.1に追加されたAI関連の新機能であるAPEXアシスタントは、 SQLを生成するにあたってデータベースのディクショナリを直接参照するのではなく、Oracle APEXのデータ・ディクショナリ・キャッシュを参照します。データ・ディクショナリ・キャッシュは毎日実行されるメンテナンス・タスクによって更新されますが、直近での表の作成や列の追加、削除をデータ・ディクショナリ・キャッシュに反映させるには、手動でリフレッシュする必要があります。

以下、データ・ディクショナリ・キャッシュを更新する方法を確認します。

まず、手順をPerplexity.ai(Pro - LLMはGPT-4 Omni)に聞いてみました。

「Oracle APEXのデータ・ディクショナリ・キャッシュをリフレッシュする方法を教えてください。」

それらしい回答が得られます。回答の元になったソースを確認します。


ソースをoracle.comに掲載されているドキュメントに限定します。


回答が更新されますが、端的に言うと回答通りの手順では作業できません。


英語で質問してみます。

「how to update the dictionary cache used by Oracle APEX?」


先ほどと同様に、ソースをoracle.comに掲載されている資料に限定します。以下、得られた回答です。

To update the Data Dictionary Cache used by Oracle APEX, you can follow these steps:

From Administration Services

  1. Sign in to Oracle APEX Administration Services.
  2. Click on "Manage Workspaces".
  3. Under "Workspace Reports", click "Data Dictionary Cache". This will open the Data Dictionary Cache page, listing the workspace, cached objects, schema count, last data definition, last dictionary cache, and workspace ID.
  4. To view the cache for a workspace, click the workspace name. The Workspace Cache report will appear.
  5. To refresh the cache manually, click either "Gather Statistics and Refresh Cache" or "Refresh Cache Only" [1].

From Workspace Administration

  1. Sign in to Oracle APEX.
  2. Navigate to the Workspace Administration page by clicking the Administration menu at the top of the Workspace home page and selecting "Administration".
  3. On the Workspace Administration home page, click "Manage Service".
  4. Under "Manage Meta Data" on the right side of the page, click "Data Dictionary Cache". The Data Dictionary Cache report will appear.
  5. To refresh the cache manually, click either "Gather Statistics and Refresh Cache" or "Refresh Cache Only" [2][4].

Additional Information

  • The Data Dictionary Cache is automatically refreshed by the Oracle APEX nightly job ORACLE_APEX_DICTIONARY_CACHE if the tables change due to DDL or DML modifications. However, if the cache is incorrect or out of date, you can manually update it using the steps mentioned above [1][2][4][5].
  • The Data Dictionary Cache report displays statistics and data analysis of schema tables and caches in a workspace. Both the Create Application Wizard and Create Page Wizard use this information when creating new applications and pages [5][6][8].

By following these steps, you can ensure that the Data Dictionary Cache is up-to-date, which is crucial for the proper functioning of the Create Application Wizard and Create Page Wizard in Oracle APEX.

Citations: [1] https://docs.oracle.com/en/database/oracle/apex/23.1/aeadm/accessing-data-dictionary-cache-from-administration-services.html [2] https://docs.oracle.com/en/database/oracle/apex/22.1/aeadm/accessing-data-dictionary-cache-from-workspace-administration.html [3] https://docs.oracle.com/en/database/oracle/apex/23.2/aeadm/managing-page-and-region-caching.html [4] https://docs.oracle.com/en/database/oracle/apex/23.2/aeadm/accessing-data-dictionary-cache-from-workspace-administration.html [5] https://docs.oracle.com/en/database/oracle/apex/23.1/htmdb/about-creating-smar-filters-pages.html [6] https://docs.oracle.com/en/database/oracle/apex/24.1/htmdb/about-creating-smart-filters-pages.html [7] https://docs.oracle.com/cd/F93580_01/aeadm/accessing-data-dictionary-cache-from-workspace-administration.html [8] https://docs.oracle.com/en/database/oracle/apex/22.2/htmdb/about-creating-facet-search-reports.html [9] https://docs.oracle.com/en/database/oracle/application-express/20.1/aeadm/managing-page-and-region-caching.html [10] https://docs.oracle.com/cd/F86785_01/aeadm/accessing-data-dictionary-cache-from-administration-services.html [11] https://docs.oracle.com/en/database/oracle/apex/23.2/aeadm/dbms_scheduler-jobs.html

Always FreeのAutonomous Databaseを使って、上記の手順を確認してみます。

管理サービスでの作業


管理サービスサインインします。


ワークスペースの管理をクリックします。


ワークスペース・レポートに含まれるデータ・ディクショナリ・キャッシュをクリックします。


データ・ディクショナリ・キャッシュのレポート・ページが開きます。レポートにはワークスペース名キャッシュされたオブジェクトスキーマ数最終データ定義最終ディクショナリ・キャッシュワークスペースIDが一覧されます。

ワークスペース毎のキャッシュを表示するには、ワークスペース名をクリックします。


ワークスペース・キャッシュのレポートが表示されます。

キャッシュを手動でリフレッシュするには、統計の収集とキャッシュのリフレッシュ、または、キャッシュのリフレッシュのみをクリックします。


ワークスペース管理での作業


Oracle APEXのワークスペースにサインインします。

管理メニューの管理を選択し、ワークスペースの管理ページを開きます。


サービスの管理をクリックします。


画面右端にあるメタデータの管理データ・ディクショナリ・キャッシュをクリックします。


データ・ディクショナリ・キャッシュのレポートが開きます。

キャッシュを手動でリフレッシュするには、統計の収集とキャッシュのリフレッシュ、または、キャッシュのリフレッシュのみをクリックします。


手順の確認は以上です。

Perplexity.aiに英語で聞いたときは、正しい手順、それも管理サービスワークスーペース管理から実施する2通りの手順が提示されました。日本語で聞いたときは、双方の手順が混ざったような手順が提示されました。

日本語の質問でも、マニュアルの適切な箇所をソースとしていることは確認できます。回答の生成には(Perplexity.aiのProなので)GPT-4 Omniを使用しているので、現状でこれ以上の性能は求めるのは難しい気がします。


日本語での質問は残念な感じでしたが、公式なドキュメントの該当箇所を探すのは手間がかかるので、AIの支援は有効であると感じます。