私は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;