示例表索引日期列:SQL服务器:在日志表
CREATE TABLE Log (
logID int identity
logDate datetime
logText varchar(42)
)
LOGID已在索引中,因为它是一个主键,但如果你要查询这个表,你可能会想使用LOGDATE作为一个约束。但是,logID和logDate将按照相同的顺序,因为logDate将始终设置为GETDATE()。
在logDate上添加一个额外的非聚集索引是否有意义,同时考虑到对于日志表,重要的是要进行快速写入。
你如何实现这样的事情?你是否将这两个列都声明为主键或跳过PK并通过对logID的唯一检查来创建索引? – SurroundedByFish 2009-10-06 13:29:28
1)将logID保留为主键(这本身不是索引)。 2)在logID上删除当前的聚集索引 3)在logDate上创建一个聚簇索引,logID 4)最终在logID上创建一个唯一的索引(如果你需要访问logID) – Arthur 2009-10-06 13:58:28
当PK有时,我无法创建聚簇索引已经自动创建一个,我也不能在PK存在的时候删除索引。但是,我确实通过在为ID添加PK约束之前为两个coluns创建索引来实现它。 – SurroundedByFish 2009-10-06 14:12:14