Site icon Nhạc lý căn bản – nhacly.com

Filegrowth Sql Server Là Gì, Tạo Mới Một Database Trong Sql

Filegroup là cách gọi cho một nhóm data file trong SQL Server.Filegroup không phải là nơi trực tiếp chứa dữ liệu mà nó chỉ là định nghĩa ở mức logic về các data file nằm trong nó, như:- Logical Name của data file.- File Type của data file (Rows Data, Log, FILESTREAM Data).- Dung lượng khởi tạo (Initial Size) của data file.- Giá trị tự tăng trưởng (Autogrowth) / Giá trị giới hạn (Maxsize) của data file.- Đường dẫn chứa data file (Path).- Tên data file (File Name).

Bạn đang xem : Filegrowth sql server là gì*
Filegroup trong SQL Server và Tablespace trong Oracle là cái khái niệm tương đối giống nhau, chúng đều dùng để chứa các data file của Database.Filegroup mặc định của SQL Server có tên gọi là PRIMARY, đây là Filegroup được tạo cùng với khi bạn tạo ra một Database. Filegroup mặc định này có chứa một data file (.mdf).Như kết quả ở query trên, ta có thể thấy ID của Filegroup PRIMARY là 1. Filegroup này có chứa một data file với file_id = 1.Các objects của Database (Tables, Indexes …) khi được khởi tạo sẽ được lưu vào Filegroup mặc định (nếu không dùng mệnh đề “ON Filegroup_Name” để chỉ định nơi chứa các object).Muốn chỉ định Filegroup sẽ chứa object, cần phải sử dụng mệnh đề ON:
Ở ví dụ trên, chúng ta đã tạo một table ở trên Filegroup tên làFILEGROUP_DATA_1và một index ở trên Filegroup tên làFILEGROUP_IDX_1Trong mọi trường hợp, người dùng nên tạo thêm các Filegroup để lưu trữ dữ liệu của Database (không nên sử dụng Filegroup PRIMARY mặc định để lưu trữ dữ liệu).Lý do là vì PRIMARY Filegroup là nơi lưu trữ các meta data của Database, các thông tin định nghĩa như: bảng, user, các thủ tục… nếu lưu trữ chung dữ liệu của Database vào Filegroup PRIMARY sẽ có thể xảy ra xung đột về mặt I/O giữa dữ liệu và meta data.Để tạo thêm Filegroup và các data file trong Filegroup, người dùng có thể sử dụng đoạn lệnh sau:
ALTER DATABASE ADD FILE (NAME = N”FILEGROUP_DATA_01_01″, FILENAME = N”F:\SQL_Data\FILEGROUP_DATA_01_01.ndf”) TO FILEGROUP FILEGROUP_DATA_1

Xem thêm: “To Have A Crack At Là Gì – To Have A Crack At Có Nghĩa Là Gì

ALTER DATABASE ADD FILE (NAME = N”FILEGROUP_DATA_01_02″, FILENAME = N”G:\SQL_Data\FILEGROUP_DATA_01_02.ndf”) TO FILEGROUP FILEGROUP_DATA_1
ALTER DATABASE ADD FILE (NAME = N”FILEGROUP_IDX_01_01″, FILENAME = N”F:\SQL_Data\FILEGROUP_IDX_01_01.ndf”) TO FILEGROUP FILEGROUP_IDX_1
Mỗi Filegroup có thể chứa nhiều hơn 1 data file.Như ở ví dụ trên, FilegroupFILEGROUP_DATA_1chứa 2 data file, hai data file này được đặt ở trên 2 Volumn khác nhau (F và G). Khi lưu trữ dữ liệu vào data file, nếu một Filegroup có chứa nhiều hơn 1 data file, SQL sẽ dùng cơ chế Round-Robin để lần lượt ghi dữ liệu vào các data file. Do vậy, ta có thể nhìn thấy dung lượng của các data file này cùng tăng lên.Trong thực tế, DBA thường tạo nhiều Filegroup cho một Database. Mỗi Filegroup sẽ dùng để chứa các loại object khác nhau. Ví dụ:- FilegroupFILEGROUP_DATA_1chứa các bảng dữ liêu của Database.- FilegroupFILEGROUP_LOG_1chứa các bảng log của Database.- FilegroupFILEGROUP_IDX_1chứa các index của các bảng dữ liệu.- FilegroupFILEGROUP_LOG_IDX_1chứa các index của các bảng log.Việc phân chia các object của Database vào các Filegroup khác nhau sẽ làm giảm được hiện tượng phân mảnh dữ liệu trong các data file, đồng thời có thể tối ưu được I/O của các ổ cứng khi truy suất dữ liệu.

Ở hình trên, ta có thể thấy việc đọc và ghi dữ liệu vào Database SQL_Lab được chia ra xử lý ở 2 Filegroup độc lập, trên 2 Volumn khác nhau (D và F).Việc phân chia thành nhiều Filegroup cũng giúp cho việc quản trị Database được dễ dàng hơn:- Ta có thể dễ dàng chuyển một phần Database sang ổ cứng khác bằng cách chuyển một hoặc vài Filegroup.- Ta có thể thực hiện backup riêng lẻ từng Filegroup thay vì phải backup cả một Database lớn….

Filegroup trong SQL Server và Tablespace trong Oracle là cái khái niệm tương đối giống nhau, chúng đều dùng để chứa các data file của Database.Filegroup mặc định của SQL Server có tên gọi là PRIMARY, đây là Filegroup được tạo cùng với khi bạn tạo ra một Database. Filegroup mặc định này có chứa một data file (.mdf).Như kết quả ở query trên, ta có thể thấy ID của Filegroup PRIMARY là 1. Filegroup này có chứa một data file với file_id = 1.Các objects của Database (Tables, Indexes …) khi được khởi tạo sẽ được lưu vào Filegroup mặc định (nếu không dùng mệnh đề “ON Filegroup_Name” để chỉ định nơi chứa các object).Muốn chỉ định Filegroup sẽ chứa object, cần phải sử dụng mệnh đề ON:Ở ví dụ trên, chúng ta đã tạo một table ở trên Filegroup tên làFILEGROUP_DATA_1và một index ở trên Filegroup tên làFILEGROUP_IDX_1Trong mọi trường hợp, người dùng nên tạo thêm các Filegroup để lưu trữ dữ liệu của Database (không nên sử dụng Filegroup PRIMARY mặc định để lưu trữ dữ liệu).Lý do là vì PRIMARY Filegroup là nơi lưu trữ các meta data của Database, các thông tin định nghĩa như: bảng, user, các thủ tục… nếu lưu trữ chung dữ liệu của Database vào Filegroup PRIMARY sẽ có thể xảy ra xung đột về mặt I/O giữa dữ liệu và meta data.Để tạo thêm Filegroup và các data file trong Filegroup, người dùng có thể sử dụng đoạn lệnh sau:ALTER DATABASE

Exit mobile version