对性能优化的一点思考
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://boyi55.blog.51cto.com/4345/50781 |
说到数据库性能优化,大家都能说上来N条注意事项。可真正运用的时候往往会忽略这方面的内容。当时有时候可能是由于要的比较急,容不得多想。但磨刀不误砍柴工。下面是一个我刚近遇到的一个例子。希望大家可以重视下这方面的内容。 原因:公司要对某系统数据进行审核。于是得到任务,从数据库中提取出某一日的相关数据,及当日及其后第一日,第三日,第五日,第十日等的相应收盘价。 分析:收盘价放在jiaoyi表里。大约有四百万行数据,相关数据不是很多只有几万。中间对应要用到表day_a主要存储交易日信息。主要用到的也就这三个表。 编写代码: 1.我想到用join直接生成结果集。但运行十分钟还没有出来结果。放弃。 2.准备写一张表,然后向里面插入数据。 即先将相关数据写入到表中,再update当日,五日,十日等数据。 但update的时候速度非常慢。我还是一列一列的update,大约一列要三到五分钟,代码简单如下: update a set a.today=b.f0050 from boyi_11001 a,(select symbol,f0050 from jiaoyi where convert(varchar(20,createdate,112)=20071018) b where a.symbol=b.symbol 后来发现createdate这一列为写入时间,要用TDATE列。TDATE为int型。改为如下代码 update a set a.today=b.f0050 from boyi_11001 a,(select symbol,f0050 from jiaoyi where Tdate=20071018) b where a.symbol=b.symbol 结果只用了2秒。当然可能还是TDATE上做过索引有关系。 在这只是想说。优化要体现在平时的每一段代码里。 本文出自 “无名” 博客,请务必保留此出处http://boyi55.blog.51cto.com/4345/50781 本文出自 51CTO.COM技术博客 |



boyi55
博客统计信息
热门文章
最新评论
友情链接