Oracle

不同使用者的oracle慢查詢

  • June 5, 2020

我有一個關於 oracle 查詢的問題,當它從模式執行時需要將近 20 分鐘,但是當它作為 sys 使用者執行時,它最多執行 1 秒……這怎麼可能?…我對調整 plsql 知之甚少,我發現很難找到造成這種巨大延遲的原因,我想知道是否有任何工具可以自動調整查詢。有問題的句子是:

SELECT FC.ID_SER 
    FROM MIGER.FONT_COUNTER FC
    WHERE TO_CHAR(FC.ID_SER) NOT IN (SELECT 
    ID_SER FROM INAC.SERV)
    -- AND (FC.STATE <>'R' OR FC.STATE <> NULL)
    AND FC.T_ACT='M'

謝謝

過去我注意到查詢計劃可能會有所不同,因為客戶端上使用了區域設置(語言)。大多數情況下,語言環境是從客戶端作業系統繼承的。

您可以使用 TOAD。

步驟 1. 為查詢添加陰影

步驟 2. 右鍵點擊,然後從上下文菜單中選擇優化,然後自動優化 SQL

請記住,第一次執行查詢時,它是在數據庫中註冊的,可能需要很長時間,而其他時候它很快,因為它使用已經在數據庫中註冊的查詢。也許使用者是第一個執行查詢的人,這就是為什麼需要這麼長時間。

引用自:https://dba.stackexchange.com/questions/229191