今天報關人員問我關於短溢表為何查詢不出來的問題,苦惱了我一下午。
乙個叫[bserp_gat_report_gat04007]
的儲存過程死活都查詢不出來資料,我整整查詢了10分鐘,最終還是沒出來資料。這讓我很苦惱。我試著猜測到底是哪乙個語句的問題,一步一步的查詢每乙個語句到底是出了什麼問題?每一步消耗的時間並不長。但我整個過程一起執行時卻發現查詢慢的要死。
我懷疑是否是剛剛將sql2000遷移到2005引起的問題,我將之前的巢狀表更改為公用表示式。但發現還是同樣的問題,之後我把所有的語句放在乙個批查詢中執行,發現只要15秒資料就查詢出來了,這讓我有點驚喜。我將此段**放入到過程中,再執行,發現又不動了,時間過了3分鐘,依然無資料。
奇怪了!我試著執行其他資料庫相同的過程,發現挺快的,但為何這個過程卻如此之慢呢?
我將查詢慢的方向轉移到了資料量的問題,經查詢有乙個表gatsaa的資料有120萬,相對sql2005似乎是大了點,我試著將資料移入到乙個備份表中gatsaabak08011003中,再執行此過程時,只用了7秒資料竟出來了。
總結:sql server在處理大資料量時的能力還是有欠缺的,也許本人不才,語句寫的也不怎麼好!
大資料量的查詢時,在過程中的查詢明顯比不在過程的查詢快,這也讓我對曾經看到的一句話產生的懷疑。
「儲存過程可以提高效能」
若各位朋友有不同的意見請拍磚!
儲存過程與業務類實現業務的差異比較
以下比較不太全面,純粹是個人的理解。可能是針對前一篇文章的補充與說明 1 批量資料的處理比較 業務邏輯 單位a部門劃轉到b部門,業務規則是把a部門的100人的關聯單位改為b部門,同時在人員崗位變化子表裡增加一條變動記錄。業務實現 1 儲存過程實現 sp實現 兩個sql語句 insert into 崗...
MaBatis的模糊查詢與儲存過程
1 模糊查詢 如下模糊查詢語句 select from user where name like o and age between 16 and 20是查詢名字中含字母o而且年齡在16到20歲之間的使用者 name like and age between and 顯然,三個引數我們需要直接傳入乙...
查詢儲存過程
1.oracle中下面這麼寫 按名查詢儲存過程 select from user objects where object type procedure and object name like upper p 按內容查詢儲存過程 select from all source where type ...