我有一個需要3.5秒執行的存儲過程。 我的SP是如下:可以存儲過程使用創建的索引在oracle中的一個表中
CREATE OR REPLACE PROCEDURE ProcTest (columnNumber IN VARCHAR2,
TG OUT VARCHAR2)
IS
stmt VARCHAR2 (1000);
BEGIN
TG := 't' || TO_CHAR (SYSDATE, 'YYYYMMDDHH24MISS') || columnNumber;
stmt :=
'CREATE GLOBAL TEMPORARY TABLE ' || TG
|| ' ON COMMIT PRESERVE ROWS AS (SELECT * FROM USER1.Tbl WHERE CHARGINGPARTY='
|| columnNumber
|| ')';
EXECUTE IMMEDIATE stmt;
END;
我執行這一部分(CREATE GLOBAL TEMPORARY TABLE '|| TG ||' ON COMMIT PRESERVE ROWS AS(SELECT * FROM USER1.Tbl WHERE CHARGINGPARTY =」 ||得到columnnumber ||')')在SQL開發人員,它需要0.2s,但是當我執行SP,它需要3.2。
我創建了一個索引在我的表(USER1.Tbl), 當我在創建該索引之前在SQL開發者中運行創建表查詢,它花了3.2s。
我的問題是: sp是否使用索引?或者我如何強制sp使用索引?