oracle數據庫中,應用程序里的連接探測語句的正確使用
來源:懂視網
責編:小采
時間:2020-11-09 07:56:08
oracle數據庫中,應用程序里的連接探測語句的正確使用
oracle數據庫中,應用程序里的連接探測語句的正確使用:oracle 數據庫中,應用程序里的連接探測語句的正確使用 http://blog.csdn.net/msdnchina/article/details/38513765 在很多程序里邊,連接探測(或者連接檢測)語句,都是用的select sysdate from dual; 這是典型的只要功能實現,不管性
導讀oracle數據庫中,應用程序里的連接探測語句的正確使用:oracle 數據庫中,應用程序里的連接探測語句的正確使用 http://blog.csdn.net/msdnchina/article/details/38513765 在很多程序里邊,連接探測(或者連接檢測)語句,都是用的select sysdate from dual; 這是典型的只要功能實現,不管性

oracle 數據庫中,應用程序里的連接探測語句的正確使用 http://blog.csdn.net/msdnchina/article/details/38513765 在很多程序里邊,連接探測(或者連接檢測)語句,都是用的select sysdate from dual; 這是典型的“只要功能實現,不管性能如何”的寫法。其實
oracle 數據庫中,應用程序里的連接探測語句的正確使用
http://blog.csdn.net/msdnchina/article/details/38513765
在很多程序里邊,連接探測(或者連接檢測)語句,都是用的select sysdate from dual;
這是典型的“只要功能實現,不管性能如何”的寫法。其實,連接探測語句,應該用select 1 from dual;
也許有人說,程序員們很辛苦,能實現功能就不錯了。但是,我想說的是:換用select 1 from dual;的寫法,不需要把 exist變為多表連接,因此跟業務邏輯沒啥關系。這是舉手之勞的事情。
下面說一下 select sysdate from dual; 作為連接探測語句的害處:
1.增加數據庫的parse負擔:
這一點可以從 awr報告的“SQL ordered by Parse Calls ”可以看到。(以下基于10.2.0.5)
Parse Calls Executions % Total Parses SQL Id SQL Module SQL Text
3000 3000 15% aqswdefrgthy JDBC Thin Client select sysdate from dual;
但是在mos文章:故障排除:Shared Pool優化和Library Cache Latch沖突優化 (Doc ID 1523934.1)上有如下的描述:
例2: 以下語句不用綁定變量但是也不會被認為是literal SQL,因為這個語句可以被多次執行共享。
SELECT sysdate FROM dual;
我的疑問是:既然說能被共享執行,為啥 Parse Calls的次數與 Executions一樣多?莫非select sysdate from dual在11g上有了改進?
回頭可以找一個11g的環境測試一下。
2.增加數據庫服務器(即:os)的處理負擔,理由如下:
The SYSDATE and SYSTIMESTAMP function simply performs a system-call to the Operating System to get the time (a "gettimeofday" call).
以上摘自:How To Add A Day, Hour, Minute And/Or Second To A Date Value? (Doc ID 1419615.1)
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
oracle數據庫中,應用程序里的連接探測語句的正確使用
oracle數據庫中,應用程序里的連接探測語句的正確使用:oracle 數據庫中,應用程序里的連接探測語句的正確使用 http://blog.csdn.net/msdnchina/article/details/38513765 在很多程序里邊,連接探測(或者連接檢測)語句,都是用的select sysdate from dual; 這是典型的只要功能實現,不管性