作者sqrt1089 (李崩子)
看板Database
標題[SQL ] 詢問加速查詢
時間Mon Jul 16 11:43:46 2018
(針對
SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:
資料庫版本:MsSQL 2012
內容/問題描述:
我有3個table
1:主要table (table name = Flight_Resume)
https://i.imgur.com/8hCHtFb.png
其中Seq為Flight_idx = 86 的序列
msg Data為其他table的索引
譬如圖上的其中一筆:seq = 18, Msd_ID = 33, Msg_Data = 349284,
Mag_table = GLOBAL_POSITION_INT
表示Flight_idx = 86 的第18筆詳細資訊在table = GLOBAL_POSITION_INT裡
的第349284筆,如連結:
https://i.imgur.com/ZAe3VBF.png
現在我把兩個table組在一起:
https://i.imgur.com/b3zbS8s.png
以上都沒問題。
以下是問題:
我要新增一欄位是GPS_RAW_INT
他的規則是 GLOBAL_POSITION_INT 之前的最新一筆
以第一張圖說明:假設Seq = 32 (GLOBAL_POSITION_INT),比他之前最新一筆的
GPS_RAW_INT Seq = 31,同時也找到Msg_Data=349158,這樣我就能去串資料了
我的串法是用 max去找,如圖:
https://i.imgur.com/YS9cUiY.png
但這這樣花費好久,65筆要1X秒,我的資料量都是萬的,
我有搜尋過17000筆需要50秒,想請問我是不是少打搜尋關鍵字
導致搜尋這麼久!
意思就是垂直資料變成水平資料:
https://i.imgur.com/Xj3bmwY.png
文字敘述不清楚,請包涵!謝謝!
--
--
▂▂ ▂▂▂
▂▄▅▅▄▆█ _█◣
◢ (●) ◣/\\
丫 │◥  ̄◤
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.243.46
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1531712634.A.CD7.html
1F:推 cutekid: GLOBAL_POSITION_INT 跟 GPS_RAW_INT 相對應的 seq 07/16 13:18
2F:→ cutekid: 是不是一定差 1 呢?如果是的話,會有比較好的做法 07/16 13:18
3F:→ sqrt1089: 沒差1 07/16 13:32
4F:→ sqrt1089: 我有找到方向,朝著#tempTable ing 07/16 13:41
5F:推 cutekid: GLOBAL 跟 GPS 是不是一定成對出現 07/16 14:41
6F:→ cutekid: 且 GLOBAL 的 seq 會大於 GPS 的 seq 呢? 07/16 14:42
7F:→ sqrt1089: 恩,但是要根據使用者,如果傳到一半就關了 07/16 14:44
8F:→ sqrt1089: 就會少1 (其中一個沒有成對) 07/16 14:45
9F:推 cutekid: 沒有成對是少了 GPS 還是少了 GLOBAL 呢? 07/16 14:48
10F:→ sqrt1089: 感謝cutekid大大,大力相助! 07/16 17:38