zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    selenium 操作过程中,元素标红高亮的两种实现方式
    python pytest测试框架介绍五---日志实时输出
    pytest 3.9在python 2.7下的一个bug
    Qt assis tant 帮助集合文档 -由.qhcp生成.qhc
    Qt assistant .qch显示乱码问题
    qhelpgenerator 由qhp生成qch过程碰到的问题 记录
    Qt creator新建widget项目....no valid kits found.....
    Qt creator 账号
    Qt 写Excel
    Qt获取主窗口
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6731500.html
Copyright © 2011-2022 走看看