在查询分析器里面DECLARE了一个游标CURSOR1,大约5条左右的纪录。
但是执行 OPEN CURSOR1
FETCH NEXT FROM CURSOR1
INTO @a
                       @b
                       ....
                       @g这一句的时候用了大约1分钟左右,感觉很不正常,请高手分析下大约会是什么原因导致速度这么慢的呢?

解决方案 »

  1.   

    USE pubs
    GO
    DECLARE authors_cursor CURSOR FOR
    SELECT au_lname FROM authors
    WHERE au_lname LIKE "B%"
    ORDER BY au_lnameOPEN authors_cursor-- Perform the first fetch.
    FETCH NEXT FROM authors_cursor-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
    WHILE @@FETCH_STATUS = 0
    BEGIN
       -- This is executed as long as the previous fetch succeeds.
       FETCH NEXT FROM authors_cursor
    ENDCLOSE authors_cursor   ----关闭游标
    DEALLOCATE authors_cursor     ------释放游标资源
    GO这两点很重要
      

  2.   

    最后要加上
    CLOSE CURSOR1   ----关闭游标
    DEALLOCATE CURSOR1     ------释放游标资源
    go
      

  3.   

    CLOSE CURSOR1   ----关闭游标
    DEALLOCATE CURSOR1     ------释放游标资源
    我加上了,完全是按照3楼说的模式写的