Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Sybase中的游标有多慢_Database_Stored Procedures_Cursor_Sybase - Fatal编程技术网

Database Sybase中的游标有多慢

Database Sybase中的游标有多慢,database,stored-procedures,cursor,sybase,Database,Stored Procedures,Cursor,Sybase,我听说Sybase中的游标非常慢,甚至有人说我们应该避免使用游标。谁能告诉我Sybase中的游标有多慢。只读游标是否可以,或者它们也非常慢,完全使用游标是否可以接受?我认为这句话不完整。实际索赔可能是 游标比基于集合的操作/sql语句慢 这适用于所有数据库,而不仅仅是Sybase。一般来说,如果可能的话,您必须尝试使用SQL和基于集合的操作,而不是游标和循环记录。 下面是你的答案和例子。。。。针对5000行表的示例执行时间 Procedure | Access metho

我听说Sybase中的游标非常慢,甚至有人说我们应该避免使用游标。谁能告诉我Sybase中的游标有多慢。只读游标是否可以,或者它们也非常慢,完全使用游标是否可以接受?我认为这句话不完整。实际索赔可能是

游标比基于集合的操作/sql语句慢

这适用于所有数据库,而不仅仅是Sybase。一般来说,如果可能的话,您必须尝试使用SQL和基于集合的操作,而不是游标和循环记录。

下面是你的答案和例子。。。。针对5000行表的示例执行时间

Procedure | Access method | Time --------------------------------------------------------------------- increase_price | Uses three table scans | 28 seconds increase_price_cursor | Uses cursor, single table scan |125 seconds 程序|访问方法|时间 --------------------------------------------------------------------- 涨价|使用三次表格扫描| 28秒 涨价光标使用光标,单表扫描125秒
感谢您提供的数据,Sybase中的只读游标是否也这么慢有两种游标模式:只读和更新。顾名思义,只读游标只能显示select语句中的数据;更新游标可用于执行定位更新和删除。但是,任何游标都会减慢数据库的只读速度,因为“按原样更新”不会对数据库执行修改。可能是-由于避免了锁定,只读游标可能会更快,因为它比“更新”快,但这取决于数据的大小,如果表中包含数百万条记录,它可能会减慢,否则会正常工作。。