有两个表:一个是类别表Class(不到300条记录),一个是明细表List(几十万条记录);
查询语句如下:
select * from Class,List where Class.Id=List.ClassID and List.Code='0002'
order by year desc
这样一条简单的查询却要10多秒..这种现象是正常的吗/?有什么办法可以提高查询速度.
...全文
25034打赏收藏
一个简单的查询,速度为什么这么慢啊??那位高手指点一下.
有两个表:一个是类别表Class(不到300条记录),一个是明细表List(几十万条记录); 查询语句如下: select * from Class,List where Class.Id=List.ClassID and List.Code='0002' order by year desc 这样一条简单的查询却要10多秒..这种现象是正常的吗/?有什么办法可以提高查询速度.
select * from Class,List where Class.Id=List.ClassID and List.Code='0002'
order by year desc
1.Class.Id应该是主键,有索引
2.List.ClassID外连接Class.Id,一定要建索引
3.List.Code会被经常查询,,一定要建索引
4.order by 会影响一定效率。
三个索引建好,查询不会超过1S。
你用的是oracle8i吗?是的话改成这样子:
select * from List , Class
where List.ClassID = Class.Id
and List.Code='0002'
order by year desc
并且在List.Code上建立索引。
如果是9i以上版本的话,把表分析一下就可以了