[阅读: 834] 2005-08-26 06:45:41
检讨每个游标 (Cursor)
游标的使用对系统的性能有严重的影响。SQL是面向数据集(set_oriented languase)的操作,游标是面向数据行的操作,SQL的效率要大大高于游标。游标在锁,网络资源和指令操作上对系统性能造成了影响,其中尤其以指令开销最严重,每处理一行数据都需要和数据库进行交互。一般认为3条SQL对数据进行3次扫描处理的效率也比用游标扫描一次的效率要好。
大多数的游标的工作都可以通过转换程序设计逻辑和改写成SQL来完成。
如果一定要使用游标则在存储过程中使用。
如果一定要使用游标则要显式声明for read only 或者是for Update。
强烈建议对现有系统中使用的每个游标进行检讨(包括原来ERP系统的和XXXX二次开发的,依照使用频率高低作为优先次序)。建议通过小组讨论的形式来消除每个游标,在这过程中可以提高每个团队成员的程序设计逻辑和SQL书写技巧。如果某个游标难以改写,则将其写入存储过程,待积累一定改写游标的经验后再重新评估。
建议对于代码中新增加的游标要经过小组讨论才能加入代码中。
执行力=流程+计划+组织
把理想变成计划,
把计划变成步骤,
把步骤变成行动,
把行动变成成果。
好語說盡人必易之。規矩行盡人必繁之。福若受盡緣必孤。勢若使盡禍必至。