-6
このクエリでは576レコードしか提供されていません。テーブルにはレコードが多すぎます。誰かがこのクエリを最適化して時間を短縮するのを助けてくれますか?あなたのクエリを改善するためのクエリが実行に1分掛かり、応答時間を短縮する必要があります
WITH tab1 AS
(SELECT lov.stored_value,
lov.displayed_value
FROM ms_qs_list_of_values_t lov,
ms_qs_lov_names nam
WHERE lov.lov_id=nam.lov_id
AND nam.lov_name='MS_QSM_Init_Questionnaire_Type'),
tab2 AS
(SELECT lov.stored_value,
lov.displayed_value
FROM ms_qs_list_of_values_t lov,
ms_qs_lov_names nam
WHERE lov.lov_id=nam.lov_id
AND nam.lov_name='MS_QSM_Frequency'),
tab3 AS
(SELECT lov.stored_value,
lov.displayed_value
FROM ms_qs_list_of_values_t lov,
ms_qs_lov_names nam
WHERE lov.lov_id=nam.lov_id
AND nam.lov_name='MS_SPI_REVENUE_RANGE_LOV')
SELECT QUE_REQUEST_ID,
QUESTIONNAIRE_ID,
QUE_REQUEST_NAME,
QUE_REQUEST_TYPE,
SCH_FREQUENCY,
DD_OBJECT_TYPE,
QUE_REQUEST_TYPE_DISP,
SCH_FREQUENCY_DISP,
LAST_SENT_DATE,
SCH_NEXT_DATE,
SENT,
PROGRESS,
COMPLETED,
OPEN_ISSUES,
ISSUES_PAST_DUE,
NAME_LINK,
QUE_NAME,
OWNER_ORGANIZATIONS_DISP,
OWNERS_DISP,
LOGIN_ID,
NULL_VALUE
FROM
(SELECT IQV.QUE_REQUEST_ID,
IQV.QUESTIONNAIRE_ID,
IQV.QUE_REQUEST_NAME,
IQV.QUE_REQUEST_TYPE,
IQV.SCH_FREQUENCY,
IQV.DD_OBJECT_TYPE,
tab1.displayed_value AS QUE_REQUEST_TYPE_DISP,
tab2.displayed_value AS sch_frequency_disp,
IQV.LAST_SENT_DATE,
IQV.SCH_NEXT_DATE,
IQV.SENT,
PROGRESS,
IQV.COMPLETED,
IQV.OPEN_ISSUES,
IQV.ISSUES_PAST_DUE,
ms_qsm_rpt_util.get_url(iqv.dd_object_type,iqv.dd_process_instance_id, iqv.que_request_name) AS name_link,
que_name,
owner_organizations_disp,
owners_disp,
:LOGIN_ID AS login_id,
tab3.displayed_value AS null_value
FROM MS_QSM_INIT_QUESTNR_RPT_V1 IQV,
ms_qsm_init_questnr_ind b,
ms_spi_supplier_sft d,
ms_spi_facility c,
tab1,
tab2,
tab3
WHERE iqv.que_request_id=b.que_request_id
AND b. indv_item_field_1=d.object_id
AND d.facility_code=c.facility_code
AND iqv.que_request_type=tab1.stored_value
AND iqv.sch_frequency=tab2.stored_value
AND c.SALES_ANNUAL_REV=tab3.stored_value
AND ((MS_APPS_SECURITY_PKG.CHECK_OBJECT_ACCESS(IQV.DD_OBJECT_TYPE, IQV.RESTRICT_ACCESS_TO, IQV.OWNER_ORGANIZATIONS,:LOGIN_ID,'VIEW') = 'ACCESS'
AND TRUNC(SYSDATE)<=TRUNC(NVL(IQV.SCH_END_BY,SYSDATE)))
OR (IQV.SCH_FREQUENCY='6'
AND IQV.DD_CREATED_BY=:LOGIN_ID)))
緊急に必要ですか?さて、あなたのテーブル/インデックス構造を理解するために私のクリスタルボールを手に入れましょう。 – Siyual
パフォーマンスには役立ちませんが、明示的な 'join'構文を使用する必要があります。 – HoneyBadger
あなたのスキーマについて何も知らずに、あなたの 'CTE 'を具体化することもできます。一時テーブル( '#')を作成すると、それらにインデックスを置くことができます。サブクエリは必要ありません。しかし、それはパフォーマンスを助けません、私は推測します。 – HoneyBadger