社区
C#
帖子详情
C#执行存储过程非常慢
Delphiandliu
2009-09-24 11:51:37
各位大侠,我写了个存储过程,在查询分析器中执行只需1秒钟,但用C#调用的时候居然要1分多钟还会出结果,不知什么原因。有人说是用了这个 SqlParameter 的原因。在线等解决方案, 谢谢
...全文
513
33
打赏
收藏
C#执行存储过程非常慢
各位大侠,我写了个存储过程,在查询分析器中执行只需1秒钟,但用C#调用的时候居然要1分多钟还会出结果,不知什么原因。有人说是用了这个 SqlParameter 的原因。在线等解决方案, 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
在SQL Server数据库中
执行
存储过程
很快,在
c#
中调用很
慢
的问题
记录工作中遇到的问题,分享出来...点击库存或者点击销售,查询数据很
慢
,有的将近几十秒,查询数据用的是
存储过程
,在数据库中
执行
存储过程
,查询数据是很快的,速度非常理想,1秒不到,但是
c#
程序中调用就要很久。...
C#
调用
存储过程
执行
缓
慢
,但在数据库中
执行
却很快的问题
1.跑代码发现在
执行
存储代码段,确实超时 2.修改存储将返回的4个数据集全部置空,报表瞬间打开;怀疑是存储过长引起(大概1400行) 3.度娘一波,存在去除空格(预处理有关?)的解决方法,但是去除空格太麻烦了,...
【转】解决
存储过程
执行
快,但
C#
程序调用
执行
慢
的问题
源博客地址 ... 其他参考:参数探测(Parameter Sniffing)影响
存储过程
执行
效率解决方案 这篇文章对参数嗅探问题作了很详细的研究 https://www.cnblogs.com/lyhabc/articles/3222179.html ...
c#
客户端调用sql server
存储过程
速度
慢
的问题
1 :
c#
代码是 SqlConnection connNew = null; connNew = new SqlConnection(@"Data Source="XXX"); connNew.Open(); ...
存储过程
执行
慢
的原因
存储过程
执行
很
慢
,单独拎出来
执行
就很快1.一开始是直接写的
存储过程
,然后
执行
,卡了很久,大概10分钟左右才
执行
出来2.后面我尝试将插入的数据插入到临时表中,大概5秒就
执行
出来了3.但我发现,
执行
出来的结果跟我...
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章