jdbc执行的性能问题

来源:互联网 发布:json encode 编辑:程序博客网 时间:2024/05/25 18:11

我有一个用户表,大概80万条数据,先查询出来放到临时表中,然后有个歌曲表,也大概有40万条数据,然后在把歌曲表和临时表关联起来查询,这时执行的数据就很慢了,我用的数据库是sybase,在查询的时候我先算出查询结果集的总数,然后通过循环一次值查询1000条数据。但是查询还是很慢,请问各位有什么好的办法帮我优化一下!提高查询的速度,请大家帮帮忙?谢谢!

1、一定要用数据库连接池,无论什么方法什么形式。
2、sybase不熟悉,不过如果有“视图”的话,先用它把数据过滤一把会加快很多
3、还是sybase不熟悉,不知道你说的“通过循环一次值查询1000条数据”什么意思。尽量通过数据库提供的方法读取“一部分”数据,比如mysql就用top关键字,oracle用sql套sql的方法
4、优化sql的写法,把能过滤很多条件的条件语句放在最后写,比如性别=男这样能剔除一大半的条件放在where的最后
5、from后面的表的顺序也很重要,要把数据表写在master表之前,同样的,要把数据多的表放在数据少的表的前面
(oracle是从后向前面解析sql文,所以4,5条不一定适合别的数据库)
上面是我能想到的,其他的google一下别的方法吧,还有很多的小细节可以提高速度。

建了合适的索引了没?看看执行计划有没有全表扫描?缓冲区有没有设置的比较大?
对于sql的优化,我估计起不了很大的作用,因为我只查询用户表(大概80万数据)速度还是很快的,但是当我关连歌曲表(大概40万的数据)查询,速度就慢了。主要是在我的代码中有这样一个循环:我用户表有80万条数据,我循环800次,每次查询1000条数据,然后把这1000条数据保存到数据库中,因此,这样就影响到了查询的速度了,这个地方有没有好的方法处理,比如:我不每循环一次保存1000条数据,而是我全部查出来,然后在一次性保存到数据库中。不知道sybase 数据库 是否支持表分区 如果支持可以考虑
从题目上来看,似乎有这样的假定。甲和乙都不知道对方的报价。而且甲和乙都明白航空公司的赔偿规则。
否则没法继续讨论下去了。
我在12楼画的图有点错位,把这个图拓展到98*98个格子。横纵格子都是2到100。
当乙选择某个策略时,甲的最优解所在的策略是变动的。
从数字上看,甲不存在某个策略,这个策略比其他所有的策略都强。
假设乙随机选择策略。
那甲选择报价x,则甲拿到的钱的期望是 ((100-x)*(x+2)+x+(x-2)(x-3)/2)/100,
其中,(100-x)*(x+2)代表甲的报价低于乙的数目乘以甲的收益,+x代表报价相等的部分,+(x-2)(x-3)/2代表甲的报价高于乙的部分,也就是0..,0,0,1,2,3直到x-3的求和。
最近连续几天,我的站点每天早上访问时都无法正常响应,只有到服务器上手动重启tomcat才能正常访问,每天如此。查了几天的日志,发现每天的0:20分左右tomcat都会莫名其妙地报上这样的异常,之后就一直挂着。不能确定是否是这个异常导致tomcat挂起的。服务器在单位机房,应用程序即需要连接本地mysql又需要连公司的Oracle服务器,不能确定公司每晚0:20左右有没有断网。
总之寻求解决办法,不要让我每天收工重启Tomcat即可。
除了Tomcat,换用其他WEB服务器我是否可以解决这个问题。我的应用时Flex+Hibernate+Struts的。
呵呵,数据库的连接,有一个TimeOut的参数,比如8个小时。
如果这个链接一直没有任何操作,数据库会断掉连接的。
所以,我们的连接池必须处理这个问题,有2个方法
1 定时ping一下,也就是运行一下sql语句
2 让连接池在返回连接前,尝试一下sql语句,如果异常则重新分配一个
具体的,自己看连接池的配置参数吧。
寻求解决办法,需要具体做法,楼上2楼给的参数已经加上去了,因为无法立刻得出结论,如果经过一段时间运行正常,立刻给分,希望更多的朋友提出宝贵的解决方案
端口被重置。
也就是你自己的机器的某个端口或者是你面向的某个服务器的端口被重置了。
做好异常处理,进行端口重连。
期待楼主,解决了贴出解决方法,同样学习中!!我这使用的C3PO连接池。。有些时候,报这错误,不过不影响显示,服务器也没有死,一直没有解决,看资料说是,web 程序的服务器端,在链接数据库的时候被同一个“对等点”重置了!没太懂起。。
有没有什么可操作性的方法啊,讲问题产生的原因不够啊,解决问题的方法再多说点
来源:足球论坛


原创粉丝点击