`
itspace
  • 浏览: 984320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

select sysdate from dual在Oracle9i和10g中的区别

 
阅读更多
在9i环境中
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
PL/SQL Release 9.2.0.6.0 - Production
CORE    9.2.0.6.0       Production
TNS for HPUX: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
可以看到读取dual表会产生3个逻辑读
SQL> select sysdate from dual;


Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE
   1    0   TABLE ACCESS (FULL) OF 'DUAL'




Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads
          0  redo size
        495  bytes sent via SQL*Net to client
        655  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed


而在Oracle 10g,对dual的读取降低到0个逻辑读
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0      Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production

SQL> select sysdate from dual;


Execution Plan
----------------------------------------------------------
Plan hash value: 1388734953

-----------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Cost (%CPU)| Time     |
-----------------------------------------------------------------
|   0 | SELECT STATEMENT |      |     1 |     2   (0)| 00:00:01 |
|   1 |  FAST DUAL       |      |     1 |     2   (0)| 00:00:01 |
-----------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        415  bytes sent via SQL*Net to client
        400  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed




如果应用中大量采用select sysdate from dual这种方法获取系统时间,Oracle的这一点点小小的改动,无疑会提高性能。但是值得一提的是select * from dual;执行计划和逻辑读并没有改变。
分享到:
评论

相关推荐

    Oracle9i全教程.pdf

    ### Oracle9i全教程知识点概览 #### 一、Oracle9i基础知识 1. **关系数据库管理系统(RDBMS)理解** - **关系模型**:介绍关系模型的基本概念,包括表(Table)、元组(Tuple)、属性(Attribute)等基本元素。 - **Codd...

    oracle 9i 面试题

    在 Oracle 中查询当前系统时间可以使用 `SELECT SYSDATE FROM DUAL;` 这条 SQL 语句。 #### 四、触发器的概念及其应用 **触发器** 是一种特殊类型的存储过程,它可以在数据被插入、更新或删除之前或之后自动执行。...

    Oracle9i数据库基础

    ### Oracle9i数据库基础知识点概览 #### 一、Oracle SQL*PLUS基础 **1.1 关系数据库系统 (RDBMS)** - **关系模型**:关系模型是一种基于数学集合论的数据组织方式,其中数据被组织成表格形式,每个表格都有一个...

    oracle 获取时间

    在Oracle数据库中,获取时间和日期是非常常见的需求之一。无论是进行数据查询还是进行数据处理,正确地掌握如何获取和操作时间与日期对于开发人员来说至关重要。本文将详细介绍Oracle中获取时间的各种方法,并提供...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    Oracle8i_9i数据库基础-WORD版

    ### Oracle8i_9i数据库基础知识点概览 #### 一、Oracle数据库基础概述 - **关系数据库系统(RDBMS)的理解**: - **关系模型**:关系模型是RDBMS的基础,它通过表格的形式组织数据,每张表由一系列行和列组成,其中...

    oracle常见问题

    SVRMGR是Oracle早期版本中的服务器管理工具,但在9i及更高版本中已被SQL*Plus替代。要切换到归档日志模式,可以使用SQL命令。 通过查询`V$SESSION`视图,可以找出用户是从哪台机器登录Oracle的,其中`MACHINE`和`...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...

    oracle的常见的200多个问题

    SELECT SYSDATE - TRUNC(SYSDATE, 'Q') + 1 FROM DUAL; ``` 3. **查询当前年度天数**: ```sql SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'DDD')) FROM DUAL; ``` 这些查询提供了快速计算日期的方法,特别适用于报表...

    Oracle相关的1000个命令

    如果需要在Oracle数据库环境中获取Unix时间,可以使用 `SYSDATE` 函数。 以上知识点涵盖了Oracle数据库的基础操作、配置管理以及一些常用的查询命令,对于Oracle数据库的学习和使用都有一定的帮助。

    Oracle8i_9i数据库基础

    - **伪列**:在Oracle中,某些特殊的列被称为伪列,它们不是表中的实际列,但可以在查询中像普通列一样使用。 - **常用的伪列**: - `ROWID`:用于唯一标识表中的每一行; - `LEVEL`:在层次查询中使用。 - **...

    Oracle事例

    sql>select \'UserId=1233111\'||chr(10)||\'AccId=13431\'||chr(9)||\'AccId2=11111\' from dual; 24、树形查询 create table zj( bm number(8), bmmc varchar2(20), sjbm number(8) ) insert into zj ...

    oracle

    Oracle9i中没有直接支持自增列的功能,但可以通过序列和触发器的方式实现类似的效果。 1. **创建表格** 创建一个表格,指定`TID`为主键。 ```sql CREATE TABLE scott.test_table ( TID NUMBER(9,0) PRIMARY ...

    oracle8i_9i数据库基础

    ### Oracle8i/9i数据库基础知识点概览 #### 一、关系数据库系统(RDBMS)的理解 **1.1 关系模型** - **定义**: 关系模型是一种用于描述数据库中数据及其相互之间联系的数据模型。它以表格形式组织数据,并通过表格...

    Oracle公司内部数据库培训资料Les16chinese.ppt

    Oracle数据库在处理日期和时间方面提供了丰富的功能,特别是在Oracle9i及后续版本中引入了对时区的支持。在Oracle公司内部的数据库培训资料中,重点介绍了与日期和时间相关的函数和概念,这对于理解和操作带有时区...

    1.Oracle8i_9i数据库基础.doc

    从给定的文档信息中,我们可以提炼出一系列关于Oracle8i和9i数据库基础的关键知识点。这份文档由赵元杰于2003年撰写,旨在为读者提供Oracle数据库的基础知识,尤其聚焦于SQL\*PLUS和PL/SQL程序设计。 ### Oracle8i_...

    Oracle.pdf

    - 查询当前系统时间的命令:`SELECT sysdate FROM dual;` - 可以通过`ALTER SESSION SET NLS_DATE_FORMAT`命令自定义日期格式。 ### SQL Plus 初始化 - 在SQL Plus中,可以使用`@`符号执行外部脚本文件来初始化...

    Oracle8i_9i数据库基础.doc

    ### Oracle8i_9i数据库基础知识点概览 #### 一、Oracle SQL*PLUS基础 **1.1 关系数据库系统 (RDBMS)** - **关系模型**: RDBMS 基于关系模型,该模型由 E.F. Codd 在 1970 年提出,它使用表格形式来组织数据,表格...

Global site tag (gtag.js) - Google Analytics