我正在创建一个新数据库并拥有一堆不会改变的静态数据。如果是这样,这将是一个手动过程,而且很少发生。
该数据是 varchars 和 Geographies 的混合。
我猜它总共可能在 100K 左右,超过 4 张左右的桌子。
问题
- 我应该把这些放在只读文件组上吗
- 我可以在设计器中创建表并在创建期间定义文件组吗?还是只能通过脚本实现?
- 一旦数据在表中(在只读文件组上),我以后可以更改它吗?真的很难做到吗?
谢谢。
我正在创建一个新数据库并拥有一堆不会改变的静态数据。如果是这样,这将是一个手动过程,而且很少发生。
该数据是 varchars 和 Geographies 的混合。
我猜它总共可能在 100K 左右,超过 4 张左右的桌子。
谢谢。
出于各种原因,VLDB(非常大的数据库)是值得的。对于 100,000 行或 100 KB,我不会打扰。
这篇SQL Server 支持工程团队文章讨论了相关的“都市传说”之一。
在您应该考虑多个文件/文件组之前,还有另一个(找不到)需要 300 GB - 1B 的数据。
但是,要具体回答
CREATE TABLE (..) ON filegroup
ALTER DATABASE myDB MODIFY FILEGROUP foo READ_WRITE
在单用户独占模式下使用数据库将数据放入只读空间不太可能造成伤害,但我不确定您是否会获得显着收益。只读文件组(或 Oracle 中的表空间)可以为您带来 2 个优势;每次进行完整备份时备份更少,数据安全性更高(例如,无法通过错误更改,通过其他工具访问数据库等)。对于备份窗口很紧的大型数据库,备份优势最为明显,因此在排除文件组方面投入少量精力是很有价值的。安全性取决于站点、数据等的性质(如果您确实从常规备份中排除只读空间,请确保您在任何保留的备份磁带上获得副本。我倾向于备份只读空间一次一个月。)
我对设计师不熟悉。
在只读模式之间切换并不繁琐。
我认为你在这里读到的任何东西都可能是猜测,除非你有任何证据表明它已经过实际尝试和推荐——对我来说,这看起来像是一个新奇但不太可能的想法。你有什么理由怀疑传统的做法会不能令人满意吗?尝试一下并找出答案应该相当容易。如果有机会,请发布您的结果。