[20120229]無效sql語句與shared pool的問題.txt
昨天遇到一些程式的bug,因為查詢要顯示1年的資訊,因為2011年沒有2月29號,導致查詢出錯。由此想到另外的問題,如果查詢存在這些語句,會保留在共享池嗎?自己做了一個測試:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> select * from emp where hiredate=to_date('2012-02-30','yyyy-mm-dd');
select * from emp where hiredate=to_date('2012-02-30','yyyy-mm-dd')
*
ERROR at line 1:
ORA-01839: date not valid for month specified
SQL> select * from table(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST PEEKED_BINDS cost'));
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID fv0w0c06d6jsa, child number 0
-------------------------------------
select * from emp where hiredate=to_date('2012-02-30','yyyy-mm-dd')
Plan hash value: 3956160932
--------------------------------------------------------
| Id | Operation | Name | E-Rows | Cost (%CPU)|
--------------------------------------------------------
| 0 | SELECT STATEMENT | | | 3 (100)|
|* 1 | TABLE ACCESS FULL| EMP | 1 | 3 (0)|
--------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("HIREDATE"=TO_DATE('2012-02-30','yyyy-mm-dd'))
Note
-----
- Warning: basic plan statistics not available. These are only collected when:
* hint 'gather_plan_statistics' is used for the statement or
* parameter 'statistics_level' is set to 'ALL', at session or system level
24 rows selected.
SQL> column aa format a140
SQL> select executions,sql_id,substr(sql_text,1,150) aa from v$sql where sql_id='fv0w0c06d6jsa';
EXECUTIONS SQL_ID AA
---------- ------------- ---------------------------------------------------------------------
1 fv0w0c06d6jsa select * from emp where hiredate=to_date('2012-02-30','yyyy-mm-dd')
--居然算執行了。
SQL> column aa format a76
SQL> select sql_id,substr(sql_text,1,76) aa,users_opening, open_versions,users_executing from v$sql where sql_id ='fv0w0c06d6jsa';
SQL_ID AA USERS_OPENING OPEN_VERSIONS USERS_EXECUTING
------------- ---------------------------------------------------------------------------- ------------- ------------- ---------------
fv0w0c06d6jsa select * from emp where hiredate=to_date('2012-02-30','yyyy-mm-dd') 0 0 0
--僅僅USERS_OPENING=0, OPEN_VERSIONS=0.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-717416/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20200126]使用DBMS_SHARED_POOL.MARKHOT與sql語句.txtSQL
- [20200211]使用DBMS_SHARED_POOL.MARKHOT與sql語句2.txtSQL
- [20200212]使用DBMS_SHARED_POOL.MARKHOT與sql語句3.txtSQL
- [20201117]使用DBMS_SHARED_POOL.MARKHOT與sql語句5.txtSQL
- [20201117]使用DBMS_SHARED_POOL.MARKHOT與sql語句6.txtSQL
- SQL在shared pool中的解析過程問題SQL
- jivejdon sql語句問題SQL
- 【實驗】sql語句在shared_pool中的查詢(程式 繫結變數)SQL變數
- 【Shared Pool】使用DBMS_SHARED_POOL包將PL/SQL大物件儲存到Shared PoolSQL物件
- [20211221]分析sql語句遇到的問題.txtSQL
- [20130628]sql語句顯示不全的問題.txtSQL
- 對sql語句的優化問題SQL優化
- [20150705]從AWR抽取有問題的sql語句.txtSQL
- shared_pool_spare_free.sqlSQL
- [20240320]空格與sqlpus的sql語句.txtSQL
- shared_pool的sql命中率SQL
- [20230329]記錄除錯sql語句遇到的問題.txt除錯SQL
- 對sql語句的最佳化問題SQL
- Shared Pool 的轉儲與分析
- PL/SQL Program Units and the Shared Pool (89)SQL
- 使用DBMS_SHARED_POOL包將PL/SQL大物件儲存到Shared PoolSQL物件
- SQL語句巢狀查詢問題SQL巢狀
- oracle效能問題:sql語句優化OracleSQL優化
- 關於sql語句的遊標共享問題SQL
- 一個JTextPane寫SQL語句的問題SQL
- [20211229]toad下優化sql語句注意的問題.txt優化SQL
- Oracle中SQL語句執行效率問題的查詢與解決OracleSQL
- 50個SQL語句(MySQL版) 問題十四MySql
- SQL 語句select top 變數問題SQL變數
- [20200212]使用DBMS_SHARED_POOL.MARKHOT與sql的計算2.txtSQL
- [20200211]使用DBMS_SHARED_POOL.MARKHOT與sql_id的計算.txtSQL
- EditPlus不能著色顯示SQl語句的問題SQL
- 一個使用SQL語句解決的小問題SQL
- [20150724]無法通過sql_id找到sql語句.txtSQL
- [20211229]sql語句包含中文儲存clob的編碼問題.txtSQL
- [20150403]修正sql語句.txtSQL
- 生產SQL語句突然變慢問題定位SQL
- SQL查詢語句臃腫問題淺析SQL