相关疑难解决方法(0)

何时应该将非聚集索引存储在单独的文件组中?

我听说将索引存储在不同的文件组和驱动器上可以提高数据库的性能,因为驱动器不必在索引和索引引用的数据之间来回切换。我也听说这是一个神话。

何时将非聚集索引存储在单独的文件组和驱动器上是可取的?哪些性能/分析器证据会导致我得出该结论?硬件是否在决策中起作用(是否在单个驱动器上使用 RAID/SAN)?

index sql-server

16
推荐指数
3
解决办法
1万
查看次数

SQL Server 分区与单独文件组上的索引

我正要开始练习重新组织分区表,我一直在寻找最佳实践或建议。

假设我有 10 亿行表和 8 个逻辑磁盘可用于该表。

我的问题是,创建一个将数据划分为 8 个文件组并使索引存储与数据对齐的分区方案是否更好...

或者最好为数据创建 4 个文件组,为索引创建 4 个文件组(未对齐),然后将每个文件组放在一个逻辑磁盘上?

欢迎任何建议或意见。

sql-server

6
推荐指数
1
解决办法
3027
查看次数

将大量表移动到不同的文件组

现有数据库在 PRIMARY 文件组中存储了大量表。我想根据表名的“前缀”自动将这些表及其索引移动到不同的文件组上。

例如,有 5 个表命名如下:

ABC_XXXX
ABC_YYYY
DEF_ZZZZ
DEF_TTTT
GHI_UUUU
Run Code Online (Sandbox Code Playgroud)

ABC应将开头的所有表移到文件组FG1DEF文件组FG2和其他表到文件组DEFAULT

这可以使用以下命令完成CREATE INDEX

CREATE (UNIQUE|CLUSTERED|) INDEX <Index Name> ON <Table Name>(<Index Columns>)
       WITH (DROP_EXISTING = ON) ON <New Filegroup>
Run Code Online (Sandbox Code Playgroud)

这个命令最大的问题是按正确的顺序检索每个索引的列。

sql-server-2005 sql-server-2008 sql-server

6
推荐指数
1
解决办法
1万
查看次数