- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不是 DBA(“好!”,您很快就会想到。)
我有一个记录数据的表,其中包含这些特征和使用模式:
datetime
列,用于存储日志时间戳,其值不断增加且大部分(但仅大部分)是唯一的此外,目前有一个每日维护窗口,在此期间我可以进行表优化。
坦率地说,即使我对它建立了一点错误索引,我也不认为该表会对它所在的服务器构成挑战,但尽管如此,这似乎是一个询问有关 SQL Server 聚集索引的一些信息的好机会。
我知道聚集索引决定了实际表数据的存储(数据存储在索引本身的叶节点中),而非聚集索引是指向数据的单独指针。因此,在查询方面,聚集索引将比非聚集索引更快——一旦我们找到索引值,数据就在那里。插入和删除都会产生成本(当然,更改聚集索引列的值的更新成本会特别高)。
但我读过in this answer删除留下的间隙,除非重建索引,否则这些间隙不会被清理。
所有这些都表明我应该:
我是不是太离谱了?我是否需要像这样频繁地重建索引以避免大量空间浪费?还有其他明显的(对于 DBA 来说)我应该做的事情吗?
提前致谢。
最佳答案
与许多人认为的相反,在表上拥有良好的聚集索引实际上可以使 INSERT 等操作更快 - 是的,更快!
查看开创性的博客文章 The Clustered Index Debate Continues....作者:Kimberly Tripp - 终极索引女王。
她提到(大约在文章中间):
Inserts are faster in a clustered table (but only in the "right" clustered table) than compared to a heap. The primary problem here is that lookups in the IAM/PFS to determine the insert location in a heap are slower than in a clustered table (where insert location is known, defined by the clustered key). Inserts are faster when inserted into a table where order is defined (CL) and where that order is ever-increasing.
关键点是:只有使用正确的聚集索引,您才能获得好处 - 当聚集索引是唯一的、狭窄的、稳定的并且最佳地不断增加时。最好使用 INT IDENTITY 列来实现这一点。
Kimberly Tripp 还有一篇很棒的文章,介绍如何为表选择最佳的聚类键,以及它应该满足什么标准 - 请参阅她的文章,标题为 Ever-increasing clustering key - the Clustered Index Debate..........again!
如果您有这样的专栏 - 例如代理主键 - 将其用作集群键,您应该会在表上看到非常好的性能 - 即使在大量 INSERT 上也是如此。
关于sql-server - 在日志表上不断增加的日期时间列上聚集索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217746/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!