我在SQL Server 2012上有一个数据库,并且我遇到一些问题,一些表在一段时间后变得很慢,而且有助于重建索引.我想知道是否有人对其中任何一个可能出错的人提出建议,我将在下面发布他们的结构和索引.我自己没有构建这个结构,但可以完全修改.
表格1
索引:
表2
索引:
表3
索引:
向我说的一栏就是这一栏:
pk_Name (Clustered) [Name, fkID]
Run Code Online (Sandbox Code Playgroud)
聚簇键确定数据库表中记录的物理顺序.如果Name是字符串并且值以"随机"顺序插入(即并不总是按字母顺序排在表的末尾),则可能存在性能问题,因为数据库始终必须将行"插入"到物理表中.这可能导致表数据碎片化,这也可能降低性能.
重新构建聚簇索引还会重新组织物理数据,这可能是您之后看到性能提升的原因.重新计算统计信息也可能是一个因素,但导致非连续插入的主键通常是一个红旗.
您的定义也没有指定构成表2和表3上的聚簇索引的列,但是基于我假设它们被索引的名称ID.
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |