2009-08-25 43 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字段,因为你将要查找基于这样的错误。 至于主键。你还没有提到强制需要主键的需求。这只会增加额外的开销。 但是,您可能需要进行排序,因此您需要数字字段或日期字段。我建议只需在表格中添加一个数字字段,以便您可以根据创建的订单错误消息进行排序。但是你可能不需要将该领域作为主要领域,因为数据不会持续太久。