我有一个DataReader...我在另一个DataReader上使用DataReader的结果作为参数,该a连接到一个具有存储过程类型的命令。就目前而言,它的运行速度很快,但我担心当我的数据库充满信息的时候。我怎么才能加快速度呢?谢谢
发布于 2011-08-31 09:28:01
很可能,您的初始查询将连接到存储过程生成的结果。
发布于 2011-08-31 10:20:18
从本质上讲,您有两次数据库往返,而不是一次。如果您频繁地调用和,这可能是一个性能问题,结果是小的和,您已经优化了查询和存储过程(因此,相对于实际有用的工作,往返开销变得很大)。
进行基准测试,看看这部分功能是否真的是一个瓶颈。如果是,您可以尝试在SQL级别“合并”这两个操作,以便可以一次性执行服务器大小的操作。
我不确定这是否与您的问题有关,但请记住(取决于您的DBMS / ADO.NET提供商),同一连接上的多个活动读取器可能支持也可能不支持。您是否先关闭第一个DbDataReader,然后再打开第二个?如果不是,并且您碰巧切换到不同的DBMS,则可能会出现问题。如果我没记错的话,Oracle (ODP.NET)和DB2支持多个读取器,而MS SQL Server和PostgreSQL (Npgsql)不支持。
https://stackoverflow.com/questions/7251661
复制相似问题