Gần đây tôi đã được đưa vào cơ sở dữ liệu tinh chỉnh. Tôi có một số ý tưởng về SQL Server và quyết định tạo ra một số chỉ mục.TẠO SQL Server INDEX 2008
giới thiệu này http://sqlserverplanet.com/ddl/create-index
Nhưng tôi không hiểu tại sao loại Index như INCLUDE
khác, WITH
tùy chọn này sẽ giúp. Tôi đã thử google nhưng không nhìn thấy một mô tả đơn giản khi sử dụng chúng.
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
INCLUDE (President,YearsInOffice,RatingPoints)
WHERE ElectoralVotes IS NOT NULL
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH (DATA_COMPRESSION = ROW)
CREATE NONCLUSTERED INDEX IX_NC_PresidentNumber
ON dbo.Presidents (PresidentNumber)
WITH (DATA_COMPRESSION = PAGE)
Tôi nên sử dụng kịch bản nào ở trên? Họ sẽ tăng hiệu suất?
Bạn có thể thêm truy vấn mẫu tại đây không. Nó sẽ dễ dàng giúp tôi suy nghĩ và hiểu :) – Billa
Có vẻ ổn. Vì vậy, chúng ta cần phải thêm chỉ mục cho tất cả các cột trong câu lệnh SELECT để có được hiệu suất tốt? để tránh quét bảng. – Billa
Không, bạn không cần thêm tất cả các cột vào chỉ mục để tránh quét bảng. Bạn cần có các chỉ mục trên các cột bạn sử dụng trong mệnh đề where để tránh quét bảng. Việc tăng hiệu suất bạn sẽ thấy từ việc có tất cả các cột trong chỉ mục là tương đối nhỏ vì chỉ mục bao gồm các con trỏ tới các hàng. Lợi ích lớn là có chỉ mục trên các cột bộ lọc. – BlackICE