Tối thiểu, cơ sở dữ liệu SQL Server có hai tệp hệ điều hành; tệp dữ liệu và tệp nhật ký.
Tệp dữ liệu giữ dữ liệu thực tế trong cơ sở dữ liệu, cũng như các đối tượng như bảng, chỉ mục, thủ tục được lưu trữ và dạng xem. Tệp nhật ký chứa thông tin cần thiết để khôi phục tất cả các giao dịch trong cơ sở dữ liệu.
Khi bạn tạo cơ sở dữ liệu bằng các tùy chọn mặc định, cả hai tệp này đều được tạo. Các tệp này được tạo trong nhóm tệp chính. Nhóm tệp này chứa tệp dữ liệu chính và bất kỳ tệp phụ nào không được đưa vào nhóm tệp khác. Vì vậy, nhóm tệp chính là nhóm tệp mặc định (trừ khi nó được thay đổi bằng cách sử dụng ALTER DATABASE
tuyên bố).
Khi bạn tạo nhiều tệp dữ liệu, bạn cũng có tùy chọn nhóm chúng thành một nhóm tệp do người dùng xác định. Điều này cho phép bạn nhóm các tệp một cách hợp lý thành nhóm tệp của riêng chúng mà bạn đã tạo. Nhóm tệp này sau đó sẽ tồn tại ngoài nhóm tệp chính. Các đối tượng cơ sở dữ liệu sẽ vẫn còn trong nhóm tệp chính.
Bài viết này trình bày cách tạo nhóm tệp do người dùng xác định và thêm một số tệp dữ liệu vào đó.
Ví dụ
Dưới đây là một ví dụ về việc sử dụng T-SQL để thêm nhóm tệp vào cơ sở dữ liệu hiện có:
USE master GO ALTER DATABASE Solutions ADD FILEGROUP Solutions1Filegroup1; GO ALTER DATABASE Solutions ADD FILE ( NAME = Solutions_dat_2, FILENAME = 'D:\mssql\data\Solutions_dat2.ndf', SIZE = 10MB, MAXSIZE = 100MB, FILEGROWTH = 5% ), ( NAME = Solutions_dat_3, FILENAME = 'D:\mssql\data\Solutions_dat3.ndf', SIZE = 10MB, MAXSIZE = 100MB, FILEGROWTH = 5% ) TO FILEGROUP Solutions1Filegroup1; GO
Ví dụ này tạo một nhóm tệp có tên là Solutions1Filegroup1
và thêm hai tệp dữ liệu vào đó. Chúng tôi chỉ định những điều thông thường cho mỗi tệp, chẳng hạn như tên logic, đường dẫn tệp vật lý, kích thước, v.v.
Giả định với ví dụ này là đã có một tệp dữ liệu được gọi là Solutions_dat_1
. Do đó, chúng tôi đặt tên các tệp này giống nhau, nhưng chỉ tăng số lượng cho mỗi tệp.
Ngoài ra, trong ví dụ này, chúng tôi đặt tên nhóm tệp như thể nó chỉ là một trong nhiều nhóm. Chúng tôi có thể tạo nhiều nhóm tệp nếu được yêu cầu và nếu có, chúng tôi có thể muốn có một quy ước đặt tên giúp dễ dàng phân biệt giữa từng nhóm tệp.
Xem nhóm tệp
Bạn có thể xem các nhóm tệp cho một cơ sở dữ liệu nhất định bằng cách truy vấn sys.filegroups
xem danh mục.
Ví dụ:
USE Solutions; SELECT name, type_desc FROM sys.filegroups;
Kết quả:
name type_desc -------------------- -------------- PRIMARY ROWS_FILEGROUP Solutions1Filegroup1 ROWS_FILEGROUP
Bạn cũng có thể sử dụng dấu hoa thị (*) để trả về tất cả các hàng nếu được yêu cầu.