我一直在查看我们为客户端设置的新数据库服务器,并注意每次文件已满并且初始大小为100 MB时,数据库文件将设置为增长1兆。
我一直在考虑这一点,听起来不对。我已经检查了几个关于数据库考虑因素的网站,他们没有正确解释这些值。
我可能只想让数据库文件每月延长一次?
因此,如果我要计算每天预计要插入的数据量(以兆字节为单位),然后乘以30,我应该找到合适的数字?
即。我确实知道大约1行的大小和大约每行平均周插入的行数。我知道这些是从头开始估计的,所以你认为每月一次是文件扩展的合适近似值,或者最好每小时延长一次>?或永远不会?
我们正在使用完整版,因此我们可以恢复到某个时间点并发生事务日志备份,并且恢复过程似乎100%有效。这些类型的更改是否会以任何方式影响备份和恢复?
感谢。
答案 0 :(得分:3)
你提出的建议非常多。您希望自动增长基于您期望看到的内容。
每次充满时都会自动生成1Mb的数据库会遇到巨大的性能问题,因为每次数据库已满,无论正在进行什么事务,都必须暂停,直到它增长为止。
我正在尝试找一篇我之前读过的关于这个主题的文章,所以当我找到它时,我会添加一个链接......
编辑:http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1330922,00.html 这篇文章是关于缩小数据库的,但它详细说明了数据库自动增长时会发生什么,并显示它可能产生的性能影响。
你绝对不希望你的数据库像1Mb一样频繁增长!
答案 1 :(得分:2)
在我看来,我不会将数据库设置为以百分比增长,而是让数据库以100 MB的速度增长一周,然后将增长设置更改为一周增长,假设为5 GB。我们已经为此制定了系统。
否则,您可以获得技术性并查看每周向系统添加的记录数,考虑已归档或删除的记录,然后计算每条记录所需的空间量,并设置基于自动增长的记录在那个时候记录的数量。
我引导一个人远离百分比增长的原因是,当系统为1000 MB时,它将增长100 MB。然后,下一次,系统是1100 MB,并将增长我的110 MB。然后大小将是1210,数据库将增长到121 MB。然后大小将是1331,增长将是133 MB。由于这种不均衡的增长,很难计算剩余的磁盘空间以及何时需要重新调整最大设置。
离我2美分远。
此外,上面提到的默认增长是在MODEL数据库中设置的。在创建新数据库时,您的MODEL数据库设置的内容是新数据库中的默认值。
答案 2 :(得分:0)
对于尝试最小化数据库必须增长的次数,您通常是正确的。
我无法给你任何确切的值,但总是更好的是让数据库文件大小如此之大,你只需要偶尔增长它,然后它必须大大增加,这样你就不会经常更改文件大小。
答案 3 :(得分:0)
每次数据文件必须增长时,它会占用一些资源,因为它会占用额外的磁盘空间并扩展数据文件。因此,理想情况下,您希望限制增长数量。
就个人而言,我尝试确保我的数据库根本不需要自动增长。我试着在非工作时间主动发展它们。这也让我可以更好地监控磁盘空间,因为它不能轻易地“自动增长”;)
如果他们每个月自动生长一次就应该没事。每一分钟,您都可能会看到性能影响。
除了备份可能占用更多空间并填满备份位置之外,我无法想到任何会导致备份过程出现问题的原因。我更像是一个SQL开发人员而不是DBA,所以我不能发誓。
答案 4 :(得分:0)
除了一些冗余的分配空间外,大尺寸增量几乎没有或没有下降。将增量设置为每月或几个月会增长的大小是正确的。
在任何情况下,您都应该有一个常规作业来监视磁盘卷和文件中的可用空间并生成报告,以便您可以看到即将发生的磁盘短缺。
答案 5 :(得分:0)
我刚刚在SQL Server Management Studio 2008中检查过,当你创建一个新数据库时,默认增长是1MB ...这可能是你的1MB设置来自的地方(我打赌它在2005年是相同的)。
我记得很久以前读过,人们可以考虑在每次需要增长时将数据库文件设置为双倍。现在,如果你有一个5TB数据库,你可能不希望它只有一天加倍,但对于1GB大小的数据库来说,如果它需要的时候加倍可能会很酷(如果你有成长事件会有衰减率)具有恒定的数据输入率。)
当然,只是想根据你的情况提出我认为可行的策略。
答案 6 :(得分:0)
当我们不确定可能在一天或一周内添加的数据的实际大小时,可以将文件增长设置为百分比(最佳值为5%到10%)。在这种情况下,文件增长将与数据库的大小成比例。