社区
C#
帖子详情
C#执行存储过程非常慢
Delphiandliu
2009-09-24 11:51:37
各位大侠,我写了个存储过程,在查询分析器中执行只需1秒钟,但用C#调用的时候居然要1分多钟还会出结果,不知什么原因。有人说是用了这个 SqlParameter 的原因。在线等解决方案, 谢谢
...全文
506
33
打赏
收藏
C#执行存储过程非常慢
各位大侠,我写了个存储过程,在查询分析器中执行只需1秒钟,但用C#调用的时候居然要1分多钟还会出结果,不知什么原因。有人说是用了这个 SqlParameter 的原因。在线等解决方案, 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangyn77
2009-09-24
打赏
举报
回复
太有才了!
Delphiandliu
2009-09-24
打赏
举报
回复
各位,上面是我的调用代码
Delphiandliu
2009-09-24
打赏
举报
回复
Response.Write("begin:" + DateTime.Now.ToString() +"<Br>");
DataSet ds=new DataSet();
SqlConnection conn=new SqlConnection(Post183Configuration.ConnectionString);
SqlCommand cmd=new SqlCommand();
cmd.CommandTimeout = 1200;
cmd.Connection=conn;
cmd.CommandText="getOrganOrderReport";
SqlParameter busiIdparam=new SqlParameter("@strBisID",System.Data.SqlDbType.VarChar,2000);
busiIdparam.Value=GetSelectBusiness();
cmd.Parameters.Add(busiIdparam);
SqlParameter lvlparam=new SqlParameter("@strLvl",System.Data.SqlDbType.VarChar,10);
lvlparam.Value="3";
cmd.Parameters.Add(lvlparam);
SqlParameter sdateparam=new SqlParameter("@Bdate",System.Data.SqlDbType.VarChar,20);
sdateparam.Value=this.txtBgnTime.Text.Trim();
cmd.Parameters.Add(sdateparam);
SqlParameter edateparam=new SqlParameter("@Edate",System.Data.SqlDbType.VarChar,20);
edateparam.Value=this.txtEndTime.Text.Trim();
cmd.Parameters.Add(edateparam);
SqlParameter stdparam=new SqlParameter("@strStatus",System.Data.SqlDbType.VarChar,1000);
stdparam.Value=this.GetStatus();
cmd.Parameters.Add(stdparam);
cmd.CommandType=CommandType.StoredProcedure;
Response.Write("begin1:" + DateTime.Now.ToString() +"<Br>");
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
ds.Tables.Add("CityOrderTotal");
da.Fill(ds.Tables["CityOrderTotal"]);
Response.Write("begin2:" + DateTime.Now.ToString() +"<Br>");
conn.Dispose();
cmd.Dispose();
Response.Write("end:" + DateTime.Now.ToString() +"<Br>");
return ds;
Rommen
2009-09-24
打赏
举报
回复
up
cadtian
2009-09-24
打赏
举报
回复
无代码无真相
mythad
2009-09-24
打赏
举报
回复
up
yixianggao
2009-09-24
打赏
举报
回复
肯定是代码问题,估计存在死锁滴情况!
soaringbird
2009-09-24
打赏
举报
回复
结果集有多少行?
上海程序员3
2009-09-24
打赏
举报
回复
肯定是c#部分代码有问题,我好像从未碰到过有区别的情况
zhengliyan_star
2009-09-24
打赏
举报
回复
不是吧!我也用这个阿,速度慢,运行的结果对吗??
风之影子
2009-09-24
打赏
举报
回复
C#中调用的代码呢?贴出来看看
Delphiandliu
2009-09-24
打赏
举报
回复
[Quote=引用 32 楼 jiezi316 的回复:]
啊?看来你在线啊!对不起了哈。我乱说的。呵呵
这个肯定不是C#执行存储过程慢。你在查询分析器里查询对于longText 这类字段字数太多就会显示 <Long Text>,而不会显示完整内容。如果在程序里你的40条记录都含有这样的大数据的字段的话,可能查询很快,但发送数据结果集要很长时间。
[/Quote]
嗯,没关系,不过你说的可能有些道理。
jiezi316
2009-09-24
打赏
举报
回复
啊?看来你在线啊!对不起了哈。我乱说的。呵呵
这个肯定不是C#执行存储过程慢。你在查询分析器里查询对于longText 这类字段字数太多就会显示<Long Text>,而不会显示完整内容。如果在程序里你的40条记录都含有这样的大数据的字段的话,可能查询很快,但发送数据结果集要很长时间。
Delphiandliu
2009-09-24
打赏
举报
回复
[Quote=引用 30 楼 jiezi316 的回复:]
错觉
[/Quote]
呵呵,此话怎么讲?
jiezi316
2009-09-24
打赏
举报
回复
错觉
Delphiandliu
2009-09-24
打赏
举报
回复
[Quote=引用 27 楼 hack95 的回复:]
没找到问题...
这就得自己调试了,说不定不是这里慢。
引用 9 楼 delphiandliu 的回复:
Response.Write("begin:" + DateTime.Now.ToString() +" <Br>");
DataSet ds=new DataSet();
SqlConnection conn=new SqlConnection(Post183Configuration.ConnectionString);
SqlCommand cmd=new SqlCommand();
cmd.CommandTimeout = 1200;
cmd.Connection=conn;
cmd.CommandText="getOrganOrderReport";
SqlParameter busiIdparam=new SqlParameter("@strBisID",System.Data.SqlDbType.VarChar,2000);
busiIdparam.Value=GetSelectBusiness();
cmd.Parameters.Add(busiIdparam);
SqlParameter lvlparam=new SqlParameter("@strLvl",System.Data.SqlDbType.VarChar,10);
lvlparam.Value="3";
cmd.Parameters.Add(lvlparam);
SqlParameter sdateparam=new SqlParameter("@Bdate",System.Data.SqlDbType.VarChar,20);
sdateparam.Value=this.txtBgnTime.Text.Trim();
cmd.Parameters.Add(sdateparam);
SqlParameter edateparam=new SqlParameter("@Edate",System.Data.SqlDbType.VarChar,20);
edateparam.Value=this.txtEndTime.Text.Trim();
cmd.Parameters.Add(edateparam);
SqlParameter stdparam=new SqlParameter("@strStatus",System.Data.SqlDbType.VarChar,1000);
stdparam.Value=this.GetStatus();
cmd.Parameters.Add(stdparam);
cmd.CommandType=CommandType.StoredProcedure;
Response.Write("begin1:" + DateTime.Now.ToString() +" <Br>");
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
ds.Tables.Add("CityOrderTotal");
da.Fill(ds.Tables["CityOrderTotal"]);
Response.Write("begin2:" + DateTime.Now.ToString() +" <Br>");
conn.Dispose();
cmd.Dispose();
Response.Write("end:" + DateTime.Now.ToString() +" <Br>");
return ds;
[/Quote]
呵呵,我都输出了时间,确定是在这里慢了
Delphiandliu
2009-09-24
打赏
举报
回复
to zxkid
用的是sqlserver 2000,C# 1.0
to jaylongli
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
ds.Tables.Add("CityOrderTotal");
da.Fill(ds.Tables["CityOrderTotal"]);
大部分时间花在了上面四个语句上。
柳晛
2009-09-24
打赏
举报
回复
没找到问题...
这就得自己调试了,说不定不是这里慢。
[Quote=引用 9 楼 delphiandliu 的回复:]
Response.Write("begin:" + DateTime.Now.ToString() +" <Br>");
DataSet ds=new DataSet();
SqlConnection conn=new SqlConnection(Post183Configuration.ConnectionString);
SqlCommand cmd=new SqlCommand();
cmd.CommandTimeout = 1200;
cmd.Connection=conn;
cmd.CommandText="getOrganOrderReport";
SqlParameter busiIdparam=new SqlParameter("@strBisID",System.Data.SqlDbType.VarChar,2000);
busiIdparam.Value=GetSelectBusiness();
cmd.Parameters.Add(busiIdparam);
SqlParameter lvlparam=new SqlParameter("@strLvl",System.Data.SqlDbType.VarChar,10);
lvlparam.Value="3";
cmd.Parameters.Add(lvlparam);
SqlParameter sdateparam=new SqlParameter("@Bdate",System.Data.SqlDbType.VarChar,20);
sdateparam.Value=this.txtBgnTime.Text.Trim();
cmd.Parameters.Add(sdateparam);
SqlParameter edateparam=new SqlParameter("@Edate",System.Data.SqlDbType.VarChar,20);
edateparam.Value=this.txtEndTime.Text.Trim();
cmd.Parameters.Add(edateparam);
SqlParameter stdparam=new SqlParameter("@strStatus",System.Data.SqlDbType.VarChar,1000);
stdparam.Value=this.GetStatus();
cmd.Parameters.Add(stdparam);
cmd.CommandType=CommandType.StoredProcedure;
Response.Write("begin1:" + DateTime.Now.ToString() +" <Br>");
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=cmd;
ds.Tables.Add("CityOrderTotal");
da.Fill(ds.Tables["CityOrderTotal"]);
Response.Write("begin2:" + DateTime.Now.ToString() +" <Br>");
conn.Dispose();
cmd.Dispose();
Response.Write("end:" + DateTime.Now.ToString() +" <Br>");
return ds;
[/Quote]
加油馒头
2009-09-24
打赏
举报
回复
打个短点调试下 到哪里开始慢的
zxkid
2009-09-24
打赏
举报
回复
楼主用是的SQL Server 2005吧?
加载更多回复(13)
c#
中两种不同的
存储过程
调用与比较
存储过程
的调用在B/S系统中用的很多。传统的调用方法不仅速度
慢
,而且代码会随着
存储过程
的增多不断膨胀,难以维护。新的方法在一定程度上解决了这些问题
C#
调用
存储过程
执行
缓
慢
,但在数据库中
执行
却很快的问题
今天接到一个问题,
C#
调用自定义报表存储,在程序里总是超过30秒,引起超时报错,但是跟踪到的语句在sqlserver中不到1秒就
执行
结束了 参考:https://blog.csdn.net/liling422/article/details/8818591 1.跑代码发现在
执行
存储代码段,确实超时 2.修改存储将返回的4个数据集全部置空,报表瞬间打开;怀疑是存储过长引起(大概1400行) 3.度娘一波,存在去除空格(预处理有关?)的解决方法,但是去除空格太麻烦了,存储也不是我写的, 最终将存储直接COPY回
在SQL Server数据库中
执行
存储过程
很快,在
c#
中调用很
慢
的问题
记录工作中遇到的问题,分享出来: 原博客地址:https://blog.csdn.net/weixin_40782680/article/details/85038281 今天遇到一个比较郁闷的问题,如下图: 点击库存或者点击销售,查询数据很
慢
,有的将近几十秒,查询数据用的是
存储过程
,在数据库中
执行
存储过程
,查询数据是很快的,速度非常理想,1秒不到,但是
c#
程序中调用就要很久。...
MySQL
存储过程
执行
慢
(因为字符集不同导致)
1.现象: 1.
执行
MySQL
存储过程
在测试环境只要0.1s左右,到了生产环境qu却要5s左右,偏差很大。 2.非常简单的
存储过程
函数,处理的数据只有8条。 3.把
存储过程
里的查询单独拿出来查询速度很快,但是放在
存储过程
函数中就很
慢
。 2.原因: 数据库表中的字段是utf-8,而数据库字符集后来改成了utf8mb4。
存储过程
中定义参数时,没有指定字符集,会默认读取创建
存储过程
时的全局...
【转】解决
存储过程
执行
快,但
C#
程序调用
执行
慢
的问题
这两天遇到一个问题令人比较郁闷,一个大概120行左右的
存储过程
在SQL Server2012的查询分析器里面
执行
,速度非常理想,1秒不到,即可筛选抓取到大概500条数据记录。但在
C#
程序代码里调用,就提示连接超时。把CommandTimeout设置为300,就要3分钟左右时间才能显示出来,检查了几遍代码也没有发现错误。问题依旧。原因分析:1、由于在查询分析器里
执行
速度很快,并且数据量也不...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章