Heim > Datenbank > MySQL-Tutorial > oracle 数据库中,应用程序里的连接探测语句的正确使用

oracle 数据库中,应用程序里的连接探测语句的正确使用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:32:59
Original
1117 Leute haben es durchsucht

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;
Nach dem Login kopieren
但是在mos文章:故障排除:Shared Pool优化和Library Cache Latch冲突优化 (Doc ID 1523934.1)上有如下的描述:
例2: 以下语句不用绑定变量但是也不会被认为是literal SQL,因为这个语句可以被多次执行共享。


  SELECT sysdate FROM dual;
Nach dem Login kopieren
我的疑问是:既然说能被共享执行,为啥 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).
Nach dem Login kopieren
以上摘自:How To Add A Day, Hour, Minute And/Or Second To A Date Value? (Doc ID 1419615.1)

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage