Để thêm một ghi chú rất quan trọng về những gì Mark S. đã đề cập trong bài đăng của mình. Trong Tập lệnh SQL cụ thể đã được đề cập trong câu hỏi, bạn KHÔNG BAO GIỜ đề cập đến hai nhóm tệp khác nhau để lưu trữ các hàng dữ liệu của bạn và cấu trúc dữ liệu chỉ mục.
Lý do là do chỉ mục được tạo trong trường hợp này là một Chỉ mục được nhóm trên cột khóa chính của bạn. Dữ liệu chỉ mục được nhóm và các hàng dữ liệu trong bảng của bạn KHÔNG BAO GIỜ nằm trên các nhóm tệp khác nhau .
Vì vậy, trong trường hợp bạn có hai nhóm tệp trên cơ sở dữ liệu của mình, ví dụ: PRIMARY và THỨ HAI thì tập lệnh được đề cập bên dưới sẽ lưu trữ dữ liệu hàng của bạn và dữ liệu chỉ mục cụm cả trên chính nhóm tệp PRIMARY mặc dù tôi đã đề cập đến một nhóm tệp khác ( [SECONDARY]
) cho dữ liệu bảng . Điều thú vị hơn là kịch bản cũng chạy thành công (khi tôi đang mong đợi nó sẽ báo lỗi vì tôi đã đưa ra hai nhóm tệp khác nhau: P). SQL Server thực hiện thủ thuật đằng sau hậu trường một cách âm thầm và thông minh.
CREATE TABLE [dbo].[be_Categories](
[CategoryID] [uniqueidentifier] ROWGUIDCOL NOT NULL CONSTRAINT [DF_be_Categories_CategoryID] DEFAULT (newid()),
[CategoryName] [nvarchar](50) NULL,
[Description] [nvarchar](200) NULL,
[ParentID] [uniqueidentifier] NULL,
CONSTRAINT [PK_be_Categories] PRIMARY KEY CLUSTERED
(
[CategoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [SECONDARY]
GO
LƯU Ý: Chỉ mục của bạn có thể nằm trong một nhóm tệp CHỈ nếu chỉ mục được tạo không có cụm .
Tập lệnh bên dưới tạo chỉ mục không được nhóm sẽ được tạo trên [SECONDARY]
nhóm tệp thay vì khi dữ liệu bảng đã nằm trong [PRIMARY]
nhóm tệp:
CREATE NONCLUSTERED INDEX [IX_Categories] ON [dbo].[be_Categories]
(
[CategoryName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Secondary]
GO
Bạn có thể nhận thêm thông tin về cách lưu trữ các chỉ mục không được nhóm trên một nhóm tệp khác nhau có thể giúp các truy vấn của bạn hoạt động tốt hơn. Đây là một liên kết như vậy.