12
返回列表 发新帖
楼主: mget

指定索引查询为什么没全表扫描快

[复制链接]
论坛徽章:
138
19周年集字徽章-19
日期:2020-06-08 08:30:56马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02路虎
日期:2013-11-22 12:26:18问答徽章
日期:2014-05-08 12:15:31
11#
发表于 2007-12-3 10:45 | 只看该作者
巴乔的例子挺眼熟的

使用道具 举报

回复
论坛徽章:
6
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
12#
 楼主| 发表于 2007-12-3 11:06 | 只看该作者
原帖由 blue_prince 于 2007-12-2 23:46 发表
另外,如果不是数据仓库环境的数据库,不建议对表或者索引设置并行度,不会带来什么好处,有可能会更大程度上地影响到性能
SQL> select  /*+ full(disorganized)*/ *
  2  from disorganized
  3  where x between 20000 and 40000
  4  /

20001 rows selected.

Elapsed: 00:00:01.00

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=105 Card=220 Bytes=2
          23300)

   1    0   TABLE ACCESS (FULL) OF 'DISORGANIZED' (Cost=105 Card=220 By
          tes=223300)
Statistics
----------------------------------------------------------
         60  recursive calls
          0  db block gets
       2408  consistent gets
          0  physical reads
          0  redo size
    1805701  bytes sent via SQL*Net to client
      15166  bytes received via SQL*Net from client
       1335  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      20001  rows processed


上面哪个0  physical reads,表明数据都在内存中,如果清理一下内存是否速度不一样呢?

另外
我知道,如果表有碎片可以通过move来整理解决,如果是数据存放的不顺序,那么我问一下,既然是数据分配的问题,那么通过什么办法能让其数据整理规范出来呢?

使用道具 举报

回复
论坛徽章:
151
2014年新春福章
日期:2014-04-17 11:38:13奥运会纪念徽章:皮划艇静水
日期:2012-07-31 15:42:58奥运会纪念徽章:田径
日期:2012-07-10 16:21:10奥运会纪念徽章:跆拳道
日期:2012-06-20 22:07:29奥运会纪念徽章:皮划艇静水
日期:2012-06-16 02:55:21奥运会纪念徽章:曲棍球
日期:2012-06-13 10:09:19蛋疼蛋
日期:2012-05-19 23:20:41迷宫蛋
日期:2012-05-16 17:35:25版主2段
日期:2012-05-15 15:24:11双黄蛋
日期:2012-03-19 19:34:04
13#
发表于 2007-12-3 12:24 | 只看该作者
原帖由 棉花糖ONE 于 2007-12-3 10:45 发表
巴乔的例子挺眼熟的


tom书中的例子,当时看书时记的笔记

使用道具 举报

回复
论坛徽章:
151
2014年新春福章
日期:2014-04-17 11:38:13奥运会纪念徽章:皮划艇静水
日期:2012-07-31 15:42:58奥运会纪念徽章:田径
日期:2012-07-10 16:21:10奥运会纪念徽章:跆拳道
日期:2012-06-20 22:07:29奥运会纪念徽章:皮划艇静水
日期:2012-06-16 02:55:21奥运会纪念徽章:曲棍球
日期:2012-06-13 10:09:19蛋疼蛋
日期:2012-05-19 23:20:41迷宫蛋
日期:2012-05-16 17:35:25版主2段
日期:2012-05-15 15:24:11双黄蛋
日期:2012-03-19 19:34:04
14#
发表于 2007-12-3 12:27 | 只看该作者
原帖由 mget 于 2007-12-3 11:06 发表


上面哪个0  physical reads,表明数据都在内存中,如果清理一下内存是否速度不一样呢?

另外
我知道,如果表有碎片可以通过move来整理解决,如果是数据存放的不顺序,那么我问一下,既然是数据分配的问 ...


清理内存当然速度会更慢了,还得物理读。表的数据你当然可以根据自己的意愿来整理,前提是这样做必要性大不大?毕竟以后INSERT的数据你又无法控制了。又得定期花时间做这个无意义的事。

使用道具 举报

回复
论坛徽章:
6
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
15#
 楼主| 发表于 2007-12-3 20:55 | 只看该作者
原帖由 blue_prince 于 2007-12-3 12:24 发表


tom书中的例子,当时看书时记的笔记


刚翻了一下tom 的书,在索引一章看到了这段话,但是我不明白的是,对于Oracle应该知道有这样的问题,碰到大数据量索引的数据,为什么不考虑排序并合并一下结果再去扫描数据块呢,那怕提供一个HINT的暗示让他这么做也好啦!

使用道具 举报

回复
论坛徽章:
6
生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
16#
 楼主| 发表于 2007-12-3 23:26 | 只看该作者
另外,对于数据不规范是否应该用dbms_stats的如下参数分析呢
Method_Opt       => 'FOR ALL INDEXED COLUMNS SIZE SKEWONLY ',--高度倾斜的索引(某些值的行数不对称)方式

使用道具 举报

回复
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:332014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:112015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
17#
发表于 2007-12-4 02:36 | 只看该作者
I have seen many times a fts query ran faster than index-based query when return less than 10% but more than 1% result compares to whole table rows

使用道具 举报

回复
论坛徽章:
151
2014年新春福章
日期:2014-04-17 11:38:13奥运会纪念徽章:皮划艇静水
日期:2012-07-31 15:42:58奥运会纪念徽章:田径
日期:2012-07-10 16:21:10奥运会纪念徽章:跆拳道
日期:2012-06-20 22:07:29奥运会纪念徽章:皮划艇静水
日期:2012-06-16 02:55:21奥运会纪念徽章:曲棍球
日期:2012-06-13 10:09:19蛋疼蛋
日期:2012-05-19 23:20:41迷宫蛋
日期:2012-05-16 17:35:25版主2段
日期:2012-05-15 15:24:11双黄蛋
日期:2012-03-19 19:34:04
18#
发表于 2007-12-5 09:38 | 只看该作者
原帖由 mget 于 2007-12-3 23:26 发表
另外,对于数据不规范是否应该用dbms_stats的如下参数分析呢
Method_Opt       => 'FOR ALL INDEXED COLUMNS SIZE SKEWONLY ',--高度倾斜的索引(某些值的行数不对称)方式


可以考虑使用这样的分析方法分析

使用道具 举报

回复

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

本版积分规则 发表回复

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