惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
博客园 - Franky
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
IT之家
IT之家
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
S
SegmentFault 最新的问题
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
B
Blog RSS Feed
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 司徒正美
The Cloudflare Blog
博客园_首页
博客园 - 聂微东
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏

博客园 - ansonpan

戒烟第五天! 戒烟第二天! 戒烟第一天! 扩展fckeditor的上传图片和上传文件功能! (二) 翟鸿燊-《国学应用大智慧》笔记 Sage Accpac ERP 销售订单模块激活问题! Asp.net 团队博客地址 datalist嵌套TreeView 收发邮件的一些心得。 数组遍历判断两个输入框之间是否有输入重复的值! - ansonpan - 博客园 SQL2005分页查询语句! 控制一个登录名只能访问一个数据库! ASP.NET网站安装部署参考总结! 匹配下拉控件 Visual Studio 2008 Web部署项目插件下载 验证视图状态 MAC 失败 扩展fckeditor的上传图片和上传文件功能! 喝酒的五个阶段! 打开网页要输入用户名和密码的解决方案!
SQL2000游标引发的性能问题!
ansonpan · 2008-10-15 · via 博客园 - ansonpan

     今天客户反馈到这样一个问题,同样一个页面不同的用户进入,有些用户不会出错,有些用户则显示:

SQL错误:超时时间已到。在操作完成之前超时时间已过或服务器未响应。这样的错误。

      于是我查了一下数据库,发现凡是出错的用户都具有相同的一个特点:就是数据量较大。

再查询程序,原来SQL语句:用了function,function 里还用了游标。

select *,dbo.F_AcceptUnit as Unit  from Iw_SendInfo

Create function F_AcceptUnit(@sID int ,@UID int)
returns varchar(4000)
as
begin
declare @UnitName varchar(1000),@Unit varchar(4000)
set @Unit=''
DECLARE Dname_Cursor CURSOR FOR
select Dname from IwUser where ID in (select userid from inceptinfo where sid=@sID and  userid!=@UID)
open Dname_Cursor
FETCH NEXT FROM Dname_Cursor
INTO @UnitName
WHILE @@FETCH_STATUS = 0
BEGIN

FETCH NEXT FROM Dname_Cursor
INTO @UnitName
 set  @Unit =@Unit+ @UnitName +','
end
CLOSE Dname_Cursor
DEALLOCATE Dname_Cursor
return @Unit
end

 SQL2000里面本来游标的性能就比较低下,然后SQL里面再查询function,无疑是雪上加霜。游标还是慎用为好啊!