这个问题还是很头疼的,估计应该和SQL内部的机制有联系,谁叫微软自己都说sql server 2000不可靠呢!!!! - -!
補充一下....第二步,第五步,是一個關聯更新.. 2. update table_B set col1=3 from table_A,table_B where Table_A.col4=@var and table_A.col5=table_B.col3update table_B set col1=3 from #tmpTable,table_B where tmpTable.col4=@var and tmpTable.col5=table_B.col3嘻嘻,我這proc其實是一個如下的結构 if (aaaa)else if (bbbb)else if (cccc)elsebbb.ccc.else都沒有問題,就是aaaa有問題,不同的是aaaa條件有#tmpTAble其餘的沒有.一會我自已不用#tmpTable試下..不明白的是跟蹤到的#tmpTable產生的時間少也就(50-100ms)不明白為什麼會差這么多.
=========================================
應該沒有,由於設計的在系統中不是job.只是一個每隔半秒的簡單語句(select * from table_X where ....)只是每次select ,由系統的另一程序執行...而且這個表table_x跟我這個里面的啥關系都沒有..2.你把job停一下再运行试试看
==============================
這個已試,在測試機上是沒有job的,其餘的都一樣,在測試機上這個時間是符合要求的855
以上步驟的時間分別是
1.31
2.47
3.0
4.31
5.47
6.0
總時間 855 >> 31+47+0+31+47+0=156 還有時間呢,差不多700ms..
這個時間到底去哪了....????
===========================================
謝謝,發給我可以試試.問題是這個時間差太大了.別的存儲過程都不曾產生這麼大的時間差..
一般也就0~~10 ms
---------
不会,除非编写存储过程或者运行时加with RECOMPILE
2.
update table_B set col1=3 from table_A,table_B where Table_A.col4=@var and table_A.col5=table_B.col3update table_B set col1=3 from #tmpTable,table_B where tmpTable.col4=@var and tmpTable.col5=table_B.col3嘻嘻,我這proc其實是一個如下的結构
if (aaaa)else if (bbbb)else if (cccc)elsebbb.ccc.else都沒有問題,就是aaaa有問題,不同的是aaaa條件有#tmpTAble其餘的沒有.一會我自已不用#tmpTable試下..不明白的是跟蹤到的#tmpTable產生的時間少也就(50-100ms)不明白為什麼會差這么多.