代码改变世界

代码调用存储过程超时,SQL Server Management Studio里运行很快 (改进)

2012-05-17 16:42  Mike.Jiang  阅读(5634)  评论(8编辑  收藏  举报

原文:http://blog.csdn.net/iwteih/article/details/4515267

今天同事用代码调用存储过程时超时,在SQL Server Management Studio里运行却很快就有结果,这和我上次遇到的情况一下,现在将解决方案记录如下,谨为大家作一提醒。

 

解决方案就是: 把存储过程中多余的空格删掉。

 

瞠目吧结舌吧,不过这就是现实,现实是残酷的,现实是无情的,哈哈

 

不一定是哪个空格就引起了超时,试着看吧

 上面的解决方案是将存储过程里的空格去掉,但如果这样,存储过程的格式就不是很友好后期维护也是很麻烦。

 痛定思痛,于是乎有了下面的解决方案:即然是在数据库里执行成功,所以在程序里构造一条如下的SQL执行

 

            SqlParameter param = new SqlParameter("@project_id", project_id);

            string selectCmd = string.Format("exec dbo.[***Get*ro*ctCo***] @project_id ", project_id);
            DataSet ds = this.ExecuteQuery(CommandType.Text, selectCmd, param);

将存储过程的执行作为一条SQL传到数据库中执行。

OK,纠结的你,赶紧试试吧。。。

 

话说微软能把这个BUG清掉么,希望更多的人看到这篇文章,少点纠结