【问题标题】:SQL Server Primary File Group full when tables set to use Secondary当表设置为使用辅助时,SQL Server 主文件组已满
【发布时间】:2015-02-04 09:08:35
【问题描述】:

我有一个包含两个文件组的数据库,第二个文件组(默认)用于数据库表。

由于某种原因,当我检查文件组大小时,主文件组仍用于存储所有数据,而辅助文件组似乎与其初始大小相同。

我通过查看表属性文件组字段仔细检查了这些表是否位于辅助文件组中。

为什么这个数据库还在使用主文件组?


附加信息。 我运行了@Vishal Gajjar 的引用脚本,该脚本确定一个表(最大的表)没有完全使用辅助文件组,因为它仍在使用“文本文件组”的主文件组。

【问题讨论】:

  • 使用这个query 并查看每个文件组中存储了哪些表/索引。
  • 默认FILEGROUP仅在您创建表或索引而不指定ON [FileGroupName]子句时适用
  • 我想另一种方法是将另一个数据库文件添加到 PRIMARY FILEGROUP。所以旧表的新行(实际上是页面)将被添加到新文件(在另一个磁盘上)。但是我不能告诉你数据库服务器将如何平衡这些文件的使用。当然,当您有两个文件组时,您拥有更多控制权(对于较慢的磁盘而言,不太重要的表)。

标签: sql-server database filegroup


【解决方案1】:

在数据库上指定的默认选项仅应用于更改选项后创建的对象。现有对象将保留其创建时的选项。

所以:

  • 在创建任何对象之前修改默认选项
  • 如果您没有执行第一个选项,或者逐个修改对象(或运行脚本)

正如您所提到的,您可以将“有限大小”列保留在文件组中,将“blob 列”(具有最大长度、文本、ntext 的列)保留在不同的文件组(文本文件组)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2021-03-01
    • 2019-12-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多