mingche 发表于 2016-11-1 09:15:11

SQL Server 2005 游标跑的很慢!

  本人使用SQL Server Management Studio 在查询界面中写了两个游标, 份别跑了30分钟和6分钟.
  这两个游标都是只读前进地提取.涉及数量9万和5千条,也就是说提取次数.
  无论对要提取的表增加索引,还是修改Cursor的类型,都无济于事! 微软不会那么差劲吧?
  
  后来感觉放进存储器起跑,确实很快.整个跑下来才1分钟48秒.!
  
  SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
  
默认情况下没有一下事务设置的
  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

  
  -- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
  
  今天单独拿出一部分游标来测试。分别放在两个查询框中。有个有事务设置,另外个没有
  结果有的跑了34秒,没有的跑了6分11秒
页: [1]
查看完整版本: SQL Server 2005 游标跑的很慢!