[SQL ] 詢問加速查詢

看板Database作者 (李崩子)時間5年前 (2018/07/16 11:43), 編輯推噓3(307)
留言10則, 2人參與, 5年前最新討論串1/1
(針對 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://www.ptt.cc/bbs/Database/M.1531712634.A.CD7.html

07/16 13:18, 5年前 , 1F
GLOBAL_POSITION_INT 跟 GPS_RAW_INT 相對應的 seq
07/16 13:18, 1F

07/16 13:18, 5年前 , 2F
是不是一定差 1 呢?如果是的話,會有比較好的做法
07/16 13:18, 2F

07/16 13:32, 5年前 , 3F
沒差1
07/16 13:32, 3F

07/16 13:41, 5年前 , 4F
我有找到方向,朝著#tempTable ing
07/16 13:41, 4F

07/16 14:41, 5年前 , 5F
GLOBAL 跟 GPS 是不是一定成對出現
07/16 14:41, 5F

07/16 14:42, 5年前 , 6F
且 GLOBAL 的 seq 會大於 GPS 的 seq 呢?
07/16 14:42, 6F

07/16 14:44, 5年前 , 7F
恩,但是要根據使用者,如果傳到一半就關了
07/16 14:44, 7F

07/16 14:45, 5年前 , 8F
就會少1 (其中一個沒有成對)
07/16 14:45, 8F

07/16 14:48, 5年前 , 9F
沒有成對是少了 GPS 還是少了 GLOBAL 呢?
07/16 14:48, 9F

07/16 17:38, 5年前 , 10F
感謝cutekid大大,大力相助!
07/16 17:38, 10F
文章代碼(AID): #1RJ1HwpN (Database)