楼主: grassbell

[精华] 关于索引(index)的中度理解,请指正!

[复制链接]
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
21#
发表于 2004-8-31 20:13 | 只看该作者
rfile#   啊  ,文件编号你不要了?

03 40  ---  0000011  01000000
前10bit是 0000001101  ,则 表示数字 13 ,则代表 相关文件编号为 13  啊

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
22#
发表于 2004-8-31 23:24 | 只看该作者
哦!NND,我也想过是文件,但想不通怎么推算?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
21
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:36
23#
 楼主| 发表于 2004-8-31 23:28 | 只看该作者
在oracle文档中Restricted ROWID 和Extended ROWID讲的倍清楚

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
24#
发表于 2004-9-1 09:23 | 只看该作者
看来大家都看了 oracled.doc了

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
25#
发表于 2004-9-1 13:31 | 只看该作者
最初由 grassbell 发布
[B]在oracle文档中Restricted ROWID 和Extended ROWID讲的倍清楚 [/B]


文档只介绍ROWID的结构,没有介绍索引里的ROWID的存储信息的组织格式。

使用道具 举报

回复
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
26#
发表于 2004-9-2 16:39 | 只看该作者
grassbell,你这篇文章比较难看得懂,其中的计算比如:

index leaf note每个entry有5列:
row header(3B)|length(1B)|indexed data value(1024B)|length(1B)|RowID(6B)
这样每个row的大小为:3+1+1024+1+6=1035
db_block_size=8192,
block的默认pct_free=10%,

不知道你依据什么得来的:row header=(3B),|length=(1B)?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
21
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:36
27#
 楼主| 发表于 2004-9-2 16:52 | 只看该作者

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
28#
发表于 2005-3-25 11:01 | 只看该作者
index leaf note每个entry有5列:
row header(3B)|length(1B)|indexed data value(1024B)|length(1B)|RowID(6B)
这样每个row的大小为:3+1+1024+1+6=1035

我的测试中
row#0[8020] flag: -----, lock: 0
col 0; len 2; (2):  c1 02
col 1; len 6; (6):  28 c0 00 1a 00 00
row#1[8008] flag: -----, lock: 0
col 0; len 2; (2):  c1 03
col 1; len 6; (6):  28 c0 00 1a 00 01
按道理说索引纪录占空间 3+1+2+1+6=13

而8020-8008=12  怎么少了一个字节那? 是不是 第二列索引的长度没有计算在其中那?

使用道具 举报

回复
论坛徽章:
92
2011新春纪念徽章
日期:2011-01-25 15:42:33咸鸭蛋
日期:2012-03-19 10:46:00版主1段
日期:2012-05-15 15:24:11奥运会纪念徽章:排球
日期:2012-08-29 07:02:50奥运会纪念徽章:跳水
日期:2012-09-26 06:44:27ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32奥运会纪念徽章:击剑
日期:2012-10-12 07:20:332013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-02-13 15:13:20
29#
发表于 2005-3-25 11:04 | 只看该作者
最初由 grassbell 发布
[B]参考:
http://www.evdbt.com/2004_paper_549.doc [/B]


So, starting from the bottom of the tree-structure, in the leaf nodes, each index entry occupies a slot or row within the database block.  Each row or index entry has 2-3 bytes used for a row header (i.e. flag and lock bytes), and each column within the row has 1 byte for data length, and then the data itself.  So, it may look like this:
•Row header (3 bytes)
•        Column 0 length (1 byte to store length value of “7”)
•        Column 0 data (7 bytes to store a DATE datatype value)
•        Column 1 length (1 byte to store length value of “6”)
•        Column 1 data (6 bytes to store restricted ROWID value)

Row header  可以为2或者3bytes,那什么情况下?

使用道具 举报

回复
论坛徽章:
0
30#
发表于 2005-4-5 17:03 | 只看该作者

Re: 谢谢

最初由 kate_zhang 发布
[B]1. oracle92010 for solaris 和oracle92010 for windowsNT dump出来的trace文件内容都是一样的,type: 0x21=SECOND LEVEL BITMAP BLOCK
  但是oracle81700 for solaris dump出来的trace文件 type: 0x06=trans data ,跟你的结果一致

--  9i版本上如何设置才能得到跟8下面一样的trace输出呢?

2. 使用 set autotrace on就可以了 [/B]

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表