我现在正在将我公司的数据库服务器从Windows 2000 / Sql Server 2000更改为Windows 2003 R2 / Sql Server 2005。 它拥有30个数据库,每个数据库大小约7GB,其中一个是30GB。 现在我想知道是否应该利用这个机会在这个数据库上使用文件组。 但是我以前从来没有用过,我不知道那个数据库的内容好不好。 但这是一个经济体系,所以我觉得在过去八年的生产中,它有很多历史的“只读”信息。
任何人都可以给我一些提示和提示,如果我应该分裂或不? 我现在有2个独立的磁盘,一个用于日志文件,一个用于数据库。
我会很感激,如果有人可以给我一些input:)
您想要将数据库拆分为多个文件组,或将多个文件添加到现有的主文件组?
在第一种情况下,您需要将对象(表,索引)移动到新添加的文件组中,否则它将保持为空。 这样做需要您对所述对象的使用模式有非常好的理解,以便您可以确定哪些对象在哪里。 之后的优势是您将能够根据访问方式将文件组分配到不同的IOpath(单独的磁盘/ LUN)。 另一个优点是,您可以pipe理备份/恢复的更细粒度,允许您进行零碎恢复,并允许您进行单个文件组备份。 我会说在数据库中分配文件组是一个devise时间的决定,现在对你来说有点迟了。
第二种情况下,只需将更多文件添加到PRIMARY文件组,以便将IO分散到多个磁盘。 除非你真的有IO问题,并且你有多个IOpath(即单独的磁盘/arrays/ LUN来放置文件),添加多个文件没有什么优势。 您可能会遇到build议,build议将数据库分成N个相同大小的文件,其中N是CPU内核的数量,但是由于SQL 2005/2008处理SGAM / GAM分配争用比SQL 2000好得多,需要拆分。
从你对问题和环境的描述中,我坦率地看到没有理由做任何分裂:你不打算做任何恢复计划,以允许零食恢复(除了它仅有的30Gb,这是相当小的),无论如何,你只有一个磁盘,所以多个文件没有优势。
如果将数据库拆分为文件组,则不会获得太多性能,因为您只有两个专用磁盘,而您已经需要一个用于您的超文本logging的磁盘。
我不会分裂它。
这里是关于文件组的信息 。 如果您将它们放置在单独的驱动器上,它们只会提高性能。 文件组的另一个用途是隔离只读表并且只能备份活动文件组。