-
需要帮助---关于Oracle数据库使用is null禁用索引问题10
此表有不到一亿的数据,查询字段有索引,当加入OR 'XXX' IS NULL条件时,查询速度超慢,原因是避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引。
我的要求:
1、就是在默认情况下使用此语句能查出数据;
2、避开禁用索引的这个问题;
3、我对数据库只有查询权限;
下面是SQL语句,希望在数据库方面精通的大侠们指点,小弟先谢过了
SELECT T_BS_RK_CZRK.RYID AS 人员ID,
T_BS_RK_CZRK.YRYBH AS 原人员编号,
T_BS_RK_CZRK.ZT AS 状态,
T_BS_RK_CZRK.XM AS 姓名,
T_BS_RK_CZRK.CYM AS 曾用名,
T_BS_RK_CZRK.GMSFHM AS 公民份号码,
T_BS_RK_CZRK.CSDXZ AS 出生地址,
T_BS_RK_CZRK.JGSSX AS 籍省市县_区
FROM dpsiid.T_BS_RK_CZRK
WHERE (T_BS_RK_CZRK.XM = 'XXX' OR 'XXX' IS NULL)
and rownum<=10
问题补充:
shahand这位仁兄说的方法是不行的,这样的话我也能想到。这个语句的要求是在执行的时候即使不给参数也能默认查询出记录。如果改成T_BS_RK_CZRK.XM = 'XXX'的话查询结果为空,将不满足我程序的要求,我的程序无法初始化。2010年1月07日 14:46
4个答案 按时间排序 按投票排序
-
不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。
这好像没啥办法2010年1月13日 10:09
-
只要有这样的条件在,全表扫描就不可避免。
(T_BS_RK_CZRK.XM = 'XXX' OR 'XXX' IS NULL)
把条件改成T_BS_RK_CZRK.XM = 'XXX'能否满足你的要求,反正你也只是取十行。2010年1月11日 10:37
相关推荐
11. 字符串和日期:Oracle数据库中字符串和日期不一定需要双引号,取决于是否包含特殊字符或需要区分大小写。 12. 约束:可以禁用约束,但这可能影响到数据的一致性检查,通常在执行特殊操作时使用。 13. NULL值...
本文将根据提供的文档内容,总结和扩展Oracle数据库的基础知识点,帮助初级程序员更好地理解和掌握Oracle。 #### 一、Oracle 用户管理 1. **创建用户** - 命令格式:`CREATE USER 用户名 IDENTIFIED BY 密码;` ...
本电子文档“Oracle电子文档:数据库约束”深入探讨了这个重要主题,帮助读者理解和掌握如何在Oracle环境中有效地实施和管理数据库约束。 一、数据库约束的类型 1. **非空约束(NOT NULL)**:此约束确保指定列不...
根据提供的文档信息,这里主要涉及的是Oracle数据库的相关知识点,包括了数据库结构、SQL语言使用、安全性、性能优化等方面。下面将对题目中的知识点进行详细解释。 ### 1. SGA内存区域 - **题目**: 以下(a)内存...
14. **约束禁用**:禁用约束并不意味着可以在操作期间保证一切正常,禁用约束可能导致数据一致性问题。 15. **NULL值字段**:将可能包含NULL值的字段放在字段列表末尾可以节省存储空间,因为Oracle会为非NULL值的列...
根据提供的文档信息,我们可以归纳并深入解析Oracle数据库的相关知识点,主要围绕选择题、名词解释、简答题及应用题几个部分展开。以下是对这些知识点的详细阐述: ### 一、选择题解析 1. **实例服务**:选项D ...
### ORACLE数据库对象与用户管理 ...以上是关于Oracle数据库中模式对象的管理和维护的一些基础知识。每一种模式对象都有其独特的用途和管理方法,掌握这些内容对于有效管理Oracle数据库至关重要。
根据提供的文档内容,这里主要涉及Oracle数据库的相关知识点,包括了选择题的形式来考察对Oracle数据库的理解与应用。接下来,我们将详细解析题目中的知识点。 ### A1、以下( )存区不属于SGA。 - **SGA(System ...
Oracle数据库是世界上最流行的关系型数据库管理系统之一,广泛应用于企业级数据存储和管理。本文将详细介绍Oracle数据库的一些常用SQL语句、基本操作以及关键概念。 首先,我们来看几个用于查询数据库对象的基本SQL...
1. 空值处理:Oracle的NULL值在B-Tree索引中不被索引,因此含有NULL值的查询可能不会使用索引。 2. 索引维护:随着数据的增长,索引需要维护,如重建或重新组织,以保持其效率。 3. 索引空间:索引会占用额外的...
Oracle 数据库面试题集锦涵盖了Oracle数据库管理的关键概念和技术,以下是对这些面试题涉及知识点的详细解释: 1. **冷备份与热备份**: - **冷备份**是在数据库关闭状态下进行的,适用于所有模式的数据库,优点是...
- **背景介绍**:本文档是一份关于Oracle数据库的详尽教程,旨在为学习者提供一个全面且深入的学习资源。文档涵盖了从基础概念到高级功能的一系列内容,适合各个层次的学习者。 - **历史背景**:介绍了2009年Oracle...
在IT领域,尤其是在数据库管理中,为大型在线系统创建索引是提高查询性能的关键步骤。本文将详细讨论如何为一个...在Oracle数据库中,这些策略的实施可以帮助我们高效地为千万级别的表创建索引,提升系统的整体效能。
- MySQL不支持直接禁用约束,但在进行大量数据操作前可考虑暂时禁用索引。 - **1.2.2.4.7 删除约束** - 使用`ALTER TABLE 表名 DROP INDEX 索引名;`或`ALTER TABLE 表名 DROP FOREIGN KEY 外键名;` - **1.2.2.5...
这些关键字对于编写有效的SQL语句至关重要,因为它们帮助开发者构建出清晰、逻辑严谨的数据库查询与管理指令。本文将详细介绍Oracle中的各种关键字,并解释它们的基本含义及应用场景。 #### 数据库操作关键字 - **...
- **作用**:帮助优化器评估使用索引访问的成本。 ##### 4. 系统计统计 - **指标**:I/O性能与使用率、CPU性能与使用率。 - **存储位置**:I/O统计信息存储在`X$KCFIO`中,而其他系统统计信息则存储在`aux_stats$`...
以上是关于Oracle数据库中常见的异常代码及其含义和解决方法的详细介绍。在开发过程中,了解这些异常对于提高程序的健壮性和可维护性非常重要。希望本文能帮助开发者更好地理解和处理Oracle中的异常情况。
说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...
### Oracle学习笔记知识点详解 #### 一、SQL概述与Oracle...以上是关于Oracle学习笔记中的主要知识点详细介绍,涵盖了SQL的基础概念、基本操作、高级查询技巧等多个方面,帮助读者全面掌握Oracle数据库的使用方法。