如标题中所述。我想知道SQL Server可以部分执行像oracle这样的SQL吗? means server wait client to process the data in last network packet and then fill next packet
我注意到当您在SQLServer Management Studio中执行select语句时,您可以在语句仍在运行时立即获取第一行。但我不能在ADO组件中得到这个。我能想到的只是使用服务器端游标并使用非键集类型游标。但ADO使用 sp_cursoropen和sp_cursorfetch 来执行此操作。不使用像sql * plus这样的缓存大小。它主要是客户端行为,而不像SSMS中的现象。我想知道为什么。
答案 0 :(得分:1)
您指的是SET ARRAYSIZE
,SQL*Plus command吗?
如果是这样,类似的设置可能是SET ROWCOUNT
。我可能会遗漏一些细微之处,因为我每天都不使用Oracle。
如果我猜错了,那么你可以扩展“数组大小”的功能吗,因为我在搜索Oracle数组大小时找不到任何看似相关的匹配。
实际上,重新阅读我在SQL * Plus中可以找到set arraysize
的内容,它似乎与ROWCOUNT
完全不同。但是描述(似乎控制每次往返返回的行数,但不限制行的总数)似乎与您的描述“部分执行类似Oracle的SQL”不符。我无法想到任何可以控制返回给客户的结果批处理的东西。
答案 1 :(得分:1)
似乎SQL Server中的相应功能称为阵列提取大小。 (例如,讨论here。)