日期:2014-05-18  浏览次数:20472 次

散分兼讨论:大量数据更新的问题
最近在做一个C#程序,目的是统计站点目录下所有文件被访问到的次数,从而决定哪些文件要删除(有很多文件可能从来没被访问过)。

用程序分析IIS日志。站点每天的访问量有几十万次,三个月的日志文件都好几个G了。

做法是分析IIS日志中每一条请求的文件名,更新到数据库里该文件的访问次数。(提前把文件列表用递归的方式得到了,有几十万个文件)

只分析日志的话,效率还是可以的。但加上更新DB,时间的开销就太大了,几个G的日志文件,跑一遍差不多要5个小时。

数据表已经做了索引。

由于是后台程序,DB连接是一直开着直到数据全部更新完毕才关掉的,这样已经节省了重新连接DB的时间。

执行操作的Command对象也做了参数化处理,不用每次都发送一个新的SQL命令。

很想知道,还有没有什么好的方法能提高一点效率。或许这个思路从根本上就有问题?

------解决方案--------------------
后台程序就不用一直连数据库了,直接将你统计的数据更新到xml文档或excel或记事本也可以

最后统一由此文件更新到数据库
------解决方案--------------------
设置好数据的隔离级别

索引

分区表

优化语句


升级硬件