iT邦幫忙

2

MSSQL 時間區間效能

  • 分享至 

  • xImage

您好:
想請問
1.比如 有歷史單價
物料,日期起,日期迄,單價
A ,20240101,20240930,100
A ,20241001,20991231,120

一般會 另外設定一個KEY:物料+流水
還是 用雙KEY:物料+日期迄 (最候一天比對重複,好像比較簡單? 還是用日期起?)

2.有了單價後
要做銷售,當然也會有 時間區間
--先以 雙KEY說 (物料 ,日期迄)
產品 ,售日起 ,售日迄 , 物料 ,日期迄 , 售價
A ,20240801,20240831, A ,20240930 ,110
A ,20240901,20240930, A ,20240930 ,115
A ,20241001,20241031, A ,20991231 ,130

這樣串下去, 單KEY 還是多KEY的效能較好?

謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
pilipala
iT邦研究生 5 級 ‧ 2024-09-27 08:34:38

Primary Key 不要跟商業邏輯相依,EX:料號、起訖日期,用流水號最簡單

1
kawa0710
iT邦新手 1 級 ‧ 2024-09-27 08:42:16

我個人經驗選「單KEY流水號」加在【歷史單價】,然後加索引在「物料」及要查詢的日期起迄 。

如果不清楚要在哪個欄位加索引,問使用者要怎麼查資料再決定,否則在「歷史資料表」這種資料量大的Table加錯索引可能很耗索引儲存空間而且也可能查得更慢。

注意:要索引的日期不能允許NULL!

我要發表回答

立即登入回答