SQL Server 将 mdf 拆分为多个文件

4 performance sql-server-2008 sql-server datafile

我有一个example.mdf总大小为 1GB的数据库,它存在性能问题。我检查了分配的硬件,它高于要求,我仔细检查了设计,一切看起来都正常,当我查看.mdf物理位置 ( C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\example.mdf)中的文件时,我发现数据库被拆分为多个文件example_1.mdf, example_2.mdf, example_3.mdf, 直到example_7.mdf.

我在同一 SQL Server 上有另一个具有相同问题的数据库文件。

为什么会发生这种情况?这会影响性能吗?如何防止或阻止 SQL Server 拆分我的.mdf文件?此外,我需要合并回已经拆分的文件。

mrd*_*nny 8

创建数据库的人是故意这样做的。假设所有数据库文件都属于同一文件组(数据库属性会告诉您这一点),那么您需要做的就是使用 EMPTYFILE 参数执行 DBCC SHRINKFILE。

DBCC SHRINKFILE (Example_1, EMPTYFILE)
GO
ALTER DATABASE MyDatabase REMOVE FILE Example_1
GO
Run Code Online (Sandbox Code Playgroud)

对每个文件执行此操作,所有数据将被放回单个文件中。然后,您可以删除多余的文件。

现在很可能这不会损害您的性能,因此您需要继续调查您遇到性能问题的原因。