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

针对大量数据表的全库检索需求,本文分享了一种优化方案。通过从DataAdapter+Datatable切换到DataReader,显著提升了检索效率,将耗时从数小时缩短至十几分钟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值