SQL Server - SQL 游标与 ADO.NET

标签 sql ado.net cursors

我必须计算涉及多个表中的数据的值。我想知道与将数据读入数据集(使用简单的选择存储过程)然后循环记录相比,使用带有游标的存储过程是否会提供性能优势?数据集不大,由 6 个表组成,每个表大约有 10 条记录,主要是 GUID、几个 nvarchar(100) 字段、一个 float 列和一个 nvarchar(max)。

最佳答案

这可能取决于您可能检索回来的数据集(数据集越大,在 SQL Server 内部执行而不是传递它可能更符合逻辑),但我倾向于认为,如果您想要执行计算,在代码中进行,而不是使用存储过程。如果您需要使用游标将数据集中在一起,那就这样吧,但我认为应该避免使用它们来进行计算和其他非检索功能。

编辑:此 Answer另一个相关问题将给出游标与循环的一些优点和缺点。这个答案似乎与我之前关于扩展的断言(见上文)相冲突。似乎表明您获得的数据越大,您就越可能希望将其移至代码中而不是存储过程中。

关于SQL Server - SQL 游标与 ADO.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802549/

相关文章:

c# - Transactionscope 或 IDbTransaction

user-interface - 各种 Tk 游标是什么意思?

sql - VB.Net写入大量数据到SQLite-DB

sql - ORACLE SQL中通过select语句添加带有空度量的行

c# - 如果前一个参数为空,参数没有默认值?

c# - ADO.NET Entity Framework : How to get auto cascading deletions?

php - Ajax 用 php 内容更新表格

sql - 除以 0 时消除 Report Builder 3.0 中的 #Error

indexedDB - objectStore.openCursor() 不会返回 objectStore 中的所有对象

sql-server - SQL Server 游标引用(语法等)