静态数据库数据应该在自己的文件组中吗?

时间:2009-04-14 01:03:35

标签: sql-server database-design sql-server-2008 filegroup physical-design

我正在创建一个新的数据库并拥有一堆不会改变的静态数据。如果是这样,那将是一个手动过程,很少发生。

这些数据是varchars和Geographies的混合。

我猜它总共可能在100K左右,超过4个左右。

问题

  1. 我应该将它们放在READ ONLY文件组
  2. 我可以在设计器中创建表并在创建期间定义文件组吗?或者只能通过脚本?
  3. 一旦数据在表格中(在只读文件组中),我可以稍后更改吗?这样做真的很难吗?
  4. 感谢。

3 个答案:

答案 0 :(得分:3)

由于各种原因,VLDB(非常大的数据库)是值得的。 对于100,000行或100 KB,我不会打扰。

这篇SQL Server support engineering team文章讨论了一个相关的“城市传说”。

在考虑多个文件/文件组之前,还有另一个(无法找到)需要300 GB - 1B数据的地方。

但是,要具体回答

  1. 个人选择(没有硬性规定)
  2. 是(编辑:)在SSMS 2005设计模式中,转到索引/密钥,“数据空间规范”。数据存在于聚簇索引所在的位置。如果没有聚集索引,那么您只能通过CREATE TABLE (..) ON filegroup
  3. 来完成
  4. 是的,但您必须ALTER DATABASE myDB MODIFY FILEGROUP foo READ_WRITE以单用户独占模式使用数据库

答案 1 :(得分:1)

将数据放入只读空间不太可能会受到伤害,但我不确定您是否会获得显着增益。只读文件组(或Oracle中的表空间)可以为您提供2个优势;每次进行完整备份时都需要备份,并且对数据的安全性更高(例如,不能通过错误更改,通过其他工具访问数据库等)。对于备份窗口紧张的较大DB,备份优势最为明显,因此在排除文件组时花费少量精力是很有价值的。安全性取决于站点的性质,数据等(如果您确实从常规备份中排除了只读空间,请确保在任何保留的备份磁带上获得副本。我倾向于备份只读空间一次一个月。)

我对设计师并不熟悉。

改为往返只读是不繁琐的。

答案 2 :(得分:1)

我认为你在这里读到的任何内容都可能是猜测,除非你有任何证据证明它已被实际尝试和推荐 - 对我来说它看起来像一个新颖但不太可能的想法。你有理由怀疑传统做法不能令人满意吗?试一试并发现它应该相当容易。如果你有机会发布你的结果。