动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.你的INTERNAL帐号密码忘记了怎么.
.oracle9i中list partitioning方法.
.Oracle经验集锦(1).
.一个病入膏肓的数据库优化.
.中软linux券商管理办公系统解决方.
.带你深入了解管理Oracle实例的相.
.用排序哈希簇来提升ORACLE查询速.
.说一说如何配置Oracle的MTS Part1.
.精彩arm linux演义.
.Oracle数据库如何查询记录时给记.
.ORACLE SQL性能优化系列(九).
.ORACLE SQL性能优化系列 (二).
.深入讲解调整Oracle SGA大小的解.
.Oracle9i 性能调整与优化(1).
.Oracle与SQL Server在企业应.
.在Oracle中添加用户 赋权 修改密.
.在Redhat Enterprise server 3上.
.Oracle数据库删除两表中相同数据.
.回滚段.
.Oracle弱智900问(1).

索引与Null值对于Hints及执行计划的影响

发表日期:2008-2-9 |


由于B*Tree索引不存储Null值,所以在索引字段答应为空的情况下,某些Oracle查询不会使用索引. 很多时候,我们看似可以使用全索引扫描(Full Index Scan)的情况,可能Oracle就会因为Null值的存在而放弃索引. 在此情况下即使使用Hints,Oracle也不会使用索引,其根本原因就是因为Null值的存在. 我们看以下测试. 在username字段为Not Null时,Index Hints可以生效. SQL> create table t as select username,passWord from dba_users;Table created.SQL> desc t
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                  NOT NULL VARCHAR2(30)
 PASSWORD                                           VARCHAR2(30)SQL> create index i_t on t(username);Index created.SQL> set autotrace trace eXPlain
SQL> select * from t where username='EYGLE';Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873--------------------------------------------------------------------------
Id  Operation         Name Rows  Bytes Cost (%CPU) Time    
--------------------------------------------------------------------------
   0 SELECT STATEMENT             1     34      2   (0) 00:00:01
*  1   TABLE Access FULL T         1     34      2   (0) 00:00:01
--------------------------------------------------------------------------Predicate Information (identified by operation id):
---------------------------------------------------   1 - filter("USERNAME"='EYGLE')Note
-----
   - dynamic sampling used for this statementSQL> set linesize 120
SQL> select /*+ index(t,i_t) */ * from t where username='EYGLE';Execution Plan
----------------------------------------------------------
Plan hash value: 2928007915------------------------------------------------------------------------------------
Id  Operation                   Name Rows  Bytes Cost (%CPU) Time    
------------------------------------------------------------------------------------
   0 SELECT STATEMENT                       1     34      2   (0) 00:00:01
   1   TABLE ACCESS BY INDEX ROWID T         1     34      2   (0) 00:00:01
*  2    INDEX RANGE SCAN          I_T       1             1   (0) 00:00:01
------------------------------------------------------------------------------------Predicate Information (identified by operation id):
---------------------------------------------------   2 - access("USERNAME"='EYGLE')Note
-----
   - dynamic sampling used for this statement
当索引字段答应为Null时,Oracle放弃此索引: SQL> alter table t modify (username null);Table altered.SQL> select /*+ index(t,i_t) */ * from t;Execution Plan
----------------------------------------------------------
Plan hash value: 1601196873--------------------------------------------------------------------------
Id  Operation         Name Rows  Bytes Cost (%CPU) Time    
--------------------------------------------------------------------------
   0 SELECT STATEMENT            27    918      2   (0) 00:00:01
   1   TABLE ACCESS FULL T        27    918      2   (0) 00:00:01
--------------------------------------------------------------------------Note
-----
   - dynamic sampling used for this statement  当该字段为Not Null时,索引可以被强制使用: SQL> alter table t modify (username not null);Table altered.SQL> select /*+ index(t,i_t) */ * from t;Execution Plan
----------------------------------------------------------
Plan hash value: 3593393735------------------------------------------------------------------------------------
Id  Operation                   Name Rows  Bytes Cost (%CPU) Time    
------------------------------------------------------------------------------------
   0 SELECT STATEMENT                      27    918      2   (0) 00:00:01
   1   TABLE ACCESS BY INDEX ROWID T        27    918      2   (0) 00:00:01
   2    INDEX FULL SCAN           I_T      27             1   (0) 00:00:01
------------------------------------------------------------------------------------Note
-----
   - dynamic sampling used for this statement
  这就是Null值对于索引及查询的影响. 原文地址:http://www.eygle.com/archives/2006/02/index_null_hints_explain.Html
上一篇:针对Oracle数据库的优化器详细介绍 人气:834
下一篇:基于主键和唯一约束的显示索引控制 人气:1094
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成