0

私は2つのテーブルを持っていcatalogますcatalog_elements.

カタログには、多くのカタログ要素を含めることができます。

1 つのカタログに関連付けられているすべての要素を一覧表示し、同じページの上部にカタログ名とカタログ コメントを表示する必要がある機能があります (1 つのカタログに 1 つのコメントを含めることができます)。

私のDBAはストアドプロシージャを与えられ、内部結合を入れて以下のようにレコードを選択し、

C.cat_name, C.cat_comment, CE.cat_ele_id, CE.cat_ele_date

   [C means catalog, CE means catalog Elements]

SYS_REFCURSORしかし、各行でカタログの詳細のタプルが繰り返されるのを避けるために、カタログの詳細を選択するのに 1 秒を使用するのが好きです。

誰かがこれに最適な解決策を提案できますか(パフォーマンスの観点から)?

以下のspには、DBAに提案したい2つのカーソルがあります。

(2 番目のカーソルを使用してカタログ データを取得することにより、select クエリから cat_name と cat_comment を削除するのが好きです)

SP コードのテンプレートは次のとおりです。

create or replace
PROCEDURE SP_GET_Cat_CatEle_DTL(
          P_CATALOG_ID NUMBER DEFAULT NULL,
          P_RECORDSET  OUT SYS_REFCURSOR,
          P_CATALOG_RECORD OUT SYS_REFCURSOR
          ) AS

BEGIN
  OPEN P_RECORDSET FOR

    select cat_name, cat_comment, cat_ele_id, cat_ele_date from  cat inner join
    cat_ele on cat.id = cat_ele_id where cat.id = P_CATALOG_ID

  OPEN P_CATALOG_RECORD FOR
    SELECT * FROM CATALOG_MASTER WHERE CATALOG_ID = P_CATALOG_ID;

END SP_GET_Cat_CatEle_DTL;
4

1 に答える 1