2009-08-25 41 views
1

我對如何爲臨時存儲錯誤消息創建表存在懷疑。在短時間內存儲大量數據時的主鍵

  1. 大量插入和刪除
  2. 一個GUID作爲外鍵,可能會被左外連接
  3. 簡單nvarchar的字段中的ErrorMessage

其中主鍵,如果有的話,我應該使用索引在短時間內存儲大量數據嗎?

感謝

+0

您是否考慮過消息而不是數據庫能否更好地滿足您的需求? – RichardOD 2009-08-25 14:17:49

+0

我很受這個設計的限制,不幸的是 – maxbeaudoin 2009-08-25 14:30:10

回答

2

我不同意Jay - 請查看Kim Tripp的The Clustered Index Debate continues

在其他方面,她說,有一個良好的 /集束鍵(上INT IDENTITY列 - GUID列)實際上會加快您的插入和刪除。

所以,即使你只在短時間內使用你的表格,建議有一個TableID INT IDENTITY(1,1) PRIMARY KEY列來獲得一個好的,快速的主鍵和聚集索引,以及儘可能少的其他索引(因爲那些肯定會減慢插入)。

根據您將GUID列作爲外鍵引用的頻率,您可能還想在其中添加索引 - 因爲它會加快查找的速度。

如果您批量加載大量數據(說:一次成千上萬的行),您也可以考慮在加載之前刪除該索引,並在數據加載後重新創建它(這可能會比始終提供的速度更快) - 但是,這又取決於您正在加載的數據量和頻率。

Marc

0

我把索引你的GUID國外ID字段,因爲你將要查找基於這樣的錯誤。 至於主鍵。你還沒有提到強制需要主鍵的需求。這隻會增加額外的開銷。 但是,您可能需要進行排序,因此您需要數字字段或日期字段。我建議只需在表格中添加一個數字字段,以便您可以根據創建的訂單錯誤消息進行排序。但是你可能不需要將該領域作爲主要領域,因爲數據不會持續太久。