[SQL ] MSSQL效能問題請教
使用MS SQL 2008 R2
要做一個統計的SQL查詢
資料大概是長這樣
SomeTbl
from to actiontype who_do_it . . .
------------------------------------------------------------------------
台灣-台北-大同區 台灣-高雄-岡山 4 kevin
台灣-台北-中山區 台灣-台北-淡水 6 john
台灣-新北-土城 台灣-桃園-桃園 6 john
.
.
.
大概是這樣的資料三百萬筆左右
想請問的問題有下列幾點
1.
"誰"做了幾項。
使用cursor,把人員表當作變數一筆一筆往下查詢(我有將cursor設read only,不知道
會不會快一點)。
2.
我想查詢從北部出發的,包含台北、新北、桃園。
select count(1) from SomeTbl where [from] like '%台北%' or [from] like '%新北%'
or [from] like '%桃園%'
3.
跟第二點很像,不過是反向查詢,查詢不是從台北出發。
我將條件前面放一個not
select count(1) from SomeTbl where not ([from] like '%台北%' or [from] like '%新北%'
or [from] like '%桃園%')
查詢浪費時間的就是去計算"一個人從北部出發的次數,非北部出發的次數,
北部回來的次數,非北部回來的次數"
人員大約一千人,搭配SomeTbl(資料三百萬筆),這樣會花很多時間。
因為資料量不算小,不知道還有沒有小細節可以修的更好。
對了這個會寫成store procedure。
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.19.70
推
03/04 23:41, , 1F
03/04 23:41, 1F
推
03/04 23:44, , 2F
03/04 23:44, 2F
→
03/04 23:47, , 3F
03/04 23:47, 3F
→
03/04 23:48, , 4F
03/04 23:48, 4F
推
03/05 00:37, , 5F
03/05 00:37, 5F
→
03/05 07:20, , 6F
03/05 07:20, 6F