Oracle 10g几种查找数据的方法

(oracle10g复习一)oracle10g创建数据库的方法 有段时间没有摸这个东西了,说起来也惭愧啊,现在的工作根本用不到甲骨文,但是我觉得这个东西以后还是很有用的,所以我觉得很有必要复习下了,下面我会就这个一话题做一个全面的复习计划,待续... ... ... ... ... ... ... ... 在Oracle中建库,通常有两种方法。一是使用Oracle的建库工具DBCA,这是一个图形界面工具,使用起来方便且很容易理解,因为它的界面友好、美观,而 阅读详情

在Oracle 10g 有几种查找数据的方法,了解这些查找数据的方法,有利于我们读懂执行计划,并通过执行计划来优化我们的ORacle数据库系统。

     查找数据主要有一下方式:

       1,全表扫描和RowId查找数据

       2,通过索引查找数据

     1.1 全表扫描(Full Table Scans )

        有时Oracle数据库在评估最优执行计划时,当去取大量数据时,就会优先考虑使用全表扫描,因为这时全表扫描是最优的。一般取出的数据占表的数据5%--10%左右会发生表扫描,一般在OLTP系统中尽量避免表扫描。

       为了更好的使用表扫描,提高效率,在oracle 中有好几种分区方法,提高表扫描的效率,让表按具体业务逻辑来分区,尽量做到分区消除,减少表扫描的大小,提高性能。

     1.2 ROWID查找数据(Table Access by ROWID 或R owid lookup )

       行ROWID是行数据在数据库 文件,数据块和行在块的具体位置,所以是Oracle最快的定位方法。

       这种方法只能一次读取一个IO,不会涉及多个IO。

     目前通过索引查找,主要有5种索引查找方式:

         1,索引唯一查找(index unique scan )

         2,索引范围查找 (index range scan )

         3,索引全部扫描 (index full scan )

         4,索引快速扫描 (index fast full scan )

         5,索引跳跃式查找 (index skip scan )

      2.1 ,索引唯一查找(index unique scan )

           当查询列是 如果存在UNIQUE 或PRIMARY KEY 约束(它保证了语句只存取单行)的话,Oracle经常实现唯一性扫描。此查找方法效率很高。

        2.2 ,索引范围查找 (index range scan )

          使用一个索引存取多行数据,在唯一索引上使用索引范围扫描的典型情况下是在谓词(where限制条件)中使用了范围操作符(如>、<、<>、>=、<=、between)

      2.3, 索引全部扫描 (index full scan )

        全索引扫描。对查询出的数据进行排序,而且此时查询出的数据都必须从索引中可以直接得到。同时order by排序的数据应该是按索引的顺序来读取的。 如下:         

explain plan   for   select empno,ename from big_emp order   by empno,ename 
      2.4,索引快速扫描 (index fast full scan )

          与 index full scan很类似,但是一个显著的区别就是它不对查询出的数据进行排序,即数据不是以排序顺序被返回 ,在这种存取方法中,可以使用多块读功能,也可以使用并行读入,以便获得最大吞吐量与缩短执行时间,索引快速全局扫描,不带order by情况下常发生,如下:

explain plan   for   select empno,ename from big_emp 
      2.5, 索引跳跃式查找 (index skip scan )

         where条件列是非索引的前导列情况下常发生。如下:

create   index i_emp on emp(empno, ename);
select   /* + index_ss(emp i_emp) */   job from emp where ename = ' SMITH ' ; 
      

   总结:

     index full scan (索引全扫描):有排序 ,就是利用到了index的排序功能。原理:通过root根级----到中间级---叶级

      index fast full scan (索引快速扫描):无排序, 就可以利用多块读取方式,提高查询速度,因为数据要求是无序的。即可以使用多块查询,取出的数据就是数据存放的顺序。

      当进行index full scan的时候 oracle定位到索引的root block,然后到branch block(如果有的话),再定位到第一个leaf block, 然后根据leaf block的双向链表 顺序读取。它所读取的块都是有顺序的,也是经过排序的。

     而index fast full scan则不同,它是从段头开始,读取包含位图块,root block,所有的branch block, leaf block,读取的顺序完全有物理存储位置决定,并采取多块读,每次读取db_file_multiblock_read_count个

oracle 10g 下载方法 还在为ORACLE10不能下载而苦恼吗????? 那就按照正面的步骤做吧。。 哥可是经过多重磨难才找到这个方法的,如果这个办法好用,请在下面顶一下。。。   1、首先在oracle 官方网站 登陆你的注册用户,如果没有可以注册一个;找到一个11g的下载链接地址,然后点击 otn license 单选按钮,同意协议; 如果没有 license 选择这一步,会直接报错而无法下载的;如果需要 阅读详情

相关推荐

基于分位数回归的静态CoVaR计算 案例与代码

原文链接:https://bbs.pinggu.org/thread-7925441-1-1.html 一、静态CoVaR模型介绍 二、资料简介 实现对相关期刊论文进行论文重现,解决实证分析中的技术操作问题。里面包含了每一步详细的步骤,可以方便的利用这个手册解决大部分利用分位数回归计算静态CoVaR的论文的模型实现问题。即从数据下载到模型实现一整条操作步骤。 关键词:【分位数回归】【Co...

ChenQihome9的博客 7505

索引快速扫描(index fast full scan)

一、索引快速扫描(index fast full scan) 索引快速全扫描(INDEX FAST FULL SCAN)和索引全扫描(INDEX  FULL SCAN)极为类似,它也适用于所有类型的B树索引(包括唯一性索引和非唯一性索引)。和索引全扫描一样,索引快速全扫描也需要扫描目标索引所有叶子块的所有索引行。 索引快速全扫描与索引全扫描相比有如下三点区别。 (1)索引快速全扫描只适用于C...

weixin_34259159的博客 463

Ubuntu下安装Hive3.1.2教程(附MySQL安装方法及安装包)

文章目录前言一、安装Hive1. 下载压缩包并解压2. 安装Hive3. 配置环境变量4. 修改配置文件二、MySQL安装与配置1. 安装MySQL2. 安装MySQL jdbc包3. 为Hive创建MySQL账号三、验证Hive安装及错误处理1. 启动Hadoop2. 启动hive3. 运行Hive实例总结 前言 Hive 的安装需要建立在 Hadoop 的之上(类似于Hbase),关于 Hadoop 的单机安装以及伪分布式安装可以参考作者的另两篇博客: Ubuntu下单机安装Hadoop详细教程(附

程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行 1万+

index full scan和index fast full scan区别

触发条件:只需要从索引中就可以取出所需要的结果集,此时就会走索引全扫描 Full Index Scan   按照数据的逻辑顺序读取数据块,会发生单块读事件, Fast Full Index Scan 按照数据块的物理存储位置顺序读取数据块,会发生多块读事件,理论上索引快速全扫描会比索引全扫描要快 官档的解释: Full Index Scan ...

aiduo1030的博客 646

fpga的希尔伯特变换实现

fpga的希尔伯特变换实现零.实现背景一.希尔伯特实现的基本原理2.实现1)matlab仿真1)fpga滤波器实现实现成本:fpga实现采用VIvado的FIR的IP核, 零.实现背景 因为今明工作项目需要使用到希尔伯特变换来处理问题,所以顺便就把设计流程和代码都整理下来,以便供他人使用。选用Xilinx的7系列板子,Vivado平台。 一.希尔伯特实现的基本原理 希尔伯特变换的物理意义十分简单:...

weixin_42219690的博客 1万+

Oracle之执行计划index fullscan和index fast full scan区别

1、当select和where中出现的列都存在索引是发生index full scan与index fast full scan的前提    2、查询返回的数据行总数占据整个索引10%以上的比率    3、基于上述前提count(*)操作几乎总是选择index fast full scan,而索引列上的order by子句几乎总是选择index full scan    4、in

qq_33879355的博客 4906

深入解析ADC采样电容:从充电误差到LSB精度的关键设计

本文深入解析了ADC采样电容在模数转换中的核心作用,重点探讨了充电时间常数与采样误差的博弈关系。通过推导最小采样时间公式,揭示了精度、速度、源阻抗与内部电容之间的制约关系,并提供了从理论计算到外部驱动电路设计的实战指南,是确保ADC达到LSB精度的关键。

android的专栏 1103

index range scan,index fast full scan,index skip scan发生的条件

index range scan(索引范围扫描):1.对于unique index来说,如果where 条件后面出现了 ,between ...and...的时候,那么就可能执行index range scan,如果where条件后面是=,那么就会执行index unique scan。2.对于none unique index来说 如果where 条件后面出现了=,>,3.对于组合索

落落的专栏 专注SQL调优 性能调优 1万+

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。后面还有另一种方法,上面方法如果行不通,大家可以尝试一下。搜索栏输入:firewall.cpl。找到相关项,右键属性,设置为允许。

qq_42212501的博客 1339

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4930

INDEX FULL SCAN 与 INDEX FAST FULL SCAN

INDEX FULL SCAN 与 INDEX FAST FULL SCAN两个长相差不多,乃是一母同胞,因此既有其共性,也有其个性。两者来说其共性是不用扫描 表而是通过索引就可以直接返回所需要的所有数据。这对提高查询性能而言,无疑是一个难得的数据访问方式之一,因为索引中存储的数据通常 是远小于原始表的数据。下面具体来看看两者之间的异同。   一、何时INDEX FULL SCAN 或 I

DBA Tips 901

【MATLAB】通过计算曲率和曲率变化率来实现对曲线波浪程度

这段代码将计算给定曲线的曲率,并与给定阈值进行比较以检测拐角。函数是MATLAB中一个常用的函数,可以用于计算曲线在每个点处的曲率。它基于一种被称为“local least squares fitting” 的方法,通过拟合每个点周围的一小段曲线来计算曲率。MATLAB中可以使用多种方法实现拐角检测,其中一种方法是基于曲率半径的算法。该算法通过计算曲线上每个点处的曲率半径,找到拐角和弯曲处。是一个可选参数,用于控制拟合曲线的平滑度,取值范围为0到1,越接近1表示曲线越平滑。表示曲线在每个点处的曲率,

Fanjufei的博客 1919

在Oracle 10g有几种查找数据的方法

此文章引用自他人空间--- 在Oracle 10g有几种查找数据的方法,了解这些查找数据的方法,有利于我们读懂执行计划,并通过执行计划来优化我们的ORacle数据库系统。     查找数据主要有一下方式:       1,全表扫描和RowId查找数据       2,通过索引查找数据     1.1 全表扫描(Full Table Scans

goalking019的专栏 1083

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

oracle数据库前缀是什么,关于oracle 10g数据库中用PL/SQL查表前缀有关问题

关于oracle 10g数据库中用PL/SQL查表前缀问题!点击右边红色标题查看本文完整版:关于oracle 10g数据库中用PL/SQL查表前缀问题!表前缀的问题。使用用户名A_USER(dba权限)登陆PL/SQL后,查表为什么还要加上A_USER,不加这个A_USER就会报找不到这个表的错,这个数据库下没有视图和物化视图,也没有database link。查询系统表,也没有这个表。PL/SQ...

weixin_35319943的博客 664

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

oracle11g导入数据到oracle10g,亲测可用

1:已有一个11g的dmp文件:先oracle 11g 导出10g的dmp,再导入到cracle10中;测试成功! 2:直接从11g导出一个10g的dmp,再导入到cracle10中。(被包含在第一种情况里) create tablespace DetailLibrary logging datafile 'd:\tabspace\detailLibrary\

sinat_16741503的博客 6021

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

oracle10g 64位安装包下载,ORACLE 10g 64位下载地址

http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_database.zip http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_client.zip http://download.oracle.com/otn/nt/oracle10...

weixin_40001395的博客 4865

oracle 10g客户端导出11g用户的完整数据

     为了做虚拟机,需要将服务器上的11g的用户的完整数据导出来。而虚拟机上的oracle10g的,直接导出来,无法导入到虚拟机。所以,试着用10g的客户端来导出数据,用命令:exp exoa/*****@exoa1 file=20100526.dmp grants=y full=y执行后,系统提示:  EXP-00008:遇到 ORACLE错误1406  ORA-0140

做一个优秀的产品经理 6594

oracle10g之手工建库的方法

oracle10g之手工建库的方法       一般来说,建库比较方便的工具是使用oracle自带的dbca工具,真的非常方便。但是,有些行业(比如:电信,金融)的生产库却有手工建库的要求,这同样也是考验一个DBA技术功底是否扎实的重要一环。        同时手工建库也是OCM考试的第一关,作为DBA或者准DBA熟练掌握oracle的手工建库技能也是必须的。   一、手工建库前的准备工作

金色阳光-Oracle Linux技术交流 1839

Oracle10g数据导入11g方法

有两种办法: 一、修改导出的dmp版本号,通常使用UltraEdit,将下图的11.01修改为10.02,然后保存再导入即可。 注:使用附件中的dmp版本修改器,相同道理。 二、导出时指定dmp版本,使用如下命令分别进入导入和导出: 导出: 1.创建目录,进入sq...

2273

oracle10g迁移到11g详细步骤,Oracle 10g到11g的数据库迁移实验

用rman来实现,实现跨库跨服务器的迁移10g服务器:192.168.182.133 Oracle 10.2.0.1.0 RHEL 4 32bit11g服务器:服务器192.168.182.131 OEL5.8_32 Oracle 11.2.0.1.0 32bit[oracle@oelr5u8-1 admin]$ uname -aLinux oelr5u8-1.localdomain 2.6.32...

weixin_31953847的博客 1130

查看oracle10g状态,oracle 10g查看数据库状态

用iphone实时查看 oracle服务器状态程序:oracle healthoracle health 一款分析 ORACLE服务器实时状态的程序。和远程ORACLE服务器建立一个数据库会话,还可以提示端口是否正常或连接超时最多同时查看20台服务器。支持语言:英语,俄语。支持数据库版本:-9I -10G -11G本文转自enables 51CTO博客,原...文章科技小先锋2017-11-156...

weixin_36288992的博客 1245

Oracle11g怎么导出10g的库,如何将Oracle11g备份导入到10g

如何将Oracle11g备份导入到10g11g 导出语句:EXPDP USERID='facial/facial@orclas sysdba' schemas=facial directory=DATA_PUMP_DIRdumpfile=aa.dmp logfile=aa.log version=10.2.0.1.0其中,红色文字部分是根据需要改写的地方。例如我的用户facial密码是facial...

weixin_28884213的博客 820

Oracle 10g 的基本配置方法

1.安装Oracle 10 g时,客户端与服务器段都需要安装net manager(Oracle 监听器,其配置方法下面会有介绍),按照Oracle10g_win32_db/Disk1/install路径,打开install,按照默认设置选择Enterprise Editon 点击下一步即可。 2.当提示选择密码的时候,会有四个默认的username,(sys,system,sysman,db

cRyIng_gG的专栏 2347
上一篇: SQL优化之不走索引_走rule很快,CBO很慢
下一篇: SQL优化之不走索引_加hint也不走索引
narutobing
博客等级 码龄18年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值