今天我有一个相对较小的数据库,我期待在未来几个月我的数据库大小将大幅增长。 db分辨率越大,我应该采取哪些措施以获得更好的性能? 在这种情况下,将我的数据库的主文件组拆分为多个二次解决我的问题? 请指教。
将数据库分割到多个文件组允许您利用放置文件组的每个物理设备/path的I / O带宽。 将多个文件组放在同一个物理磁盘/ LUN上并不会带来任何好处,但将它们放在多个磁盘/ LUN上可以为您提供单个磁盘/ LUN的多个带宽(只要底层的物理连接允许)。
您可以获得非常详细的信息,将数据库的部分内容存储到较慢的“近线”types的媒体中,并将较高的活动片段(使用率很高的索引,表格等)保存到成本较高的较快存储中。
随着数据库变大,取决于您的devise,您不一定会得到明显更差的性能。 一个好的索引策略可以允许底层数据库的增长,而不会显着增加查询时间。 如果确实发现托pipe文件组的I / O饱和,那么在addt'l磁盘/ LUN上添加addt'l文件组可以提高性能。 决定是否有多个文件组将帮助您的关键是要监视I / O性能。 多个文件组将不会做任何事情来帮助你,如果你是CPU绑定或窒息RAM。 文件组只是真正帮助I / O利用率,这只是综合性能监控的一个方面。
埃文很好的回答。 但是,除了I / O之外,使用多个文件组还有其他好处。 查看关键指标列表中的这篇文章,以移至多个文件组: 在SQL Server数据库中使用多个文件组