【发布时间】:2009-10-08 15:48:53
【问题描述】:
当大型数据集通过DataReader 从 SQL 服务器查询返回时,我们的数据层遇到了一些问题。当我们使用DataReader 填充业务对象并将它们序列化回客户端时,获取可能需要几分钟(我们正在向用户显示进度:-)),但我们发现有一些非常核心对受影响的表进行锁定,导致其他更新被阻止。
所以我想我有点幼稚的问题是,由于执行查询而取出的锁实际上在什么时候被放弃了?我们似乎发现锁一直存在,直到DataReader 的最后一行被处理并且DataReader 实际上已关闭——这似乎正确吗?关于 DataReader 如何在幕后工作的快速 101 会很棒,因为我一直在努力寻找任何合适的信息。
我应该说我意识到锁定问题是主要问题,但我只关心DataReader 这里的行为。
【问题讨论】:
标签: sql-server locking datareader