波斯马BOSSMA Information Technology

SQL Server使用游标的一点思考

发布时间:2014年4月15日 / 分类:DataBase / 3,934 次浏览 / 评论

使用游标可以让一些复杂的处理变得简单,有时候就像在程序中书写While循环一样;但是不可否认的是游标在很多情况下都是低效的,耗用内存,锁住记录,逐行处理对大数据量简直就是灾难。

什么时候使用游标?这里有一些浅薄的认识:

1、数据处理的逻辑很复杂,使用单条SQL语句很难解决。

比如要根据多表查询的结果进行运算,然后更新某些个不在同一个表的字段的值,或者在不同的表中插入新的记录。

2、无法或没必要在应用程序中处理这些数据。

比如因数据结构升级,需要根据一些条件和查询结果重新计算某些列的值,写个程序有些兴师动众。

又或者只接触过数据库,对开发语言一窍不通。

3、数据量不是很大或者执行需要的时间在可以接受的范围内。

比如只是几千条数据的更新处理,或者允许处理时间在2个小时。

4、需要并发控制,内存足够大。

比如在程序中更新数据时,可能别的程序也会来处理数据,可能出来的结果就不是想要的,采用游标则可以将记录锁住,控制数据更新。

这几点在应用时需要相互考量权衡,选择适合自己的才是最好的。

下边再给出一个使用游标的例子,没做过的可以参考下(此例子不一定适合采用游标):

有两个表:报名表、报名人表,从报名人表中读取姓名,填到报名表的的RealNames中。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《SQL Server使用游标的一点思考

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

目前有1 条评论

  1. jianjunzhangaaa 沙发:

    谢谢楼主,学习啦

发表评论