我想知道在Oracle中將cursor_sharing參數設置爲「FORCE」的權衡。 因爲這會試圖對任何SQL語句進行軟解析,並且當然必須改進性能。 但默認值爲「EXACT」,所以我想知道是否有任何危險設置爲FORCE或SIMILAR。Oracle中的cursor_sharing參數
0
A
回答
1
除非你真的知道你在做什麼,否則我建議不要改變這個設置。
通常情況下,如果你有大量的硬解析,這是一個糟糕的應用程序設計的跡象。
選擇所有的產品給定類別(僞)一個典型的例子:
stmt = 'select * from products where category = ' || my_category
results = stmt.execute
這是有缺陷的,原因如下:
- 它爲每一類不同的SQL語句,因此顯着增加了硬解析的數量
- 它容易受到SQL注入攻擊
1
使用cursor_sharing = exact可以很好地運行一個好的應用程序。一個好的應用程序可以使用文字出於特定的原因,例如選擇state = new的命令。文字的使用是可以的。如果應用程序使用文字通過ID來識別訂單,它將會有所不同,因爲這將是許多不同的訂單ID。
最好是清理該應用使用文字以正確的方式或開始使用以達到最佳性能準備的語句。
如果您碰巧有一個只使用文字的應用程序,請將cursor_sharing設置爲FORCE。在11g中有一些機制,如基數反饋能夠根據來自查詢的非預期行計數來調整執行計劃,以確保最初爲查詢計劃的計劃基於輸入和輸出進行糾正,下次使用它。
相關問題
- 1. oracle 12c cursor_sharing更改多個會話
- 2. 在Oracle中獲取參數Oracle Forms中的參數
- 3. Oracle中的NLS_LANG參數
- 4. 參數Oracle包
- 5. Dapper.net Oracle參數
- 6. 在Oracle中根據參數
- 7. Oracle命名參數
- 8. Oracle DBMS_SCHEDULER sysdate參數
- 9. Oracle - 基於參數
- 10. 匿名Oracle參數?
- 11. Oracle 10g NLS參數
- 12. PHP中的Oracle SP數組參數參數
- 13. pl/sql:在oracle中選擇作爲函數的參數/參數
- 14. 通過參數的Oracle SQL
- 15. Javascript的Oracle SQL與參數
- 16. oracle sql的參數化值
- 17. Oracle中的IDLE超時參數
- 18. Oracle。查詢中的參數。可變
- 19. 參數和Oracle中的連接SQL
- 20. 參數中的多個值 - SQL(Oracle)
- 21. Oracle中的SQL參數限制
- 22. 在c#中的Oracle參數化查詢
- 23. 從Oracle 10g中的SP解析參數
- 24. 在Oracle中的參數化查詢
- 25. Java中的參數化Oracle SQL查詢?
- 26. SSIS - 使用Attunity Oracle數據源在Oracle Query中使用參數
- 27. oracle sql參數在vb.net中不工作
- 28. 在Oracle Forms/OC4J中訪問URL參數
- 29. ORACLE中的DECODE函數中使用的參數
- 30. Oracle AQ出隊參數