我一直在阅读游标是漂亮的slow和一个应该除非选择避开它们。我试图优化我的存储过程,其中一个使用游标。它经常被我的应用程序和许多用户(20000)和行更新所调用。我在想,也许我应该使用别的东西作为替代。游标真的有多慢,以及哪种更好的替代方案?
我想要做的或想要的是获取记录列表,然后根据每个行值进行操作。因此,对于e.g我们不得不说 -
Employee - Id,Name,BenefitId,StartDate,EndDate
因此,基于benefitId我需要做的起始日期使用日期和结束日期和更新员工的详细信息之间的日期不同的计算。我只是用这个人为的例子来说明我的情况。
你对此有何看法?使用临时表或用户定义函数的游标是否有更好的选择?你应该什么时候选择他们,或者我们应该永远不使用游标?谢谢大家的帮助。
许多地方要求所有数据库通过存储的通配符。在存储过程中执行复杂的处理是一个更好的做法,dba可以调整性能而不是在应用程序中放置类似的东西。此外,几乎所有从应用程序运行的游标都可以轻松地用基于集合的逻辑来代替。除了一些面向dba的管理任务外,很少需要游标。如果您正在插入,更新或从一个或多个表中删除,那么您可以以基于集合的方式完成这项工作,几乎可以在100%的时间内完成。 – HLGEM 2010-11-22 23:20:17