读书人

存程行的效率.(,跟

发布时间: 2012-03-19 22:03:04 作者: rapoo

存程行的效率...(,跟存程行的看看,早.)
我有一存程.行要求在1秒完成...(可先看)

如下:
proc up_test
1.句一 insert into Table_C select from Table_A
2.句二 update Table_B
3.句三 select * into #tmpTable select * from Table_A
4.句四 insert into table_C from #tmpTable
5.句五 update table_B
5.句六 drop table #tmpTable

我打跟分析器(sql)行的如下.
select/insert/update出的 原始的
1. 34 1000 30W
2. 67 1000 1500
3. 172 1000 30W
4. 110 1000 1000
5. 170 500 1500
6. 0

上面很容易看到程行的是
34+67+172+110+170= 553 多次加起的字是 610,775.....等,不超1秒.是符合要求的...

但是最后存程的是SP:complete :1230 rpc:complete 1231
就不一了.跟前面加起的值不一..就不合要求了超一秒...

跟中建立表sql做一些作,,加起也就是100ms左右..加上也跟最後的行有大的出入啊....

:1.分步的行加起什不等于的行...(即使是加上表理跟到的)
2.存程行跟sql的荷有么...(比如sql有半秒行一次的任(job),分析器不把任的算在我存程上? 或者sql行up_test的把等待任完成的也算在里面,但跟器就不跟到.正好,去步的和就正好是.up_test的等待..

希望能解.思路也不..先了..早..:)

[解决办法]
比如sql有半秒行一次的任(job)
---------
是不是这个job给存储过程中的用到表加锁了?
[解决办法]
我们上课的时候 老师好像曾经说过 每执行一次存储过程,系统默认会重新编译该存储过程一次。这应该是影响时间差的关键,有个设置语句可以禁止这个现象发生,我给忘记了。等我想一想。想到了 在发给您



谢谢!~~~
[解决办法]
每执行一次存储过程,系统默认会重新编译该存储过程一次
---------
不会,除非编写存储过程或者运行时加with RECOMPILE
[解决办法]
啊,那是我记错了啊。
[解决办法]
这个问题还是很头疼的,估计应该和SQL内部的机制有联系,谁叫微软自己都说sql server 2000不可靠呢!!!!

- -!

读书人网 >SQL Server

热点推荐