saptechnique

Better late than never. - 郭富

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

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

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

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

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

    注:我查询的数据库是SBO的数据库,里面有978个表,每个表多的有200多个字段。这样,收集的语句按平均每个表有150个字段计算,也会达到146700条!

posted on 2009-12-25 11:59  guofu  阅读(1523)  评论(3编辑  收藏  举报