2013-03-04 59 views
0

我有兩個用戶 - user1,user2。Oracle查詢性能是否取決於數據庫用戶?

兩者都被授予了某個視圖的選擇授予,比如由某個其他用戶創建的視圖1稱爲manager1。

現在,user1和user2都在manager1的視圖上創建了同義詞,因此它們不需要使用manager1.view_name進行查詢,而只需使用view name。現在

CREATE OR REPLACE SYNONYM user1.view_name1 FOR manager1.view_name1; 

我的問題是當在USER1執行,但是當用戶2下執行的是少於第二相同的查詢花費更長的時間。

我嘗試了不同的組合和不同的執行順序以避免緩存問題。但徒勞無益。請幫忙。

在user1下花費大約10秒。 :(

+2

它們是不同的查詢文本的至少一個字符是不同的。看到這兩個查詢的執行計劃,並迫使壞遵循良好的執行計劃。如果我們可以幫助您如果VPD/RLS政策上的觀點(只是猜測) – 2013-03-04 08:58:50

+2

檢查你的DBA可以看到:他們是完全SAEM查詢和既有相同的計劃的哈希值。 ' – tbone 2013-03-04 12:17:03

+0

@FlorinGhita使您發佈兩個執行計劃和查詢 – Anubhab 2013-03-05 05:29:05

回答

1

有各種各樣的原因,相同的SQL語句(完全相同的文字),可以有不同的執行計劃。這可以是一個Oracle錯誤或在「環境」的差異。例如不同的數據類型爲佔位符,不同NLS_參數(排序,區分大小寫)。

相關問題