查询优化

nbgcqlk 2014-10-20 04:35:53
有张订单状态表

OrderCode 和STS(0,4,9三个固定值)

现在经常会跟据STS=0来进行查询订单....在STS上加索引也不行,都还是全表扫描...

请问大家有没有好的办法,提高一下查询的速度,怎么加索引?
...全文
114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bw555 2014-10-21
  • 打赏
  • 举报
回复
可以利用hint强制查询走某个索引,可以试下查询效率
nbgcqlk 2014-10-21
  • 打赏
  • 举报
回复
引用 6 楼 bw555 的回复:
常用的数据只有一二十条,可以把这些数据单独建表存出来 在原表创建触发器,使这个表与原表进行同步
嗯,这是个办法......除了这个办法之外,比如有什么办法加个什么索引能提高查询速度?
nbgcqlk 2014-10-21
  • 打赏
  • 举报
回复
引用 4 楼 nbgcqlk 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] STS=0 的记录行数所占的比例是不是很高?
表中大概有一百万条记录,基本上状态为0的行数在一二十条...其它的都是状态为4或者9的[/quote] select * from statusinfo where sts=0 ordert by ordercode asc;只有一个查询条件...估计重复值太多,建索引无效.
bw555 2014-10-20
  • 打赏
  • 举报
回复
常用的数据只有一二十条,可以把这些数据单独建表存出来 在原表创建触发器,使这个表与原表进行同步
卖水果的net 2014-10-20
  • 打赏
  • 举报
回复
引用 4 楼 nbgcqlk 的回复:
[quote=引用 2 楼 wmxcn2000 的回复:] STS=0 的记录行数所占的比例是不是很高?
表中大概有一百万条记录,基本上状态为0的行数在一二十条...其它的都是状态为4或者9的[/quote] 可能是这样的情况: 1.你的查询语句有好几个查询条件 ,不妨都贴上来。 2.建立索引后,收集一下统计信息。
nbgcqlk 2014-10-20
  • 打赏
  • 举报
回复
引用 2 楼 wmxcn2000 的回复:
STS=0 的记录行数所占的比例是不是很高?
表中大概有一百万条记录,基本上状态为0的行数在一二十条...其它的都是状态为4或者9的
nbgcqlk 2014-10-20
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
[quote=引用 楼主 nbgcqlk 的回复:] 有张订单状态表 OrderCode 和STS(0,4,9三个固定值) 现在经常会跟据STS=0来进行查询订单....在STS上加索引也不行,都还是全表扫描... 请问大家有没有好的办法,提高一下查询的速度,怎么加索引?
如果不会频繁的更改列值,可以尝试使用位图索引[/quote] 试过,没效果
卖水果的net 2014-10-20
  • 打赏
  • 举报
回复
STS=0 的记录行数所占的比例是不是很高?
CT_LXL 2014-10-20
  • 打赏
  • 举报
回复
引用 楼主 nbgcqlk 的回复:
有张订单状态表 OrderCode 和STS(0,4,9三个固定值) 现在经常会跟据STS=0来进行查询订单....在STS上加索引也不行,都还是全表扫描... 请问大家有没有好的办法,提高一下查询的速度,怎么加索引?
如果不会频繁的更改列值,可以尝试使用位图索引

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧