欢迎投稿

今日深度:

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

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


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)


Oracle 数据库,使用SQL 的select where 语句

用的是什么读取命令,代码发来看看
 

远程连接ORACLE数据库的连接语句,应该怎写?

在你的电脑上安装oracle客户端,然后在你安装的oracle客户端目录下查找tnsnames.ora文件,找到以后加上:
YOUR_ORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
如果你的数据库是SID为TEST,请把(SERVICE_NAME = TEST)改成(SID = TEST)
如果用SQLPLUS连接,请写成sqlplus tzm/777@your_oracle
如果用TOAD或者其他工具连接数据库:



 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2675.html NewsArticle oracle 数据库中,应用程序里的连接探测语句的正确使用,oracle语句 oracle 数据库中,应用程序里的连接探测语句的正确使用 本文为原创文章,转载请注明出处:http://blog.csdn.net/msdnchin...
评论暂时关闭