Index Unique Scan 索引唯一扫描
(page 78)
An index unique scan is chosen when a predicate contains a condition using a column defined with a
UNIQUE or PRIMARY KEY index. These types of indexes guarantee that only one row will ever be returned for a specified value. In this cases, the index structure will be traversed from root to leaf block to a single entry, retrieve the rowid, and use it to access the table data block containing the one row. The TABLE ACCESS BY INDEX ROWID step in the plan indicates the table data block access. The number of block accesses required will always be equal to the height of the index plus one unless there are special circumstances like the row is chained or contains a LOB that is stored elsewhere.
Listing 3-10 shows an example query that will produce an index unique scan plan.
当谓词包含一条件使用了定义了UNIQUE或PRIMARY
KEY索引的某列时,索引唯一扫描将被选择。这种类型的索引保证对于指定的值总是只返回一行。在这种情况下,索引结构遍历将从根到叶块再到单个记录,检索rowid,再用它访问表包含那行的数据块。计划中TABLE ACCESS BY INDEX ROWID
步骤标示出表数据块访问。需要访问的块数将总是等于索引高度加1,除非特殊的环境像行成串了或者某处包含LOB字段。
列表3-10展示了一列子查询将生成一索引唯一扫描计划。
Listing 3-10. Index Unique Scan
SQL> set autotrace traceonly explain
SQL>
SQL> select * from hr.employees where employee_id = 100;
Execution Plan
----------------------------------------------------------
Plan hash value: 1833546154
----------------------------------------------------------------------------------
|Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 82 | 2 (0) |
| 1 | TABLE ACCESS BY INDEX ROWID
| EMPLOYEES | 1 | 82 | 2 (0) |
|* 2 | INDEX UNIQUE SCAN | EMP_EMP_ID_PK | 1 | | 1 (0) |
----------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("EMPLOYEE_ID"=100)
分享到:
相关推荐
在Linux环境下部署Oracle 11g数据库时,经常会遇到对特定依赖包的需求,"compat-libstdc++-33-3.2.3-72.el7.x86_64.zip"就是这样一个关键组件。这个压缩包包含了适用于x86_64架构的Linux系统(如CentOS 7)的兼容性...
在这个场景中,我们看到在EntOS(可能是CentOS或Red Hat Enterprise Linux的变体)系统上进行Oracle 11g的安装,需要用到两个关键的依赖软件包:`compat-libstdc++-33-3.2.3-72.el7.x86_64`和`libaio-devel-0.3.105...
安装oracle11g资源compat-libstdc++-33-3.2.3-72.el7.x86-64.rpm
linux下安装oracle安装需要的compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm和ksh-20120801-33.el6.i686.rpm
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
《兼容库compat-libstdc++-33-3.2.3-47.3.i386在Linux系统中的重要性与安装指南》 在Linux操作系统中,尤其是在进行特定软件或工具的安装时,可能会遇到对特定版本库的需求。其中,“compat-libstdc++-33-3.2.3-...
描述中提到的"Linux安装Oracle 11g先决条件compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm"进一步强调了这个软件包的重要性。在准备安装Oracle 11g之前,必须确保系统已经安装了这个兼容库,因为它是Oracle 11g能够...
"compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm"这个文件就是这样一个关键依赖,它是为Oracle数据库提供兼容性支持的库。 `compat-libstdc++-33`是一个针对旧版Oracle数据库的兼容性库,特别是对那些需要GCC 3.2.3...
compat-gcc-32-3.2.3-72.el7.src.rpm linux上安装oracle所需依赖包
"compat-libstdc++-33-3.2.3-72.el7.x86_64.rar"与"compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm"这两个文件,是专门为解决旧版GCC标准C++库的兼容性问题而设计的。它们为Red Hat 6和7两个版本提供了支持,使得旧...
Xerces-C-3.2.3是该解析器的一个特定版本,它提供了对XML文档的有效验证和处理能力。在IT领域,XML(可扩展标记语言)被广泛用于数据交换、配置文件以及在应用程序之间传递结构化信息。Xerces-C库则是开发人员处理...
compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
1. `compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm`:这是针对64位(x86_64)架构的RPM包,适用于Red Hat Enterprise Linux 6(代号为“El Capitan”)系统。 2. `compat-libstdc++-33-3.2.3-61.i386.rpm`:这个是32...
compat-libstdc++-33-3.2.3-71.el7.x86_64
标题“compat-gcc-32-3.2.3-47.3.i386”涉及的是一个针对32位编译环境的兼容性工具,这个工具是GCC(GNU Compiler Collection)的一个版本,用于在64位系统上构建和运行32位应用程序。GCC是一个开源的编译器套件,...