我是一名软件开发人员,但是这个月我要做一些数据库pipe理任务。 关于如何拆分数据库,我有一些知识空白,这里是我的第一个问题:
另外我还有一个SAN,用于事务日志的RAID1磁盘和用于数据库文件的RAID6磁盘。
我的问题是,用这个数据库configuration,我必须为每个文件组创build一个文件? 是否正确的文件组configuration? 有任何性能泄漏?
提前致谢
这个数据库有多大? 它可能会看到多lessstream量?
我们的SQL服务器数据库都没有达到需要多个文件的数据和一个日志。
正如doug_w所说的,testing各种configuration并查看它们的性能。 但要记住,不要过度使用维护,只是因为简单的平均时间为0.1秒,平均响应时间会快10%。
编辑:在您的评论给予大小和用户号码后。 我的感觉是,你如何分割数据将取决于他们在做什么。 他们是否会碰到同样的桌子,还是他们都打到了大部分牌桌,还是相当随机的分配? 如果所有的用户都有可能碰到同一张桌子,那么可以select一些或者最多。 那么我的第一个testingconfiguration是将数据全部放在一个磁盘上的一个文件中。 显然,这只是一个开始,所以仍然需要testing。
此外,只是注意到你说你已经有一个RAID 6的数据。 你可以改变,如在2个独立arrays。 如果所有文件在同一组主轴上,那么将数据库拆分成单独的文件组将不会获得性能提升。 如果您遇到一组磁盘,那么跨文件组拆分数据库的唯一原因是为了便于维护。 像备份这样的事情可以在文件组级别完成,所以如果将所有频繁更改的数据分组到一个文件组中,则可以更频繁地将其备份,而不必备份静态数据。
同样,这取决于你的备份策略,如果你没有非常紧缩的恢复期限,那么你可能会满意于每晚的完整备份,而只是在白天进行备份。
如果你指定的目的,你可能会得到更好的答案,但这里给你一些关于这个问题的一般信息: 使用文件和文件组 。
每个文件组中至less需要一个文件。 如果将多个文件添加到文件组,sql服务器将根据文件大小(仅数据文件,不同的日志文件)按比例使用这些文件。
频繁join独立文件组中的表可以提高性能。
testingtestingtesting。
HTH