您的位置:首页 > 数据库

C#实现SQL全库检索数据-比较使用DataReader与DataAdapter+Datatable效率,差距惊人!

2009-12-25 11:59 926 查看
为了项目的需要,往往需要知道一个值在哪几个表里出现过,进而分析这个程序的执行过程和处理逻辑。我们通常会使用SQL事件跟踪器。这个工具也没少用,但是在使用时经常对所跟踪到的事件太多而感到应接不暇。

于是,我做了一个给定一个值,可以查询在任意表中任意字段与此值相等的语句,指定对应的表和字段,这样的一个SQL全库检索工具。

在第一版中,我使用的是DataAdapter+Datatable,此时查询时耗时严重,从早上开始计算直到中午也只是在收集语句的阶段!

即使我换更高配置的服务器来执行,提高三至五倍的速度,也几乎无法忍受啊。于是重新修改代码,采用DataReader替换之前的DataAdapter+Datatable。当之前的那个程序还在执行的时候,这次居然只用了1分钟左右就完成了收集语句的过程。

接下来验证语句的过程,也只花费了不到10分钟的时间!

注:我查询的数据库是SBO的数据库,里面有978个表,每个表多的有200多个字段。这样,收集的语句按平均每个表有150个字段计算,也会达到146700条!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: