作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 SQL Server 2005。我有一个简单的日志记录表,我的 Web 应用程序使用它来跟踪用户事件和访问的 URL。表格设计很简单
ID(标识值),
LogDate(日期时间),
事件(nvarchar(200)),
网址(nvarchar(1000))
我们主要是对这个表做Inserts。如果我们想调查某个特定用户在某个日期期间的事件,有时我们会对该表执行一些查询。该表当前有一个标识列作为其主键。这也是它的聚集索引。
我想知道将其聚簇索引更改为 LogDate 列对我来说是否更好。LogDate 列存储事件的日期/时间并且可以有重复项,但是由于我们总是向表中插入,新记录应该总是在表的末尾,因此 SQL Server 没有理由必须重新组织或进行会影响插入性能的页面拆分。将 LogDate 列作为聚集索引也应该有助于提高搜索性能。
请让我知道我的推理是否正确。谢谢!
最佳答案
是的,您的推理是正确的,前提是插入速率远小于 datetime
( 3.33ms) 的粒度
SQL Server 2008 有一个新的数据类型,DATETIME2
,具有更高的精度(100 纳秒)。
如果您留下合理数量的可用空间(FILLFACTOR 在 80-90 之间),并定期(每周一次)重建索引,一切都应该很好。
关于sql-server - 需要有关为日志记录表选择聚簇索引的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1113220/
我是一名优秀的程序员,十分优秀!