Oracle
不同使用者的oracle慢查詢
我有一個關於 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
請記住,第一次執行查詢時,它是在數據庫中註冊的,可能需要很長時間,而其他時候它很快,因為它使用已經在數據庫中註冊的查詢。也許使用者是第一個執行查詢的人,這就是為什麼需要這麼長時間。