免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1631 | 回复: 4
打印 上一主题 下一主题

创建索引问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-01 11:59 |只看该作者 |倒序浏览
现在有两个表test1, test2
结构一样,如下:
两个字段: number int, string varchar2(20);

现在我在两个表中重复插入了大量数据,大约1百多万条吧.
现在想比较下在有索引和无索引的条件下查询速度的区别.

在没有索引条件下执行的SQL语句为: select * from test1;
建立索引的语句为: create index ix_int on test1(number);
下面我该如何来根据索引查询呢?? 还有这样的表结构有比较建立索引吗?
如果没有必要,请问这个表结构要如何修改才能让建立的索引起效果呢?

论坛徽章:
0
2 [报告]
发表于 2008-12-01 13:07 |只看该作者
建立2个相同的表,然后一个有索引,一个没有索引
对2个表都做一下分析
使用相同的SQL语句,对这两个表进行查询,看执行时间。

论坛徽章:
0
3 [报告]
发表于 2008-12-01 14:26 |只看该作者
原帖由 blue_stone 于 2008-12-1 13:07 发表
建立2个相同的表,然后一个有索引,一个没有索引
对2个表都做一下分析
使用相同的SQL语句,对这两个表进行查询,看执行时间。


谢谢回复! 你这里说的对2个表都做一下分析是什么意思?

使用相同的SQL语句,对两个表进行查询??那这样的话创建这个索引有什么用呢?
可能是我还没明白你的意思,能否讲明白点.

论坛徽章:
0
4 [报告]
发表于 2008-12-01 21:07 |只看该作者
原帖由 hr_it 于 2008-12-1 14:26 发表


谢谢回复! 你这里说的对2个表都做一下分析是什么意思?

使用相同的SQL语句,对两个表进行查询??那这样的话创建这个索引有什么用呢?
可能是我还没明白你的意思,能否讲明白点.


对2个表进行分析, 就是让oracle收集一下这两个表的统计信息, 比如表有多少行,个个列的最大值最小值是多少等等.  这些信息可以帮助oracle选择最适合的执行计划,
使用exec dbms_stats.gather_table_stats('用户名', '表名');来对某个表进行表分析, 可参考:
http://bbs.chinaunix.net/archiver/?tid-505774.html

Oracle会根据表有没有索引, 需要选择的数据量等信息来确定是否使用索引来完成查询.

自己做一下测试或许会有很多收获.

论坛徽章:
0
5 [报告]
发表于 2008-12-03 13:41 |只看该作者
建立索引后select count(*) 的时候会通过统计你的索引数量,因为索引的列数少于表的列数,所以要快一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP