• 搜索条件设置为Is Null一定不走索引吗?

    日期:

    在Oralce的搜索中,如果where条件句后使用了is null搜索条件,那么即使该列上使用了索引,Oracle也不会进行索引搜索。那么,这条规则一定正确吗? 构建实验环境 准备数据环境,构建数据表。 SQL create table t as select object_id,object_name,owner from d...

  • Where与Having

    日期:

    最近做实验中使用到了group和having,想到where和having之间存在一些共性特点,都是对于结果集合的筛选处理。那么,在获取结果集合相同的情况下,两者的执行计划有什么差异呢? 试验一下: 首先,准备实验环境,还是选择sys下的dba_objects视图作为数据来源,...

  • 纠结的外键

    日期:

    外键是我们经常使用的手段,用于维护父子表之间的完整性关系。但是实际中,我们选择作出外键的抉择有时是比较纠结的。 数据库的一个重要功能就是维护数据的完整性。关系数据库使用数据表作为数据存储的基本结构,通过表之间的连接构造复杂的实体关系模型结构...

  • 巧用函数索引解决数据倾斜列查询

    日期:

    首先声明:本方法是受到dbsnake的指导,再次感谢指点。 通常来说,索引选取的数据列最好为分散度高、选择性好。从索引树结构的角度看,列值都是分布在叶节点位置。这样,通过树结构搜索得到的叶节点数量效率比较高。 实际中,我们常常遇到数据列值倾斜的情况...

  • 关于索引的一点知识

    日期:

    索引可能是我们对于数据库性能优化最常用的一个手段。这里简单说下里面的几个方面的问题。 1、索引是一个对象; 索引是一个独立的数据库对象,和数据表table一样。在Oracle中,数据库对象object都是通过段segment结构表示。我们在数据字典dba_segment中,可以...

  • Clustering Factor——索引的成本指标

    日期:

    使用索引是我们面对海量数据搜索是一种常用的手段。通过有效的索引访问,可以使我们更快的访问到需要的数据,减少物理、逻辑IO,从而提高系统性能。在CBO时代,Oracle对于提交SQL的执行路径是有所选择的。一个select是走Index还是走Full Table Scan,或者别的...

  • linux下启动oracle

    日期:

    启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。 一、如何启动数据库实例 1.进入到sqlplus启动实例[oracle@redhat ~]$ su - oracle --“切换到oracle用户”Password:[oracle@redhat ~]$ lsnrctl start --“打开监听”LSNRCTL for Linu...

  • Oracle体系结构及专用术语

    日期:

    Oracle instacne:Oracle实例 SGA:系统全局区(system global area)-实例基本的基本部件之一,多个服务器进程共用,9i之后是动态的 shared pool:共享池 -包括library cache以及dictionary cache library cache:库高速缓存 -存放SQL语句 dictionary cache...

  • Oracle row_number() over()解析函数高效实现分页

    日期:

    create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TITLE VARCHAR2(30), N_COUNT NUMBER ) ; prompt Disabling triggers for T_NEWS... alter table T_NEWS disable all triggers; prompt Loading T_NEWS... insert into T_NEWS (ID, N_TYPE, N_TITLE...

  • Oracle 优化器 CBO与RULE的区别

    日期:

    1、基于规则的优化方式(Rule-Based Optimization,简称为RBO) 优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则,对数据是不敏感。它只借助少量的信息来决定一个sql语句的执行计划,包括: 1)sql语句本身 2)sql中涉及到的table、view、index等的...