CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này giải thích chức năng của các file và nhóm file SQLserver 2005, được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm tới bài viết này thì nhớ like nhé.
1. Ý nghĩa và mối quan hệ của các tệp và nhóm tệp. Mỗi cơ sở dữ liệu có một tệp dữ liệu chính và một số tệp phụ. Các tập tin là hiện thân vật lý của cơ sở dữ liệu. Một nhóm tệp có thể bao gồm các tệp được phân phối trên nhiều phân vùng hợp lý để đạt được cân bằng tải. Nhóm tệp cho phép các tệp được nhóm lại để quản lý và phân phối/đặt dữ liệu dễ dàng hơn. Ví dụ: bạn có thể tạo ba tệp (Data1.ndf, Data2.ndf và Data3.ndf) trên ba ổ đĩa cứng và gán chúng vào nhóm tệp fgroup1. Sau đó, một bảng có thể được tạo rõ ràng trên filegroup fgroup1. Các truy vấn dữ liệu trong bảng được trải rộng trên ba đĩa, cải thiện hiệu suất. Có thể đạt được những cải tiến hiệu suất tương tự bằng cách tạo các tệp riêng lẻ trên bộ sọc RAID (Mảng đĩa dự phòng). Tuy nhiên, các tệp và nhóm tệp cho phép bạn dễ dàng thêm các tệp mới vào đĩa mới. Ngoài ra, nếu cơ sở dữ liệu vượt quá kích thước tối đa của một tệp Microsoft Windows, bạn có thể sử dụng các tệp dữ liệu thứ cấp để cho phép cơ sở dữ liệu tiếp tục phát triển. 2. Các vấn đề thường gặp trong ứng dụng thực tế của tệp và nhóm tệp Thông thường, cơ sở dữ liệu chúng ta xây dựng chỉ có hai tệp, một tệp mdf và một tệp ldf. (1) Rất dễ khiến file có dung lượng quá lớn. Chúng ta biết rằng file mdf là một file cơ sở dữ liệu. Điều này có nghĩa là khi cơ sở dữ liệu tăng lên thì mdf cũng sẽ tăng theo. Chà, khi ứng dụng của bạn lớn hơn, tệp mdf cũng sẽ lớn hơn. Tuy nhiên, windows có yêu cầu về kích thước tệp. Trong trường hợp này, tệp mdf rất dễ đạt đến giới hạn kích thước tệp được windows cho phép (. nên cơ sở dữ liệu sẽ bị lỗi). (2) Mảng đĩa không được sử dụng. Nhiều máy chủ lớn có mảng đĩa. Bạn có thể tưởng tượng đơn giản mảng đĩa là n đĩa xoay cùng nhau. Đọc và ghi hiệu quả. Nhưng nếu cơ sở dữ liệu của bạn chỉ có một tệp mdf (tệp ldf hiện không được xem xét), thì bạn luôn chỉ có thể sử dụng mảng đĩa này. Nó chỉ có một đĩa bên trong. Trong trường hợp đó, hiệu quả của mảng đĩa đắt tiền thay đổi từ kết nối song song sang kết nối nối tiếp. Hãy tưởng tượng nếu chúng ta có thể phân tán mdf thành nhiều tệp, ví dụ: mỗi đĩa trên mảng đĩa được phân bổ một tệp, và sau đó Dữ liệu trong mdf được phân tán thành nhiều tệp khác nhau. Khi tôi đọc, tôi đọc theo chuỗi để có thể tận dụng tối đa hiệu suất truy cập của mảng đĩa. Chúng tôi chưa bao giờ gặp phải hai vấn đề này một cách bình thường (không đáp ứng các điều kiện), nhưng khi thực hiện phát triển dịch vụ quy mô lớn, điều này gần như nghiêm trọng. 3. Nhóm tệp truy vấn và câu lệnh tệp. df.physical_name, df.[size], df.growth, f.[name][filegroup], f.is_default TỪ sys.database_files df THAM GIA sys.filegroups f ON df.data_space_id = f.data_space_id 4. Giải thích chính thức của MSDN hiểu các tệp và nhóm tệp. Mỗi cơ sở dữ liệu SQL Server có ít nhất hai tệp hệ điều hành: một tệp dữ liệu và một tệp nhật ký. Các tệp dữ liệu chứa dữ liệu và 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. Để thuận tiện cho việc phân phối và quản lý, các tệp dữ liệu có thể được thu thập và đặt vào các nhóm tệp. àDatabase Files Cơ sở dữ liệu SQL Server có ba loại tệp như sau Tệp dữ liệu chính Tệp dữ liệu chính chứa thông tin khởi động của cơ sở dữ liệu và trỏ đến các tệp khác trong cơ sở dữ liệu. Dữ liệu người dùng và đối tượng có thể được lưu trữ trong tệp này hoặc trong tệp dữ liệu thứ cấp. Mỗi cơ sở dữ liệu có một tệp dữ liệu chính. Phần mở rộng tệp được đề xuất cho các tệp dữ liệu chính là .mdf. Tệp dữ liệu thứ cấp là tùy chọn, do người dùng xác định và lưu trữ dữ liệu người dùng. Các tệp phụ có thể được sử dụng để truyền bá dữ liệu trên nhiều đĩa bằng cách đặt mỗi tệp trên một ổ đĩa khác nhau. Ngoài ra, nếu cơ sở dữ liệu vượt quá kích thước tối đa của một tệp Windows, thì các tệp dữ liệu thứ cấp có thể được sử dụng để cơ sở dữ liệu có thể tiếp tục phát triển. Phần mở rộng tệp được đề xuất cho các tệp dữ liệu thứ cấp là .ndf. Tệp nhật ký giao dịch Tệp nhật ký giao dịch lưu trữ thông tin nhật ký được sử dụng để khôi phục cơ sở dữ liệu. Mỗi cơ sở dữ liệu phải có ít nhất một tệp nhật ký. Phần mở rộng tệp được đề xuất cho nhật ký giao dịch là .ldf. à Filegroup Có một nhóm tệp chính cho mỗi cơ sở dữ liệu. Nhóm tệp này chứa các tệp dữ liệu chính và bất kỳ tệp phụ nào không được đặt trong các nhóm tệp khác. Các nhóm tệp do người dùng xác định có thể được tạo để nhóm các tệp dữ liệu để quản lý, phân phối và sắp xếp dữ liệu dễ dàng hơn. Ví dụ: bạn có thể tạo ba tệp Data1.ndf, Data2.ndf và Data3.ndf trên ba ổ đĩa và gán chúng vào nhóm tệp fgroup1. Sau đó, bạn có thể tạo một bảng rõ ràng trên filegroup fgroup1. Các truy vấn dữ liệu trong bảng được trải rộng trên ba đĩa, cải thiện hiệu suất. Có thể đạt được những cải tiến hiệu suất tương tự bằng cách sử dụng các tệp riêng lẻ được tạo trên bộ sọc RAID (Mảng đĩa độc lập dự phòng). Tuy nhiên, các tệp và nhóm tệp cho phép bạn dễ dàng thêm các tệp mới vào đĩa mới. Tất cả các tệp dữ liệu được lưu trữ trong nhóm tệp được liệt kê bên dưới. Nhóm tệp chính Một nhóm tệp chủ yếu chứa các tệp chính. Tất cả các bảng hệ thống được gán cho các nhóm tập tin chính. Nhóm tệp do người dùng xác định Bất kỳ nhóm tệp nào được tạo rõ ràng khi người dùng lần đầu tạo cơ sở dữ liệu hoặc sau đó sửa đổi cơ sở dữ liệu Nhóm tệp mặc định Nếu một đối tượng được tạo trong cơ sở dữ liệu mà không chỉ định nhóm tệp mà đối tượng đó thuộc về thì đối tượng đó sẽ được gán cho nhóm tệp mặc định . Tại bất kỳ thời điểm nào, chỉ có một nhóm tệp có thể được chỉ định làm nhóm tệp mặc định. Các tệp trong nhóm tệp mặc định phải đủ lớn để chứa bất kỳ đối tượng mới nào không được gán cho các nhóm tệp khác. Nhóm tệp CHÍNH là nhóm tệp mặc định trừ khi được thay đổi bằng câu lệnh ALTER DATABASE. Tuy nhiên, các đối tượng và bảng hệ thống vẫn được gán cho nhóm tệp CHÍNH thay vì nhóm tệp mặc định mới. 5. Ví dụ hoạt động.
Sao chép mã Mã này như sau:
--(5.1)Tạo cơ sở dữ liệu
--Chuyển sang cơ sở dữ liệu chính
SỬ DỤNG chủ
ĐI
tạo cơ sở dữ liệu db_Study
trên nhóm tệp chính --primary và các tệp dữ liệu chính
(tên='db_study_Primary',
tên tệp='D:\study\db_study_pri.mdf'),
filegroup db_Study_filegroup1 --Nhóm tệp do người dùng xác định 1
(tên='db_study_fg_data1',
filename='D:\study\db_study_fg_data1_1.ndf'),--Tệp dữ liệu thứ cấp 1
(tên='db_study_fg_data2',
filename='D:\study\db_study_fg_data2_2.ndf'),--Tệp dữ liệu thứ cấp 2
nhóm tập tin db_Study_filegroup2
(tên='db_study_fg_data3',
tên tệp='D:\study\db_study_fg_data3_1.ndf')
đăng nhập
(tên='db_study_log',
tên tệp='D:\study\db_study.ldf')
đi
--5.2 Nhóm tệp và tệp truy vấn
CHỌN df.[tên],
df.tên_vật_lý,
df.[kích thước],
df. tăng trưởng,
f.[tên][nhóm tệp],
f.is_default
TỪ sys.database_files df THAM GIA sys.filegroups f
TRÊN df.data_space_id = f.data_space_id
/*
tên physical_name kích thước tăng trưởng filegroup is_default
db_study_Primary D:\study\db_study_pri.mdf 280 128 CHÍNH 1
db_study_fg_data1 D:\study\db_study_fg_data1_1.ndf 128 128 db_Study_filegroup1 0
db_study_fg_data2 D:\study\db_study_fg_data2_2.ndf 128 128 db_Study_filegroup1 0
db_study_fg_data3 D:\study\db_study_fg_data3_1.ndf 128 128 db_Study_filegroup2 0
*/
--5.3 Sửa đổi nhóm tệp dữ liệu mặc định
thay đổi cơ sở dữ liệu db_study
sửa đổi filegroup db_study_filegroup1 mặc định
--5.4
--Tạo một bảng trong nhóm tệp mặc định db_study_filegroup1,
--Và chỉ định rằng dữ liệu hình ảnh được lưu trong nhóm tệp do người dùng xác định db_study_filegroup1
tạo bảng my_test
(
ID int khóa chính,
[Tên] varchar(10),
Hình ảnh PIC
)textimage_trên db_study_filegroup2
--Tạo chỉ mục trên nhóm tệp do người dùng xác định db_study_filegroup2
tạo chỉ mục ix_my_test trên my_test(ID) trên db_study_filegroup2
ĐI
--5.5 Chuyển dữ liệu của file dữ liệu db_study_fg_data1 cần xóa sang file dữ liệu khác,
--Và xóa file dữ liệu db_study_fg_data1
TỆP THU NHỎ DBCC(db_study_fg_data1,TỆP TRỐNG)
đi
--Xóa tệp dữ liệu db_study_fg_data1
THAY ĐỔI CƠ SỞ DỮ LIỆU DB_study
XÓA TỆP db_study_fg_data1
đi
Cuối cùng, bài viết này về mô tả vai trò của các tệp và nhóm tệp SQLserver 2005 kết thúc ở đây. Nếu bạn muốn biết thêm về mô tả vai trò của các tệp và nhóm tệp SQLserver 2005, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. tất cả các bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!