【发布时间】:2013-11-18 21:00:31
【问题描述】:
我有一个表格,用于跟踪特定文件在我们的系统检查时所经历的状态。它看起来像这样:
FileID 整数
状态 tinyint
TouchedBy varchar(50)
TouchedWhen 日期时间
目前该表上没有主键,但是 Status 和 TouchedWhen 上有一个聚集索引
随着表的持续增长和查询性能的下降,我的一个想法是添加一个 PrimaryKey 以便我摆脱堆查找 - FileID、Status 和 TouchedWhen 上的主键
我遇到的问题是 TouchedWhen,由于它的舍入问题,有时会有 2 个日期时间完全相同的条目。
然后我开始研究如何将其转换为 datetime2(7) 并更改当时重复的那些。我的桌子看起来像:
FileID 整数
状态 tinyint
TouchedBy varchar(50)
TouchedWhen datetime2(7)
还有一个关于 FileID、Status 和 TouchedWhen 的主键
我的问题是——如果有重复,最好的方法是通过什么来为现有表添加毫秒?如何对需要保持在线的表执行此操作?
提前,谢谢,
布伦特
【问题讨论】:
标签: sql sql-server composite-primary-key data-conversion datetime2