对SQL中游标的认识


游标用于按顺序遍历结果集。但一般情况下,应尽量避免使用游标。原因:

1. 游标违背了关系模型,即按集合来考虑问题的思想;

2. 游标逐行对纪录进行操作,会带来额外的开销,使用游标的解决方案通常比使用集合的解决方案要慢得多;

3. 使用游标的解决方案,需要用很多代码来描述对游标的操作,因此代码更长,可读性更差,也更难以维护。


只有在少数情况下才应当使用游标。举两个例子:

1. 需要遍历表名,进行DDL操作;

2. 连续聚合,此时基于游标的解决方案可能比基于集合的解决方案更快。