我有一个 SQL Server 2008 数据库,它的数据文件大小约为 2GB,但日志文件超过 8GB。对于 2008 之前的数据库,我可以使用“备份日志”和该TRUNCATE_ONLY选项,但 2008 及更高版本的数据库不再提供此选项。
我确实有一个截断日志文件的脚本:
USE [MyDatabase]
GO
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC shrinkfile('MyDatabase_log', 1)
ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT
GO
Run Code Online (Sandbox Code Playgroud)
这会完全截断日志文件,但我的问题是:这会影响性能吗?
我每天执行两次完整备份,因此就数据前滚而言,日志实际上不是必需的。
我好像记得前段时间读过一篇文章说我可以将一个 SQL Server 数据库拆分成多个文件,请允许我详细说明。
我有一个数据库,里面有十几个表,这些表反映了过去 'n' 年的统计数据。该表称为History2007,History2008等和当年的表就被称为History。前几年的所有表都包含静态数据(不会更改),我想将这些文件移动到链接到主数据库的另一个文件中。随着旧的数据表中包含外键Articles,Clients而Suppliers等我不能只是这些表复制到一个新的数据库。
整个想法是减少数据库和备份的大小,因为我可以对“旧”数据进行一次备份,并且直到明年才会改变。
有什么想法吗?想法?指导?
谢谢,马丁。