• Oracle中使用大小写不敏感的查询和排序

    日期:

    前几天同事问到如何能使oracle中的查询大小写不敏感,为此我特意查阅了一下oracle的官方文档.总结如下: 首先,oracle中默认排序和对比列值时是区分大小写的,这点与mysql可不一样!!! 大小写不敏感的查询 在数据库中可以通过语句:ALTER SESSION SET NLS_COMP =...

  • Oracle中针对中文进行排序

    日期:

    在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RADICAL_M 按中文笔画进行排序:SCHINESE_STROKE_M 而oracle 9i是对中文的排序是默认按拼音排序(...

  • 海量数据表删除方案

    日期:

    当我们的系统进入海量数据时代后,很多过去看起来轻松简单的事情就变得比较复杂。此时,就需要我们采取一些独特的技术和技巧,来避免因此带来的一些问题。 如果一个数据表要进行删除,而数据表对应的数据量很大,对应空间多,此时要进行数据表drop需要面对一...

  • 逆置与Like匹配

    日期:

    Like匹配是SQL语句的一种重要功能。Like结合通配符使用可以实现模糊查询,解决字符串匹配问题。当查询的数据集合比较大的时候,我们常常希望借助索引来加快检索效率。 默认的索引行为 like查询是否会执行索引路径,很大程度上取决于使用的通配符结构。如果我...

  • 数据列not null对索引影响一例

    日期:

    一些容易忽视的因素,往往是我们进行优化的方向。 Oracle数据列是有not null属性的,标志该列是否允许出现空值。如果插入、修改出现空值的情况,Oracle会拒绝当前的DML操作。 本质上看,数据列的not null是一种检验约束,其效果的时点是在数据列发生变化的时...

  • 搜索条件设置为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中,可以...