首页学院源码字体下载软件电脑书| 素材图片模版壁纸酷站图标笔刷纹理|小游戏博客QQ表情投票计数器短网址
动态网站制作指南
首页|网络编程|站长之家|网页制作|图形图象|操作系统|冲浪宝典|软件教学|网络办公|手机学院|邮件系统|网络安全|认证考试
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
迅雷 | 电驴 | Win7 | QQ空间 | 输入法 | Ghost | Word | Excel | asp | php | Sql | Dreamweaver | Javascript | css | photoshop | fireworks | Flash



当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

重建索引(rebuild index)与sort


发表日期:2008-2-9 |



  重建索引到底要不要排序?有人说要,因为创建索引时需要排序。有人说不要,因为重建索引的时候可以直接扫描旧的索引来重建成新的索引。让我们来看一下rebuild index到底需不需要排序。
  
  SQL> select name,statistic# from v$statname where name like '%sort%';
  
  NAME                               STATISTIC#
  ---------------------------------------------------------------- ----------
  sorts (memory)                          242
  sorts (disk)                           243
  sorts (rows)                           244
  
  看一下排序操作相关的 stat号
  
  再看一下rebuild index 的执行路径 SQL> eXPlain plan for alter index ind_test_id rebuild;
  
  Explained.
  
  SQL> @?/rdbms/admin/utlxpls
  
  PLAN_TABLE_OUTPUT
  -----------------------------------------------------------------------
   Id  Operation        Name     Rows  Bytes Cost 
  -----------------------------------------------------------------------
    0 ALTER INDEX STATEMENT         17837 71348   11
    1  INDEX BUILD NON UNIQUE IND_TEST_ID            
    2   SORT CREATE INDEX          17837 71348    
    3   INDEX FAST FULL SCAN IND_TEST_ID  17837 71348   11
  -----------------------------------------------------------------------
  执行下rebuild 看看
  
  SQL> select STATISTIC#,value from v$mystat where STATISTIC# in(242,243,244);
  STATISTIC#   VALUE
  ---------- ----------
      242    154
      243     0
      244    242
  
  
  SQL> alter index ind_test_id rebuild;
  
  Index altered.
  
  SQL> select STATISTIC#,value from v$mystat where STATISTIC# in(242,243,244);
  STATISTIC#   VALUE
  ---------- ----------
      242    155
      243     0
      244    242
  可以看出sort(memory)增加了一次
  
  为什么要排序呢?因为rebuild index的时候走的index ffs,而ffs搜索的顺序是根据 leaf block 的物理存储顺序相关而跟键值的逻辑顺序无关(在"index full scan vs fast index full scan"这篇文章中有具体介绍), 所以ffs的结果必须再做一次排序。
  
  此外在rebulid index online的时候走的是full table scan,这时候也是需要排序的,而且排序的次数会比较多, 在测试中发现每次做rebuild online产生4(10g中为13)次sort(memory),可能跟一些递规排序有关系。10g里面重建索引排序又有了一些改变,在10032事件的跟踪文件里面出现“Reopened sort”,目前暂时不知道是什么意思,希望有朋友能就这个问题进行探讨。
关注此文的读者还看过:
·2010-2-9 22:41:41 如何查看什么时间有哪些数据库对象结构被修改过
·2010-2-9 22:41:23 一个存储过程,关于blob
·2010-2-9 22:41:01 Oracle 9i定制数据库模板
·2010-2-9 22:40:51 PL/SQL初学者必读:几十个实用的PL/SQL
·2010-2-9 22:40:28 如何在硬碟建置Linux系统之系统设定
浏览全部Oracle教程的内容 PS笔刷下载 39种不同语言在线翻译
  发表评论
姓 名: 验证码: [ 查看评论 ]
内 容:
教程搜索服务
项目外包信息
·寻找插画师和交互动画师合作系列
·诚意寻求广州交友网开发团队 50
·页面设计
·购物网站程序开发 800元
·有一个网站急需设计 1000元
·DIV+CSS实现多风格界面切换
·一个net项目程序开发
·电力行业小系统开发!
·开发一个减肥网 10000元
·做两个版本的Flash 800元
·企业站外包
·公司网页制作 2000元
·SNS项目页面制作 4K-7K
·迹象网LOGO设计 800元
·电子商务网站制作外包 3500元
·找人开发一个FLASH
·为现有网页改版
·网页制作
·中华诗词网美化设计 3000元
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<Oracle教程>的内容


Delivered by FeedBurner

数据教程文章分类
SQL教程
SQL技巧
SQL安全
SQL文摘
Oracle教程
MySQL教程
Access教程
DB2教程
Sybase教程
站长工具:Google PR查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|公积金贷款计算|购房银行按揭利率计算|实时汇率查询换算|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2010 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
フットサル大会 探偵 プリザーブドフラワー 中国語
SEO対策 コーチ ホームページ作成 アクセサリー 通販
過払い請求 現金化 債務整理 過払い金返還請求