我们在Cursor和while循环之间选择哪些因素。我们什么时候应该使用游标,什么时候应该使用While循环?何时在SQL Server中使用游标和While循环
0
A
回答
3
游标是一个循环构造内置数据库引擎,并具有各种各样的功能。游标允许您获取一组数据,遍历每条记录,并根据需要修改值;那么,您可以轻松地将这些值分配给变量并对这些值执行处理。根据您请求的光标类型,您甚至可以提取您之前提取的记录。
由于游标是数据库引擎中的实际对象,因此在创建游标和销毁游标时会有一些额外开销。另外,大多数游标操作都发生在tempdb中,因此大量使用的tempdb会因使用游标而更加重载。
WHILE循环是一种编程结构,您可能从其他编程语言中熟悉。您可以在循环的开始处定义一个条件,只要此条件保持为真,就会发生迭代。
WHILE循环与游标一样易于使用,但有时这些结构难以阅读和/或理解,因为查询必须发生在基表上,必须获取单个下一个行。在底层基表没有主键列(它应该有)的情况下,这种操作非常棘手。
WHILE循环不提供游标附带的一些花里胡哨的功能,例如在结果集中轻松地“倒退”的功能。虽然,我从来没有遇到过除了通过带有游标的结果集进行直线循环之外的其他任何事情。
WHILE循环的一个优点是不必在内存中创建对象,以方便通过一组记录来循环使用游标所需的内容。
编辑
如果要分析两者的功能,你可以写用游标声明以及while循环和分析的使用SQL Server Profiler进行读取的数量。这个工具会给我一个组合的每个记录的读数,而不是每个记录。经验法则表示,无论哪个更快,更好。
相关问题
- 1. 对SQL游标使用while循环?
- 2. 如何在while循环内手动分解游标。在SQL Server
- 3. 如何在for循环或while循环中引用游标项?
- 4. SQL Server While循环和动态SQL
- 5. 如何在SQL Server中使用while循环使用BEGIN TRANSACTION?
- 6. SQL:在while循环中while循环
- 7. 在SQL Server中避免while循环
- 8. 如何避免sql server中的游标?也想避免while循环
- 9. SQL Server如何在发生特定条件时循环一次游标循环
- 10. 如何使用,同时和while循环
- 11. 在SQL查询中使用while循环
- 12. 在sql中使用while循环
- 13. 在while循环中使用本地函数参数 - SQL Server
- 14. SQL Server:停留在WHILE循环中使用@@ fetch_status
- 15. 用while循环猜测游戏中的while循环和if语句调试
- 16. 使用while循环的猜数游戏
- 17. 如何在While循环中设置变量在SQL Server中
- 18. Python 2.7:ArcPy游标while循环
- 19. 何时在while循环中使用for循环?
- 20. 在while循环中使用for循环
- 21. 在逻辑中何时使用For循环以及何时使用While循环
- 22. pl sql游标在循环中
- 23. 如何在while循环中存在SQL Server存储过程?
- 24. 使用||在while循环中
- 25. 如何使用SQL Server 2014构建WHILE循环
- 26. 如何在Java Jsoup while循环中移动游标?
- 27. 在tic tac toe游戏中将do while while循环更改为while循环
- 28. SQL服务器循环和游标
- 29. Java while循环游戏
- 30. 在数组循环中使用游标
你应该避免两者。避免RBAR,总是去基于Set。 – mxix