體驗sql語句不同寫法的效率
阿新 • • 發佈:2018-12-13
體驗sql語句不同寫法的效率
--荊兆春
Sql語句不同寫法之間的效率肯定存在差異,但我也沒有想到差別會這麼大,下面就用一個例項來探討一下。
業務場景:計算倉庫庫存臺賬的餘額。
序號 |
物料ID |
倉庫ID |
批號 |
入庫數 |
出庫數 |
庫存數 |
1 |
1000 |
1000 |
200 |
|||
2 |
1000 |
1000 |
10 |
|||
3 |
1000 |
1000 |
20 |
|||
4 |
1000 |
1001 |
300 |
|||
5 |
1000 |
1001 |
20 |
|||
6 |
1000 |
1001 |
30 |
|||
7 |
1001 |
1002 |
400 |
要求:按物料+倉庫+批號計算每一行的庫存餘額。
方法1:迴圈的方法
- 當計算10000行的時候28秒才能完成。
- 稍微修改了一下
- 主要動的是註釋掉的那一行,這樣後計算10000行,需要19秒,可見用選擇語句賦值耗費掉的時間。
- 我這邊測試的資料有14萬行資料,計算了420秒後實在等不下去了,需要優化,改用遊標的方法。
方法2:遊標的方法
- 計算10000行資料瞬間完成了。
- 計算所有資料也不到10秒鐘,由此可體驗到sql程式設計的效率問題。