问题标签 [filegroup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
15701 浏览

sql-server - 为什么我们需要 SQL Server 中的辅助数据文件?

在 SQL Server 2005 上创建新数据库时,我总是忽略此选项,只是因为我们可以忽略不了解的内容并保持原样。(我不太喜欢 DBA)

所以现在我很好奇它是关于什么的。

根据您的经验,您认为我们什么时候需要将辅助数据文件添加到我的数据库中,我们为什么需要它?

0 投票
3 回答
2154 浏览

sql-server - SQL Server 文件组在大型 INSERT INTO 语句期间已满

考虑一个设计用于将行从一个表复制到 SQL 2000 数据库中的另一个的 SQL 脚本。传输涉及 750,000 行,简单来说:

这是一个长期运行的查询,部分原因可能ColB是它的类型为ntext. 语句中有一些CONVERT()操作。SELECT

困难在于大约 15 分钟的操作后,SQL Server 会引发此异常。

无法为数据库 '[DB]' 中的对象 '[TABLE]'.'[PRIMARY_KEY]' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

更多信息

  • 自动增长已经开始。
  • 磁盘上有足够的可用空间(~20gb)
  • 单个 .mdf 约为 6gb
  • 源表或目标表上没有触发器

替代文字

替代文字 问题

需要通过 Management Studio 或通过 T-SQL 设置哪些选项以允许数据库根据需要增长?你会建议什么其他补救措施?

解析度

db 无法按需增长,因为我在 SQL Server 2008 Express实例上托管此数据库。升级到非绝育版本的 SQL Server 将解决此问题。

替代文字

0 投票
10 回答
140260 浏览

sql-server-2008 - SQL Server 2008 Standard 中的“主文件组已满”,原因不明

我们的数据库目前为 64 Gb,我们的一个应用程序开始失败并出现以下错误:

System.Data.SqlClient.SqlException: 无法为'cnv.LoggedUnpreparedSpos'.'PK_LoggedUnpreparedSpos'数据库中的对象分配空间,'travelgateway'因为'PRIMARY'文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

我仔细检查了所有内容:允许单个文件组中的所有文件以合理的增量自动增长(数据文件为 100 Mb,日志文件为 10%),超过 100 Gb 的可用空间可用于数据库,tempdb是设置为自动增长以及驱动器上有足够的可用硬盘空间。

为了解决问题,我将第二个文件添加到文件组中,并且错误消失了。但我对整个情况感到不安。

问题出在哪里,伙计们?

0 投票
1 回答
1401 浏览

sql-server - SQL Server 中的自动文件组迁移

最近,我一直在尝试重组一个没有设计文件组(只是默认PRIMARY)的旧数据库,并且除其他外,将一堆表移动到Data位于 SAN 上的新文件组。我知道如何迁移数据:

但该死的,如果这不是我曾经做过的最乏味的工作。而且很容易出错。有一次,在我意识到我不小心在 PK 中包含了一个值列之前,我移动了一个 30 GB 表的一半(我假设,因为没有进度指示器)。所以我不得不重新开始。

当表有很多依赖时,情况会更糟。然后我不能只删除主键;我必须删除并重新创建每个引用它的外键。这导致了数百行样板代码;乘以 100 个表,它就变得非常愚蠢。我的手腕受伤了。

有没有人想出一个捷径呢?是否有任何工具(以一次性使用的概念定价)可以做到这一点?也许这里的某个人之前必须经历过这个过程并编写了他们自己不介意分享的工具/脚本?

SSMS 显然不会这样做 - 它只能为非聚集索引生成迁移脚本(并且它们必须是索引,而不是UNIQUE约束 - 至少在几个表上,无论好坏,聚集索引实际上并不是主键,这是一个不同的UNIQUE约束)。

并不是语法太复杂以至于我无法为它编写代码生成器。至少对于基本的 drop-and-recreate-the-primary-key 部分。但是加上计算所有依赖项并为所有外键生成删除/重新创建脚本的开销,这开始感觉它刚刚超过那个阈值,在这个阈值中,自动化和全面测试的工作量比只做每个表的工作量要多与上面的示例一样手动。

所以,问题是:这个过程可以以任何相当直接的方式自动化吗? 我上面写的还有其他选择吗?

谢谢!

0 投票
10 回答
87874 浏览

sql-server - 如何将表移动到 MS SQL Server 中的另一个文件组?

我有SQL Server 2008 Ent两张OLTP database大桌子。如何在filegroup不中断服务的情况下将这些表移动到另一个表?现在,这些表中每秒插入大约 100-130 条记录和更新 30-50 条记录。每张表大约有100M条记录和6个fields(包括一个字段geography)。

我正在 Google 中寻找解决方案,但所有解决方案都包含

创建第二个表,从第一个表插入行,删除第一个表等

我可以使用分区函数来解决这个问题吗?

0 投票
3 回答
2038 浏览

sql - 如何在 SQL Server 中使用变量指定文件组

我想在升级 SQL Server 数据库期间更改表以添加约束。

此表通常在名为“MY_INDEX”的文件组上建立索引 - 但也可能在没有此文件组的数据库上。在这种情况下,我希望在“PRIMARY”文件组上完成索引。

我尝试了以下代码来实现这一点:

但是,最后一行失败,因为它似乎无法通过变量指定文件组。

这可能吗?

0 投票
3 回答
21346 浏览

sql-server - 将所有非聚集索引移动到 SQL Server 中的另一个文件组

在 SQL Server 2008 中,我想将数据库中的所有非聚集索引移动到辅助文件组。最简单的方法是什么?

0 投票
2 回答
518 浏览

sql-server - 如果在 SQL Server 2008 R2 上只有一个文件,那么在同一个驱动器上包含许多文件的文件组的性能会更好吗?

我有几个关于文件组及其文件 (.ndf) 的问题。

  1. 有很多文件的文件组比只有一个文件的文件组快吗?(所有文件都位于同一驱动器上,即其数据的访问时间相同)
  2. 如果(1)为假。具有许多文件分布在驱动器 A 和 B 上的文件组比只有一个文件位于驱动器 A 或 B 上的文件组更快?(假设驱动器 A 和 B 的型号相同)
0 投票
2 回答
4826 浏览

sql-server-2008 - 我可以根据鉴别器列将单个 SQL 2008 数据库表拆分为多个文件组吗?

我有一个 SQL Server 2008 R2 数据库,它有许多表。其中两张表包含大量数据..主要是因为其中一张是VARBINARY(MAX)和姐妹表是GEOGRAPHY。(为什么是两张桌子?如果您有兴趣,请阅读下文***)

这些表中的数据是地理空间形状,例如邮政编码边界。

现在,前 70K 奇数行用于DataType = 1 其余 500 万行用于DataType = 2

现在,是否可以将表数据拆分为两个文件?所以所有的行都DataType != 2进入File_ADataType = 2进入File_B

这样,当我备份数据库时,我可以跳过添加 File_B 以便我的下载更小?这可能吗?


我猜你可能在想 -> 为什么不把它们作为两张额外的桌子?主要是因为在代码中,数据在概念上是相同的..只是碰巧我想拆分这个模型数据的存储。如果我现在如何在我的模型中聚合两个而不是一个,那真的会弄乱我的模型。

***Entity Framework 不喜欢带有 的表GEOGRAPHY,所以我必须创建一个将转换为的新表GEOGRAPHYVARBINARY然后将其放入 EF。

0 投票
3 回答
1723 浏览

sql-server - SQL Server:更改索引的文件组(这也是一个PK)

我们正在对一组数据库进行清理,第一步是将数据库中的所有索引放入正确的文件组中。

目前,这些索引混合在 DATA 文件组和 INDEXES 文件组之间;他们都需要移动到 INDEXES 文件组。

我猜这可以在脚本中轻松完成,但是您如何最好地处理主键上的索引?

以下命令

产生错误:

索引“Answer.PK_Answer”上不允许使用显式 DROP INDEX。它被用于 PRIMARY KEY 约束强制执行。

那么最好的方法是什么?我是否需要删除主键,然后删除索引,然后重新创建主键,最后在正确的文件组上重新创建索引?这种方法有什么缺点吗?