当前位置:  数据库>oracle

Oracle 索引访问方式

    来源: 互联网  发布时间:2017-05-18

    本文导语: Oracle 索引访问方式 本篇记录一些Oracle索引访问操作 表访问方式请参考: 显示执行计划的存储过程请参考 (1)INDEX UNIQUE SCAN 唯一索引扫描,唯一索引即做单一匹配。在唯一索引中,每个非空键值只有唯一的一条,主键也是唯...

Oracle 索引访问方式

本篇记录一些Oracle索引访问操作

表访问方式请参考:

显示执行计划的存储过程请参考

(1)INDEX UNIQUE SCAN

唯一索引扫描,唯一索引即做单一匹配。在唯一索引中,每个非空键值只有唯一的一条,主键也是唯一索引。示例:

SQL> exec sql_explain('select * from emp where empno=8888');
Plan hash value: 2949544139
--------------------------------------------------------------------------------
------
| Id  | Operation                  | Name  | Rows  | Bytes | Cost (%CPU)| Time
|
--------------------------------------------------------------------------------
------
|  0 | SELECT STATEMENT            |        |    1 |    39 |    1  (0)|
00:00:01 |
|  1 |  TABLE ACCESS BY INDEX ROWID| EMP    |    1 |    39 |    1  (0)|
00:00:01 |
|*  2 |  INDEX UNIQUE SCAN        | PK_EMP |    1 |      |    0  (0)|
00:00:01 |
--------------------------------------------------------------------------------
------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPNO"=8888)

PL/SQL 过程已成功完成。

(2)INDEX RANGE SCAN

非唯一索引扫描,对应唯一索引扫描,索引进行范围匹配,(例如>、 create table t_xyc as select * from emp;

表已创建。
SQL> insert into t_xyc  select * from emp;

已创建15行。

SQL> commit;

提交完成。
SQL> create index xyc_index on t_xyc(empno);

索引已创建。
---用等号(=)进行单一匹配
SQL> exec sql_explain('select * from t_xyc where empno=8888');
Plan hash value: 767710755
-----------------------------------------------------------------------------------------
| Id  | Operation                  | Name      | Rows  | Bytes | Cost (%CPU)| Time    |
-----------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT            |          |    2 |    78 |    4  (0)| 00:00:01 |
|  1 |  TABLE ACCESS BY INDEX ROWID| T_XYC    |    2 |    78 |    4  (0)| 00:00:01 |
|*  2 |  INDEX RANGE SCAN          | XYC_INDEX |    2 |      |    1  (0)| 00:00:01 |
-----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPNO"=8888)

PL/SQL 过程已成功完成。
----用大于(>)进行范围匹配
SQL> exec sql_explain('select * from t_xyc where empno>8888');
Plan hash value: 767710755
-----------------------------------------------------------------------------------------
| Id  | Operation                  | Name      | Rows  | Bytes | Cost (%CPU)| Time    |
-----------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT            |          |    2 |    78 |    4  (0)| 00:00:01 |
|  1 |  TABLE ACCESS BY INDEX ROWID| T_XYC    |    2 |    78 |    4  (0)| 00:00:01 |
|*  2 |  INDEX RANGE SCAN          | XYC_INDEX |    2 |      |    1  (0)| 00:00:01 |
-----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPNO">8888)

PL/SQL 过程已成功完成。


    
 
 

您可能感兴趣的文章:

  • Oracle与Mysql主键、索引及分页的区别小结
  • 从Oracle的约束到索引
  • Oracle 9i轻松取得建表和索引的DDL语句
  • Oracle9i取得建表和索引的DDL语句
  • oracle10g全文索引自动同步语句使用方法
  • Oracle建立二进制文件索引的方法
  • 在Oracle 10g中如何获得索引的专家建议
  • Oracle全文索引设置
  • 用Oracle 9i全索引扫描快速访问数据
  • Oracle中如何把表和索引放在不同的表空间里
  • Oracle索引存储关系到数据库的运行效率
  • Oracle索引聚簇表的数据加载
  • 在Oracle中监控和跟踪索引使用情况
  • oracle 索引的相关介绍(创建、简介、技巧、怎样查看) .
  • Oracle中检查是否需要重构索引的sql
  • 轻松取得Oracle 9i建表和索引DDL语句
  • 深度揭露Oracle索引使用中的限制
  • Oracle索引(B*tree与Bitmap)的学习总结
  • oracle 索引不能使用深入解析
  • SQL Server和Oracle数据库索引介绍
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • linux下通过对文件读取方式查询oracle的版本信息
  • 参加Oracle认证的两种考试方式
  • Oracle解锁的方式介绍
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 如何实现将客户机上的word文件,以B/S方式最终存入oracle数据库?
  • Oracle数据库的四种启动方式
  • oracle中得到一条SQL语句的执行时间的两种方式
  • 基础知识:Oracle数据库的启动方式
  • oracle中修改表名的几种方式
  • Oracle数据库三种的封锁方式
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下如何用 C 访问oracle数据库,最好是远程访问
  • win2000+jbuilder6+oracle817编出的程序,在win2000下执行很好,在win98下却访问不了oracle数据库
  • Oracle数据库访问参数文件的顺序
  • windows下通过ie访问不到linux环境下的oracle em
  • jbuilder6 中怎样引入oracle 数据访问包
  • (菜鸟的问题)如何在Linux下用OCI访问Oracle
  • ubuntu10下的oracle连接访问
  • Oracle指定IP访问数据库方法
  • 求助:如何在UNIX下访问已经在WINDOWS下安装好的ORACLE?
  • 请教高手: linux c如何远程访问windows下的oracle数据库?
  • linux中用C++访问oracle数据库后,封装接口的问题……………………
  • linux as3 安装oracle10g ,web端能访问,终端用命令不能进入
  • LINUX下访问oracle时sleeping的线程过多,达到300多个,造成系统拥堵!
  • hpux下如何用c语言访问oracle数据库? iis7站长之家
  • linux + oracle用XP访问不了
  • Linux下怎么访问Oracle数据库?求助!
  • ASP如何访问linux下oracle数据库?
  • hpux下如何用c语言访问oracle数据库?
  • 怎么写一个Shell来执行这样的功能,访问Oracle数据库,然后执行一个SQL脚本,生成一个文件。急!
  • Linux/UNIX下,C++程序通过那些步骤访问Oracle或者Sybase SQL数据库?
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 虚拟机装Oracle R12与Oracle10g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,