我正在将一个数据库从MySQL迁移到SQLServer。在创建数据库时,我应该将初始大小设置为多少?我知道导入的数据库大小约为130MB,但会不断增长。初始大小应该是130MB还是只需采用默认的2MB?
我正在将一个数据库从MySQL迁移到SQLServer。在创建数据库时,我应该将初始大小设置为多少?我知道导入的数据库大小约为130MB,但会不断增长。初始大小应该是130MB还是只需采用默认的2MB?
将其设置为至少与当前大小相同,可能还要有一个不错的缓冲区以便在迁移期间进行即时增长。根据增长率,我会这样做:
初始大小:150MB(如果大小不是问题,则为200MB)
自动增长:是
自动增长大小:从5MB到25MB不等(取决于您的增长预期)
USE MASTER;
GO
CREATE DATABASE StackOverflowDatabase
ON
( NAME = 'StackOverflowDatabase',
FILENAME = 'C:\Program Files\Microsoft SQL Server\Your version\MSSQL\DATA\SO_db.mdf',
SIZE = 200MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 50MB )
LOG ON
( NAME = 'StackOverflowDatabase_log',
FILENAME = 'C:\Program Files\Microsoft SQL Server\Your version\MSSQL\DATA\SO_db.ldf',
SIZE = 20MB,
MAXSIZE = 50MB,
FILEGROWTH = 10MB ) ;
GO
使用50 MB自动增长的200 MB是正确的解决方案。请记得为tempdb使用单独的驱动器,如果可能的话,将日志与数据放在不同的磁盘上以获得更好的性能。此外,请记住,您的数据可能是130 MB,但您还需要考虑索引以及它们将消耗多少空间。另外,即使您有一个200MB的数据文件,您的备份文件也会小得多,这通常是讨论像这样的小型数据库时真正的空间问题所在。
你需要了解的一件事是数据库增长的速度有多快。
如果增长率很小(比如每周1 MB),
对于MDF文件,
将初始大小设置为200 MB
将自动增长设置为100 MB(即初始大小的50%)
对于LDF文件,
将初始大小设置为20-50 MB(即MDF文件初始大小的10-25%)
将自动增长设置为10-25 MB(即LDF文件初始大小的50%)
避免使用百分比进行自动增长,因为它是不可预测的。例如,如果您为自动增长指定百分比,并且DB大小增长到300MB,则意味着30 MB。如果您的DB大小增长到500 MB,则意味着50 MB。另一方面,如果您使用MB,则可以确保DB始终按照您设置的MB数量增长。
sp_spaceused
或其他方法来检查数据库文件的大小,并在自动增长发生之前通知您,以便您可以在方便的时间手动执行此操作。 - Chris Diver