楼主: biti_rainy

[精华] 跳跃式索引扫描的结构猜想

[复制链接]
论坛徽章:
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
11#
 楼主| 发表于 2003-3-4 13:57 | 只看该作者

是的

最初由 hanson 发布
[B]问个低级的东西:
跳跃式索引是不是9i里才有?8i里没有? [/B]


yes

使用道具 举报

回复
论坛徽章:
13
生肖徽章2007版:虎
日期:2009-03-14 11:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34灰彻蛋
日期:2013-03-16 23:13:202013年新春福章
日期:2013-02-25 14:51:24紫蛋头
日期:2013-01-23 13:48:22双黄蛋
日期:2011-07-30 15:08:322010年世界杯参赛球队:德国
日期:2010-05-11 21:28:202010年世界杯参赛球队:意大利
日期:2010-01-26 11:28:16生肖徽章2007版:兔
日期:2009-05-13 09:35:07生肖徽章2007版:鸡
日期:2009-04-08 19:14:38
12#
发表于 2003-3-4 14:47 | 只看该作者
1,这种索引仍为B树索引.
2.这种非匹配索引扫描必须扫描索引叶级的所有行.但可以使用指针,而不用降序该索引.(扫描的次数还依赖于该字段上的维护信息)
3,如果select的列在索引中,则将发挥该用法的最大优势.

--菜鸟的话,不听也罢

使用道具 举报

回复
论坛徽章:
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
13#
 楼主| 发表于 2003-3-4 15:36 | 只看该作者

想问一下

最初由 shao 发布
[B]1,这种索引仍为B树索引.
2.这种非匹配索引扫描必须扫描索引叶级的所有行.但可以使用指针,而不用降序该索引.(扫描的次数还依赖于该字段上的维护信息)
3,如果select的列在索引中,则将发挥该用法的最大优势.

--菜鸟的话,不听也罢 [/B]


我看你的描述怎么感觉象  index   fast  full scan ?

如果"这种非匹配索引扫描必须扫描索引叶级的所有行"
还需要9i做什么?8i 里面 index   fast  full scan 也一样可以实现这样的功能吧,还要 skip  scan 做什么呢?

请 解惑,谢谢

使用道具 举报

回复
论坛徽章:
13
生肖徽章2007版:虎
日期:2009-03-14 11:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34灰彻蛋
日期:2013-03-16 23:13:202013年新春福章
日期:2013-02-25 14:51:24紫蛋头
日期:2013-01-23 13:48:22双黄蛋
日期:2011-07-30 15:08:322010年世界杯参赛球队:德国
日期:2010-05-11 21:28:202010年世界杯参赛球队:意大利
日期:2010-01-26 11:28:16生肖徽章2007版:兔
日期:2009-05-13 09:35:07生肖徽章2007版:鸡
日期:2009-04-08 19:14:38
14#
发表于 2003-3-5 09:59 | 只看该作者
入点唯一时,是有范围的连续扫描.
入点较少时,是跳跃式的有范围的连续扫描.
入点较多且分布随机时,要么放弃索引,要么选择index full scan.
(判别原则基本是看select列在不在索引中,和维护信息的正确性.)

个人的一些小看发,说错不要打我.

使用道具 举报

回复
论坛徽章:
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
15#
 楼主| 发表于 2003-3-5 10:16 | 只看该作者

hehe

最初由 shao 发布
[B]入点唯一时,是有范围的连续扫描.
入点较少时,是跳跃式的有范围的连续扫描.
入点较多且分布随机时,要么放弃索引,要么选择index full scan.
(判别原则基本是看select列在不在索引中,和维护信息的正确性.)

个人的一些小看发,说错不要打我. [/B]


你这次跟你上次描述的已经有差异了
不过,你的这个说法,跟我说的是一致的呀

http://www.*****.org/bin/ut/topi ... p;bpg=1&age=100

被屏蔽  的为  C N O U G  (china orcle  user  group 的缩写)
这里有 和 CP 的探讨
他在做测试
根据 演示结果可以看出一些东西来

可进一步探讨 索引的结构 和查询 方式



btw:  想知道 你的 探究方式


CP :


  1* SELECT OWNER,OBJECT_ID FROM YAFENG WHERE object_name='DBA_TABLES'
16:44:01 scott@ORA9> /

OWNER OBJECT_ID
------------------------------------------------------------ ----------
PUBLIC 1813
SYS 1812

Elapsed: 00:00:00.15

Execution Plan
----------------------------------------------------------
   0 SELECT STATEMENT Optimizer=CHOOSE (Cost=11 Card=1 Bytes=22)
   1 0 TABLE ACCESS (BY INDEX ROWID) OF 'YAFENG' (Cost=11 Card=1 Bytes=22)
   2 1 INDEX (SKIP SCAN) OF 'IDX_YAFENG' (NON-UNIQUE) (Cost=10 Card=1)

         12 consistent gets
16:44:02 scott@ORA9> select distinct owner from yafeng;

OWNER
------------------------------------------------------------
BIDDER
EACHPAY
OUTLN
PERFSTAT
PUBLIC
SCOTT
SYS
SYSTEM

8 rows selected.
12 consistent gets:

root block -> branch block(begin with bidder:no object_name like DBA_tables) ---one block gets
   -> Branch block(begin with eachpay:no object_name like dba_tables) ---one block gets
   -> Branch block(begin with outln:no object_name like dba_tables) --one block gets
   -> Branch block(begin with perfstat:no object_name like dba_tables) ---one block gets
   -> Branch block(begin with public:find one object named dba_tabes)->rowid-row (2 block gets)
   -> Branch block(begin with scott:no object_name like dba_tables) --one block gets
   -> Branch block(begin with system:no object_name like dba_tables) --one block gets
   -> Branch block(begin with sys:no object_name like dba_tables) ->rowid-row(2 block gets)

使用道具 举报

回复
论坛徽章:
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
16#
 楼主| 发表于 2003-3-5 10:28 | 只看该作者

入点较少时,是跳跃式的有范围的连续扫描.

注意上面这句话 和 下面这句话的描述

相同父节点下   的  子节点   之间具有联系,也许是 顺序的"地址指针"

我认为这个结构是 skip  index  scan  的基础

使用道具 举报

回复
论坛徽章:
13
生肖徽章2007版:虎
日期:2009-03-14 11:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34灰彻蛋
日期:2013-03-16 23:13:202013年新春福章
日期:2013-02-25 14:51:24紫蛋头
日期:2013-01-23 13:48:22双黄蛋
日期:2011-07-30 15:08:322010年世界杯参赛球队:德国
日期:2010-05-11 21:28:202010年世界杯参赛球队:意大利
日期:2010-01-26 11:28:16生肖徽章2007版:兔
日期:2009-05-13 09:35:07生肖徽章2007版:鸡
日期:2009-04-08 19:14:38
17#
发表于 2003-3-5 17:10 | 只看该作者

转帖一个洋P

in Oracle9i
Index Skip Scanning is "an intrinsic function of the cost-based
optimizer... It will only be of significant benefit where the leading
column of the index is of fairly low cardinality, and whether the
optimizer ever uses it depends entirely on the nature of the SQL
statments thrown at the database."

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2003-4-6 14:19 | 只看该作者

关于一个set autotrace on的问题

internal /oracle
system/manager
用户都用了去做下面的操作,但是
SQL> set autotrace on;
Cannot SET AUTOTRACE
请问为什么??
是不是还要有什么设置吗?

sql_trace=true( 跟踪信息放到文件中,应该是在udump目录里,是吗)和 set autotrace on(跟踪信息在屏幕中立刻显示出来)是一回事吗?

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
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
19#
发表于 2004-7-8 13:04 | 只看该作者
据说要顶一下才能在深入区看到

使用道具 举报

回复
论坛徽章:
42
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:022011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:56管理团队成员
日期:2011-05-07 01:45:08ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23
20#
发表于 2004-7-8 23:53 | 只看该作者
如果说将索引压缩一下来解压Skip Scan可能会好一些,在第一个列的Selective不高的情况下,会使用Index Skip Scan。

使用道具 举报

回复

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

本版积分规则 发表回复

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