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.添加数据库server(即: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 数据库中,应用程序里的连接探測语句的正确使用的更多相关文章
- plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法(转)
原文转自:plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法 最近在使用plsql连接本地oracle数据库的时候,在同一网络环境中,出现了可以连接本地oracle, ...
- Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B
- oracle 数据库中(创建、解锁、授权、删除)用户
上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...
- 详解大数据采集引擎之Sqoop&采集oracle数据库中的数据
一.Sqoop的简介: Sqoop是一个数据采集引擎/数据交换引擎,采集关系型数据库(RDBMS)中的数据,主要用于在RDBMS与HDFS/Hive/HBase之间进行数据传递,可以通过sqoop i ...
- hive表增量抽取到oracle数据库的通用程序(一)
hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...
- Oracle 数据库中查看表空间的2种方法
在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracl ...
- hive表增量抽取到oracle数据库的通用程序(二)
hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name ...
- ArcCatalog中通过ArcSDE向Oracle数据库中导入数据
将数据导入到Oracle指定的表空间的具体内容如下: 首先,在ArcCatalog中建立指定表空间的数据库连接(要以指定表空间的用户登录): 然后,在ArcCatlog中定位到数据源,选中并拷贝图层; ...
随机推荐
- POJ2528:Mayor's posters(线段树区间更新+离散化)
Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral electio ...
- linux查看当前shell的方法
这篇文章主要对比一下 source 命令执行shell文件和 ./ping.sh 这种方式执行shell文件的区别. 1. source ping.sh 这个是在当前的shell 中执行 ping ...
- vi命令整理
vi命令整理 u 撤销上一次操作 ctrl+r 恢复上一次操作 : 跳转至第1行 :$ 跳转至最后一行 ctrl+f 向文章末尾翻页 ctrl+b 向文章开始翻页 yy 复制一行 p 粘贴刚刚复制第一 ...
- windows 7 64bit安装apche php
http://windows.php.net/download#php-5.6-ts-VC11-x64http://www.apachehaus.com/cgi-bin/download.plx 下载 ...
- 从头认识java-13.11 对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题?
这一章节我们继续类型擦除的话题,我们将通过对照数组与泛型容器,观察类型擦除给泛型容器带来什么问题? 1.数组 package com.ray.ch13; public class Test { pub ...
- javascript - = 、==、===、!=、!==、&&、||、!
= .==.===.!=.!==.&&.||.! /* * = .==.===.!=.!==.&&.||.! */ var a = 1; var b = 1; var ...
- 【转】Linux下的多线程编程背景知识
1. 进程和线程 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(pr ...
- react-router-dom Link search 传参
<Link> 和之前版本没太大区别,重点看下组件属性: to(string/object):要跳转的路径或地址: replace(bool):为 true 时,点击链接后将使用新地址替换掉 ...
- Vue 源码 基础知识点
1.数据类型判断 const _toString = Object.prototype.toString function toRawType(value) { return _toString.ca ...
- Linux下统计当前文件夹下的文件个数、目录个数(转)
1) 统计当前文件夹下文件的个数 代码如下: ls -l |grep "^-"|wc -l 2) 统计当前文件夹下目录的个数 代码如下: ls -l |grep "^d& ...