데이터베이스 파일 및 파일 그룹Database Files and Filegroups

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 모든 SQL ServerSQL Server 데이터베이스에는 최소한 두 개의 운영 체제 파일인 데이터 파일과 로그 파일이 있습니다. At a minimum, every SQL ServerSQL Server database has two operating system files: a data file and a log file. 데이터 파일은 테이블, 인덱스, 저장 프로시저 및 뷰 등의 개체와 데이터를 포함합니다.Data files contain data and objects such as tables, indexes, stored procedures, and views. 로그 파일은 데이터베이스의 모든 트랜잭션을 복구하는 데 필요한 정보를 포함합니다.Log files contain the information that is required to recover all transactions in the database. 데이터 파일은 할당 및 관리를 간편하게 수행하기 위해 파일 그룹으로 그룹화할 수 있습니다.Data files can be grouped together in filegroups for allocation and administration purposes.

데이터베이스 파일Database Files

SQL ServerSQL Server 데이터베이스에는 다음 표에 설명된 것처럼 세 가지 유형의 파일이 있습니다. databases have three types of files, as shown in the following table.

파일File DescriptionDescription
Primary 주 데이터 파일은 데이터베이스의 시작 정보를 포함하며 데이터베이스의 나머지 파일을 가리킵니다.The primary data file contains the startup information for the database and points to the other files in the database. 사용자 데이터와 개체를 이 파일에 저장하거나 보조 데이터 파일에 저장할 수 있습니다.User data and objects can be stored in this file or in secondary data files. 모든 데이터베이스에는 하나의 주 데이터 파일이 있습니다.Every database has one primary data file. 권장되는 주 데이터 파일 확장명은 .mdf입니다.The recommended file name extension for primary data files is .mdf.
보조Secondary 보조 데이터 파일은 선택적으로 사용하는 사용자 정의 데이터 파일이며 사용자 데이터를 저장합니다.Secondary data files are optional, are user-defined, and store user data. 보조 파일은 각 파일을 서로 다른 디스크 드라이브에 배치하여 데이터를 여러 디스크에 분산시키는 데 사용할 수 있습니다.Secondary files can be used to spread data across multiple disks by putting each file on a different disk drive. 또한 데이터베이스가 단일 Windows 파일의 최대 크기를 초과할 경우 보조 데이터 파일을 사용하여 데이터베이스 크기를 계속해서 늘릴 수 있습니다.Additionally, if a database exceeds the maximum size for a single Windows file, you can use secondary data files so the database can continue to grow.

권장되는 보조 데이터 파일 확장명은 .ndf입니다.The recommended file name extension for secondary data files is .ndf.
트랜잭션 로그Transaction Log 트랜잭션 로그 파일은 데이터베이스 복구에 사용되는 로그 정보를 저장합니다.The transaction log files hold the log information that is used to recover the database. 데이터베이스마다 최소한 하나의 로그 파일이 있어야 합니다.There must be at least one log file for each database. 권장되는 트랜잭션 로그 파일 확장명은 .ldf입니다.The recommended file name extension for transaction logs is .ldf.

예를 들어 모든 데이터와 개체를 하나의 주 파일에 저장하고 트랜잭션 로그 정보를 로그 파일에 저장하는 Sales 라는 단순한 데이터베이스를 만들 수 있습니다.For example, a simple database named Sales can be created that includes one primary file that contains all data and objects and a log file that contains the transaction log information. 또는 한 개의 주 파일과 5개의 보조 파일을 포함하는 Orders 라는 더 복잡한 데이터베이스를 만들 수도 있습니다.Alternatively, a more complex database named Orders can be created that includes one primary file and five secondary files. 데이터베이스 내의 데이터와 개체는 6개의 파일에 분산되고 트랜잭션 로그 정보는 4개의 로그 파일에 포함됩니다.The data and objects within the database spread across all six files, and the four log files contain the transaction log information.

기본적으로 데이터와 트랜잭션 로그는 동일한 드라이브와 경로에 배치됩니다.By default, the data and transaction logs are put on the same drive and path. 이것은 단일 디스크 시스템의 경우에 해당하며This is done to handle single-disk systems. 프로덕션 환경에서는 최적이 아닐 수도 있습니다.However, this may not be optimal for production environments. 데이터와 로그 파일은 서로 다른 디스크에 배치하는 것이 좋습니다.We recommend that you put data and log files on separate disks.

논리적 파일 이름과 물리적 파일 이름Logical and Physical File Names

SQL ServerSQL Server 파일은 다음과 같이 두 가지 파일 이름 형식을 가집니다. files have two file name types:

logical_file_name: logical_file_name은 모든 Transact-SQL 문에서 물리적 파일을 참조하는 데 사용되는 이름입니다.logical_file_name: The logical_file_name is the name used to refer to the physical file in all Transact-SQL statements. 논리적 파일 이름은 SQL ServerSQL Server 식별자 규칙을 따라야 하고 데이터베이스의 논리적 파일 이름 사이에서 고유해야 합니다.The logical file name must comply with the rules for SQL ServerSQL Server identifiers and must be unique among logical file names in the database. 이것은 ALTER DATABASENAME 인수에 의해 설정됩니다.This is set by the NAME argument in ALTER DATABASE. 자세한 내용은 ALTER DATABASE 파일 및 파일 그룹 옵션(Transact-SQL)을 참조하세요.For more information, see ALTER DATABASE File and Filegroup Options (Transact-SQL).

os_file_name: os_file_name은 디렉터리 경로를 포함하는 물리적 파일의 이름입니다.os_file_name: The os_file_name is the name of the physical file including the directory path. 이 이름은 운영 체제 파일 이름의 규칙을 따라야 합니다.It must follow the rules for the operating system file names. 이것은 ALTER DATABASEFILENAME 인수에 의해 설정됩니다.This is set by the FILENAME argument in ALTER DATABASE. 자세한 내용은 ALTER DATABASE 파일 및 파일 그룹 옵션(Transact-SQL)을 참조하세요.For more information, see ALTER DATABASE File and Filegroup Options (Transact-SQL).

중요

FAT 또는 NTFS 파일 시스템에 SQL ServerSQL Server 데이터 파일과 로그 파일을 배치할 수 있습니다. SQL ServerSQL Server data and log files can be put on either FAT or NTFS file systems. Windows 시스템에서는 보안상 NTFS 파일 시스템을 사용하는 것이 좋습니다.On Windows systems, we recommend using the NTFS file system because the security aspects of NTFS.

경고

읽기/쓰기 데이터 파일 그룹과 로그 파일은 NTFS 압축 파일 시스템에 배치할 수 없습니다.Read/write data filegroups and log files cannot be placed on an NTFS compressed file system. 읽기 전용 데이터베이스와 읽기 전용 보조 파일 그룹만 NTFS 압축 파일 시스템에 배치할 수 있습니다.Only read-only databases and read-only secondary filegroups can be put on an NTFS compressed file system. 공간을 절약하기 위해 파일 시스템 압축 대신 데이터 압축을 사용하는 것이 좋습니다.For space savings, it is highly recommended to use data compression instead of file system compression.

여러 SQL ServerSQL Server 인스턴스가 단일 시스템에서 실행될 때 각 인스턴스는 해당 인스턴스에서 생성된 데이터베이스에 대한 파일을 보관할 수 있는 서로 다른 기본 디렉터리를 받습니다.When multiple instances of SQL ServerSQL Server are running on a single computer, each instance receives a different default directory to hold the files for the databases created in the instance. 자세한 내용은 SQL Server 기본 인스턴스 및 명명된 인스턴스의 파일 위치참조하세요.For more information, see File Locations for Default and Named Instances of SQL Server.

데이터 파일 페이지Data File Pages

SQL ServerSQL Server 데이터 파일의 페이지는 첫째 페이지가 0으로 시작하여 순차적으로 번호가 매겨집니다.Pages in a SQL ServerSQL Server data file are numbered sequentially, starting with zero (0) for the first page in the file. 데이터베이스의 파일마다 고유한 파일 ID 번호가 있습니다.Each file in a database has a unique file ID number. 데이터베이스에서 페이지를 고유하게 식별하려면 해당 파일 ID와 페이지 번호가 모두 필요합니다.To uniquely identify a page in a database, both the file ID and the page number are required. 다음 예에서는 4MB의 주 데이터 파일과 1MB의 보조 데이터 파일이 있는 데이터베이스의 페이지 번호를 보여 줍니다.The following example shows the page numbers in a database that has a 4-MB primary data file and a 1-MB secondary data file.

data_file_pages

각 파일의 첫 페이지는 파일의 특성에 대한 정보를 포함하는 파일 헤더 페이지입니다.The first page in each file is a file header page that contains information about the attributes of the file. 또한 파일 시작 부분의 다른 여러 페이지에도 할당 맵과 같은 시스템 정보가 포함됩니다.Several of the other pages at the start of the file also contain system information, such as allocation maps. 주 데이터 파일과 첫 번째 로그 파일에 모두 저장되는 시스템 페이지 중 하나는 데이터베이스의 특성에 대한 정보를 포함하는 데이터 부팅 페이지입니다.One of the system pages stored in both the primary data file and the first log file is a database boot page that contains information about the attributes of the database. 페이지 및 페이지 익스텐트 유형에 대한 자세한 내용은 페이지 및 익스텐트 아키텍처 가이드를 참조하세요.For more information about pages and page types, see Pages and Extents Architecture Guide.

파일 크기File Size

SQL ServerSQL Server 파일은 원래 지정된 크기에서 자동으로 증가할 수 있습니다. files can grow automatically from their originally specified size. 파일을 정의할 때 특정 증분을 지정할 수 있습니다.When you define a file, you can specify a specific growth increment. 파일이 가득 찰 때마다 증분에 따라 크기가 늘어납니다.Every time the file is filled, it increases its size by the growth increment. 한 파일 그룹에 여러 파일이 있을 경우 모든 파일이 가득 찰 때까지 파일은 자동으로 증가하지 않습니다.If there are multiple files in a filegroup, they will not autogrow until all the files are full. 그런 다음 비례 채우기을 사용하여 라운드 로빈 방식으로 증가합니다.Growth then occurs in a round-robin fashion using proportional fill.

각 파일의 최대 크기를 지정할 수도 있습니다.Each file can also have a maximum size specified. 최대 크기를 지정하지 않으면 파일은 디스크에서 사용 가능한 공간을 모두 사용할 때까지 계속 증가할 수 있습니다.If a maximum size is not specified, the file can continue to grow until it has used all available space on the disk. 이 기능은 사용자가 시스템 관리자에 편리하게 액세스할 수 없는 응용 프로그램에 포함된 데이터베이스로 SQL ServerSQL Server를 사용할 때 특히 유용합니다.This feature is especially useful when SQL ServerSQL Server is used as a database embedded in an application where the user does not have convenient access to a system administrator. 사용자는 필요에 따라 파일이 자동으로 증가하게 하여 데이터베이스의 사용 가능한 공간을 모니터링하고 추가 공간을 수동으로 할당하는 관리 작업을 줄일 수 있습니다.The user can let the files autogrow as required to reduce the administrative burden of monitoring free space in the database and manually allocating additional space.

SQL ServerSQL Server에 대해 인스턴트 파일 초기화(IFI)를 사용하는 경우 데이터 파일에 새 공간을 할당할 때 최소한의 오버헤드가 있습니다.If Instant File Initialization (IFI) is enabled for SQL ServerSQL Server, there is minimal overhead when allocating new space for data files.

트랜잭션 로그 파일 관리에 대한 자세한 내용은 트랜잭션 로그 파일의 크기 관리를 참조하세요.For more information on transaction log file management, see Manage the size of the transaction log file.

데이터베이스 스냅숏 파일Database Snapshot Files

데이터베이스 스냅숏에서 쓰기 시 복사 데이터를 저장하기 위해 사용하는 파일 형식은 사용자가 스냅숏을 만들었는지 또는 스냅숏이 내부적으로 사용되는지에 따라 달라집니다.The form of file that is used by a database snapshot to store its copy-on-write data depends on whether the snapshot is created by a user or used internally:

  • 사용자가 만든 데이터베이스 스냅숏은 하나 이상의 스파스 파일에 데이터를 저장합니다.A database snapshot that is created by a user stores its data in one or more sparse files. 스파스 파일 기술은 NTFS 파일 시스템의 기능입니다.Sparse file technology is a feature of the NTFS file system. 처음에는 스파스 파일에 사용자 데이터가 없으며 사용자 데이터에 대한 디스크 공간이 스파스 파일에 할당되어 있지 않습니다.At first, a sparse file contains no user data, and disk space for user data has not been allocated to the sparse file. 데이터베이스 스냅숏의 스파스 파일 사용 및 데이터베이스 스냅숏 증가 방법에 대한 자세한 내용은 데이터베이스 스냅숏 스파스 파일의 크기 보기를 참조하세요.For general information about the use of sparse files in database snapshots and how database snapshots grow, see View the Size of the Sparse File of a Database Snapshot.
  • 데이터베이스 스냅숏은 특정 DBCC 명령에 의해 내부적으로 사용됩니다.Database snapshots are used internally by certain DBCC commands. 이러한 명령에는 DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC, DBCC CHECKFILEGROUP 등이 있습니다.These commands include DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC, and DBCC CHECKFILEGROUP. 내부 데이터베이스 스냅숏은 원래 데이터베이스 파일의 스파스 대체 데이터 스트림을 사용합니다.An internal database snapshot uses sparse alternate data streams of the original database files. 스파스 파일과 마찬가지로 대체 데이터 스트림은 NTFS 파일 시스템의 기능입니다.Like sparse files, alternate data streams are a feature of the NTFS file system. 스파스 대체 데이터 스트림을 사용하면 파일 크기나 볼륨 통계에 영향을 주지 않고 여러 데이터 할당을 하나의 파일 또는 폴더와 연결할 수 있습니다.The use of sparse alternate data streams allows for multiple data allocations to be associated with a single file or folder without affecting the file size or volume statistics.

파일 그룹Filegroups

모든 데이터베이스에는 주 파일 그룹이 한 개씩 있습니다.Every database has a primary filegroup. 주 파일 그룹은 주 데이터 파일과 다른 파일 그룹에 배치되지 않은 보조 파일을 포함합니다.This filegroup contains the primary data file and any secondary files that are not put into other filegroups. 사용자 정의 파일 그룹을 만들어 데이터 파일을 그룹화함으로써 관리, 데이터 할당 및 배치를 간편하게 수행할 수 있습니다.User-defined filegroups can be created to group data files together for administrative, data allocation, and placement purposes.

예를 들어 3개의 파일(Data1.ndf, Data2.ndf 및 Data3.ndf)을 3개의 디스크 드라이브에 하나씩 만들어서 fgroup1이라는 파일 그룹에 할당할 수 있습니다.For example, three files, Data1.ndf, Data2.ndf, and Data3.ndf, can be created on three disk drives, respectively, and assigned to the filegroup fgroup1. 그런 다음 fgroup1파일 그룹에 한 개의 테이블을 만들 수 있습니다.A table can then be created specifically on the filegroup fgroup1. 이렇게 하면 해당 테이블의 데이터에 대한 쿼리가 3개의 디스크로 분산되므로 성능이 향상됩니다.Queries for data from the table will be spread across the three disks; this will improve performance. RAID(Redundant Array of Independent Disks) 스트라이프 세트에 단일 파일을 만들어 사용해도 이와 동일한 수준으로 성능이 향상될 수 있습니다.The same performance improvement can be accomplished by using a single file created on a RAID (redundant array of independent disks) stripe set. 그러나 파일과 파일 그룹을 사용하면 새 디스크에 새 파일을 쉽게 추가할 수 있습니다.However, files and filegroups let you easily add new files to new disks.

모든 데이터 파일은 다음 표에 나열된 파일 그룹에 저장됩니다.All data files are stored in the filegroups listed in the following table.

파일 그룹Filegroup DescriptionDescription
Primary 주 파일을 포함하는 파일 그룹.The filegroup that contains the primary file. 주 파일 그룹에는 모든 시스템 테이블이 할당됩니다.All system tables are allocated to the primary filegroup.
사용자 정의User-defined 사용자가 데이터베이스를 처음 만들 때 또는 나중에 수정할 때 만드는 파일 그룹Any filegroup that is specifically created by the user when the user first creates or later modifies the database.

기본 파일 그룹Default Filegroup

데이터베이스에서 개체를 만들 때 어떤 파일 그룹에 속하는지 지정하지 않으면 기본 파일 그룹에 할당됩니다.When objects are created in the database without specifying which filegroup they belong to, they are assigned to the default filegroup. 언제든지 정확하게 하나의 파일 그룹이 기본 파일 그룹으로 지정됩니다.At any time, exactly one filegroup is designated as the default filegroup. 기본 파일 그룹의 파일은 다른 파일 그룹에 할당되지 않은 모든 새로운 개체를 보관할 수 있을 만큼 크기가 커야 합니다.The files in the default filegroup must be large enough to hold any new objects not allocated to other filegroups.

PRIMARY 파일 그룹은 ALTER DATABASE 문을 사용하여 변경하지 않으면 기본 파일 그룹입니다.The PRIMARY filegroup is the default filegroup unless it is changed by using the ALTER DATABASE statement. 시스템 개체 및 테이블에 대한 할당은 새 기본 파일 그룹이 아니라 PRIMARY 파일 그룹에 남게 됩니다.Allocation for the system objects and tables remains within the PRIMARY filegroup, not the new default filegroup.

파일 및 파일 그룹 예File and Filegroup Example

다음 예에서는 SQL Server 인스턴스에서 데이터베이스를 만듭니다.The following example creates a database on an instance of SQL Server. 데이터베이스에는 주 데이터 파일, 사용자 정의 파일 그룹 및 로그 파일이 있습니다.The database has a primary data file, a user-defined filegroup, and a log file. 주 데이터 파일은 주 파일 그룹에 있으며 사용자 정의 파일 그룹에는 보조 데이터 파일이 두 개 있습니다.The primary data file is in the primary filegroup and the user-defined filegroup has two secondary data files. ALTER DATABASE 문을 통해 사용자 정의 그룹 파일이 기본 파일 그룹으로 지정됩니다.An ALTER DATABASE statement makes the user-defined filegroup the default. 그런 다음 사용자 정의 파일 그룹을 지정하여 테이블이 생성됩니다.A table is then created specifying the user-defined filegroup. (이 예에서는 일반 경로 c:\Program Files\Microsoft SQL Server\MSSQL.1 을 사용하여 SQL Server 버전 지정을 방지합니다.)(This example uses a generic path c:\Program Files\Microsoft SQL Server\MSSQL.1 to avoid specifying a version of SQL Server.)

USE master;
GO
-- Create the database with the default data
-- filegroup and a log file. Specify the
-- growth increment and the max size for the
-- primary data file.
CREATE DATABASE MyDB
ON PRIMARY
  ( NAME='MyDB_Primary',
    FILENAME=
       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_Prm.mdf',
    SIZE=4MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB),
FILEGROUP MyDB_FG1
  ( NAME = 'MyDB_FG1_Dat1',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_FG1_1.ndf',
    SIZE = 1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB),
  ( NAME = 'MyDB_FG1_Dat2',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB_FG1_2.ndf',
    SIZE = 1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB)
LOG ON
  ( NAME='MyDB_log',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\MyDB.ldf',
    SIZE=1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB);
GO
ALTER DATABASE MyDB 
  MODIFY FILEGROUP MyDB_FG1 DEFAULT;
GO

-- Create a table in the user-defined filegroup.
USE MyDB;
CREATE TABLE MyTable
  ( cola int PRIMARY KEY,
    colb char(8) )
ON MyDB_FG1;
GO

다음 그림에서는 위 예제의 결과를 요약하여 보여 줍니다.The following illustration summarizes the results of the previous example.

filegroup_example

파일 및 파일 그룹 채우기 전략File and Filegroup Fill Strategy

파일 그룹은 각 파일 그룹에 있는 모든 파일에 대해 균형 잡힌 채우기 전략을 사용합니다.Filegroups use a proportional fill strategy across all the files within each filegroup. 파일 그룹에 데이터를 쓸 때 SQL Server 데이터베이스 엔진SQL Server Database Engine은 첫 번째 파일이 꽉 찰 때까지 모든 데이터를 쓰는 대신 파일 그룹 내의 각 파일에 해당 파일의 사용 가능한 공간에 비례하는 양을 씁니다.As data is written to the filegroup, the SQL Server 데이터베이스 엔진SQL Server Database Engine writes an amount proportional to the free space in the file to each file within the filegroup, instead of writing all the data to the first file until full. 그런 후에 다음 파일에 씁니다.It then writes to the next file. 예를 들어 f1 파일에는 100MB의 빈 공간이 있고 f2 파일에는 200MB의 빈 공간이 있으면 f1 파일에서는 하나의 익스텐트가 할당되고 f2 파일에서는 두 개의 익스텐트가 할당되는 식입니다.For example, if file f1 has 100 MB free and file f2 has 200 MB free, one extent is allocated from file f1, two extents from file f2, and so on. 이렇게 하면 거의 동시에 두 파일이 꽉 차며 간단한 스트라이프가 수행됩니다.In this way, both files become full at about the same time, and simple striping is achieved.

파일 그룹의 모든 파일이 꽉 차는 즉시 SQL Server 데이터베이스 엔진SQL Server Database Engine은 라운드 로빈 방식으로 파일을 한 번에 하나씩 자동으로 확장하여 데이터를 추가합니다. 단, 이것은 데이터베이스가 자동으로 증가하도록 설정된 경우에만 해당합니다.As soon as all the files in a filegroup are full, the SQL Server 데이터베이스 엔진SQL Server Database Engine automatically expands one file at a time in a round-robin manner to allow for more data, provided that the database is set to grow automatically. 예를 들어 파일 그룹이 3개의 파일로 구성되고 모두 자동 증가하도록 설정되었다고 가정합니다.For example, a filegroup is made up of three files, all set to automatically grow. 파일 그룹에 속한 모든 파일의 공간이 꽉 차면 첫 번째 파일만 확장됩니다.When space in all the files in the filegroup is exhausted, only the first file is expanded. 첫 번째 파일이 꽉 차고 파일 그룹에 더 이상 데이터를 쓸 수 없게 되면 두 번째 파일이 확장됩니다.When the first file is full and no more data can be written to the filegroup, the second file is expanded. 두 번째 파일이 꽉 차고 파일 그룹에 더 이상 데이터를 쓸 수 없게 되면 세 번째 파일이 확장됩니다.When the second file is full and no more data can be written to the filegroup, the third file is expanded. 세 번째 파일이 꽉 차고 파일 그룹에 더 이상 데이터를 쓸 수 없게 되면 첫 번째 파일이 다시 확장되는 식입니다.If the third file becomes full and no more data can be written to the filegroup, the first file is expanded again, and so on.

파일 및 파일 그룹 디자인 규칙Rules for designing Files and Filegroups

다음 규칙은 파일과 파일 그룹에 적용됩니다.The following rules pertain to files and filegroups:

  • 파일이나 파일 그룹은 둘 이상의 데이터베이스에서 사용할 수 없습니다.A file or filegroup cannot be used by more than one database. 예를 들어 sales 데이터베이스의 데이터와 개체가 있는 sales.mdf 및 sales.ndf 파일은 다른 데이터베이스에서 사용할 수 없습니다.For example, file sales.mdf and sales.ndf, which contain data and objects from the sales database, cannot be used by any other database.
  • 파일은 한 파일 그룹의 멤버만 될 수 있습니다.A file can be a member of only one filegroup.
  • 트랜잭션 로그 파일은 파일 그룹의 일부가 될 수 없습니다.Transaction log files are never part of any filegroups.

권장 사항Recommendations

다음은 파일 및 파일 그룹 작업 시 일반적으로 권장되는 사항입니다.Following are some general recommendations when you are working with files and filegroups:

  • 대부분의 데이터베이스에는 하나의 데이터 파일과 하나의 트랜잭션 로그 파일만 있으면 됩니다.Most databases will work well with a single data file and a single transaction log file.
  • 여러 데이터 파일을 사용하는 경우 추가 파일에 대한 두 번째 파일 그룹을 만들고 해당 파일 그룹을 기본 파일 그룹으로 만듭니다.If you use multiple data files, create a second filegroup for the additional file and make that filegroup the default filegroup. 이렇게 하면 주 파일에는 시스템 테이블과 개체만 있게 됩니다.In this way, the primary file will contain only system tables and objects.
  • 성능을 극대화하려면 가능한 여러 개의 사용 가능한 디스크에 파일이나 파일 그룹을 만듭니다.To maximize performance, create files or filegroups on different available disks as possible. 디스크 공간이 많이 필요한 개체는 여러 파일 그룹에 배치합니다.Put objects that compete heavily for space in different filegroups.
  • 특정 물리적 디스크에 개체를 배치할 수 있도록 파일 그룹을 사용합니다.Use filegroups to enable placement of objects on specific physical disks.
  • 동일한 조인 쿼리에서 사용되는 여러 테이블은 여러 파일 그룹에 배치합니다.Put different tables used in the same join queries in different filegroups. 이렇게 하면 조인된 데이터에서 병렬 디스크 I/O 검색을 하기 때문에 성능이 향상됩니다.This will improve performance, because of parallel disk I/O searching for joined data.
  • 자주 액세스되는 테이블과 해당 테이블에 속한 비클러스터형 인덱스는 여러 파일 그룹에 배치합니다.Put heavily accessed tables and the nonclustered indexes that belong to those tables on different filegroups. 이렇게 하면 파일이 여러 물리적 디스크에 있을 경우 병렬 I/O가 수행되기 때문에 성능이 향상됩니다.This will improve performance, because of parallel I/O if the files are located on different physical disks.
  • 트랜잭션 로그 파일은 다른 파일 및 파일 그룹과 동일한 물리적 디스크에 배치하지 않습니다.Do not put the transaction log file(s) on the same physical disk that has the other files and filegroups.

트랜잭션 로그 파일 관리 권장 사항에 대한 자세한 내용은 트랜잭션 로그 파일의 크기 관리를 참조하세요.For more information on transaction log file management recommendations, see Manage the size of the transaction log file.

CREATE DATABASE(SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
ALTER DATABASE 파일 및 파일 그룹 옵션(Transact-SQL) ALTER DATABASE File and Filegroup Options (Transact-SQL)
데이터베이스 분리 및 연결(SQL Server)Database Detach and Attach (SQL Server)
SQL Server 트랜잭션 로그 아키텍처 및 관리 가이드 SQL Server Transaction Log Architecture and Management Guide
페이지 및 익스텐트 아키텍처 가이드 Pages and Extents Architecture Guide
트랜잭션 로그 파일의 크기 관리Manage the size of the transaction log file