刷新结果集
Flush result set
我们有一个存储过程 returns 3 个不同的结果集,前两个大约需要。 1 秒,而第三个需要 20 秒以上。
当 运行 SSMS 中的 SP 在约 20 秒的初始延迟后立即显示所有 3 个结果集。
同样,从 .NET 调用时,每次调用 IDataReader#NextResult
之间没有延迟,但第一次调用 IDataReader#Read
.
时会有延迟
如果我们将 SP 修改为在前 2 个结果集之后停止,那么数据会立即可用。
我们想立即开始处理前 2 组的结果,而不是等待所有 3 个结果集都准备好。
有没有办法强制 SQL 刷新前 2 个结果集以便立即使用它们?
..对于 ssms..
--resultsets after 5secs
select 1;
select 2;
waitfor delay '00:00:05'; -- simulate a long running query
select 3;
go
--two resultsets and the last after 5secs
select 1;
select 2;
raiserror('', 0, 0) with nowait; -- flush results
waitfor delay '00:00:05'; -- simulate a long running query
select 3;
我们有一个存储过程 returns 3 个不同的结果集,前两个大约需要。 1 秒,而第三个需要 20 秒以上。
当 运行 SSMS 中的 SP 在约 20 秒的初始延迟后立即显示所有 3 个结果集。
同样,从 .NET 调用时,每次调用 IDataReader#NextResult
之间没有延迟,但第一次调用 IDataReader#Read
.
如果我们将 SP 修改为在前 2 个结果集之后停止,那么数据会立即可用。
我们想立即开始处理前 2 组的结果,而不是等待所有 3 个结果集都准备好。
有没有办法强制 SQL 刷新前 2 个结果集以便立即使用它们?
..对于 ssms..
--resultsets after 5secs
select 1;
select 2;
waitfor delay '00:00:05'; -- simulate a long running query
select 3;
go
--two resultsets and the last after 5secs
select 1;
select 2;
raiserror('', 0, 0) with nowait; -- flush results
waitfor delay '00:00:05'; -- simulate a long running query
select 3;