我們有一個.NET應用程序與Oracle 10g交談。我們的DBA最近拉出了一個執行等於parse_calls的查詢列表。我們假設這會幫助我們在代碼中找到所有未參數化的查詢。Oracle - 參數化查詢具有EXECUTIONS = PARSE_CALLS
沒想到,下面的查詢顯示了接近這個列表的頂部,與1436169處決和1436151個解析:
SELECT bar.foocolumn
FROM bartable bar,
baztable baz
WHERE bar.some_id = :someId
AND baz.another_id = :anotherId
AND baz.some_date BETWEEN bar.start_date AND (nvl(bar.end_date, baz.some_date + (1/84600)) - (1/84600))
爲什麼處決等於parse_calls此查詢?
我認爲我們需要查詢您的DBA用來確定解析呼叫計數以區分硬解析和軟解析。另外,瞭解SGA的大小將有助於消除SQL在共享池老化之前可以重用的明顯問題。 – dpbradley 2010-05-11 14:02:42
我讓他再次提取查詢列表,並將解析分解爲軟和硬。 不確定SGA的大小,但我也會問他這個問題:) – 2010-05-11 14:31:02
+1對所有的有趣的問答 – DCookie 2010-05-11 14:43:49