sql优化 - Oracle / 基础和管理
select count(1) from FX_RETURNBOOKCHECKLIST fxreturnbo0_ where fxreturnbo0_.BOOKID='164 ' AND fxreturnbo0_.RETURNID='00025.S0000001'
上面一个简单的SQL,执行时间2.6秒,去掉任意一条件后,如下:
select count(1) from FX_RETURNBOOKCHECKLIST fxreturnbo0_ where fxreturnbo0_.BOOKID='164 '
这个执行时间0.015秒。
注:上面的SQL语句是hibernate自动生成的。
再看看这样一个SQL,自己写的。查询结果与第一句SQL完全一样。但查询时间相关甚远。
select * from fx_returnbookchecklist where returnid='00025.S0000001' and bookid='164'
这个只需0.031秒。
请大家帮忙分析这是什么原因导致的??是不是hibernate?
returnbookchecklist 表有多少记录?
满足条件returnid='00025.S0000001' and bookid='164'有多少记录?
returnbookchecklist有数据70多万,满足条件returnid='00025.S0000001' and bookid='164'有1条记录,这个问题已解决,空格造成,但是新的一个问题又出来了。
select b.returnid
from fx_returnbookchecklist b
where b.returnid='00025.S0000001'
这样一个SQL查询速度0.047秒,
select b.scale
from fx_returnbookchecklist b
where b.returnid='00025.S0000001'
现在只是查了相同表中另一个字段scale执行时间2.578秒,本以为是索引的原因,又做了一个测试取满足条件行的主键值
select b.id
from fx_returnbookchecklist b
where b.returnid='00025.S0000001'
同样执行了2.641秒。只有一个字段它的查询速读很快。其他都很慢。
select b.scale,b.netamo
相关问答:
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......
我在开发的这个应用并发性比较高,oracle更新数据时候如何处理并发处理呢?各位大侠发表好的观点啊,在线等待!
oracle数据更新时,会自动默认行锁定,楼主不要操心,Oracle对并行处理已经很成熟了
引用
oracle ......
现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......