oracle 数据库中,应用程序里的连接探测语句的正确使用
 
这是典型的“只要功能实现,不管性能如何”的写法。其实,连接探测语句,应该用select 1 from dual;
也许有人说,程序员们很辛苦,能实现功能就不错了。但是,我想说的是:换用select 1 from dual;的写法,不需要把 exist变为多表连接,因此跟业务逻辑没啥关系。这是举手之劳的事情。
 
 
 
回头可以找一个11g的环境测试一下。
 
2.增加数据库服务器(即:os)的处理负担,理由如下:
 
 
                
        本文为原创文章,转载请注明出处: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;例2: 以下语句不用绑定变量但是也不会被认为是literal SQL,因为这个语句可以被多次执行共享。
  SELECT sysdate FROM dual;
回头可以找一个11g的环境测试一下。
2.增加数据库服务器(即:os)的处理负担,理由如下:
The SYSDATE and SYSTIMESTAMP function simply performs a system-call to the Operating System to get the time (a "gettimeofday" call). 
                   
                   
                   
                   
                             本文探讨了Oracle数据库中连接探测语句的使用,并指出使用SELECT SYSDATE FROM DUAL作为探测语句的问题所在,建议采用SELECT 1 FROM DUAL来减轻数据库的解析和处理负担。
本文探讨了Oracle数据库中连接探测语句的使用,并指出使用SELECT SYSDATE FROM DUAL作为探测语句的问题所在,建议采用SELECT 1 FROM DUAL来减轻数据库的解析和处理负担。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   14
					14
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            