0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tổng Quan Về Chỉ Mục (Index) Trong SQL Server: Cách Tối Ưu Hóa Hiệu Suất Câu Truy Vấn

Đăng vào 3 tuần trước

• 2 phút đọc

Tổng Quan Về Chỉ Mục (Index) Trong SQL Server

Trong SQL Server, Chỉ Mục (Index) là một cấu trúc dữ liệu lưu trữ dưới dạng bảng nhỏ, có vai trò chính là cải thiện tốc độ truy vấn dữ liệu, đặc biệt là đối với các câu lệnh có điều kiện như WHERE, JOIN, GROUP BY, và ORDER BY. Chỉ mục hoạt động giống như một mục lục trong sách, cho phép người dùng xác định nhanh chóng vị trí của các hàng (row) trong bảng mà không cần quét toàn bộ bảng, từ đó nâng cao hiệu suất của câu truy vấn.

Kiến Thức Cơ Bản Về Chỉ Mục

Có hai loại chỉ mục trong SQL Server:

1. Chỉ Mục Phân Chùm (Clustered Index)

  • Sắp xếp dữ liệu vật lý trong bảng theo thứ tự nhất định.
  • Mỗi bảng chỉ có thể có một chỉ mục phân chùm, thường được tạo tự động trên khóa chính (primary key) của bảng.
  • Có thể tạo chỉ mục phân chùm trên nhiều cột (composite clustered index).

2. Chỉ Mục Không Phân Chùm (Non-Clustered Index)

  • Không ảnh hưởng đến thứ tự sắp xếp của bảng.
  • Mỗi bảng có thể có nhiều chỉ mục không phân chùm, sử dụng con trỏ để chỉ đến vị trí của các hàng trong bảng.
  • Cũng có thể tạo chỉ mục không phân chùm trên nhiều cột.

Cú Pháp Cơ Bản

Lấy Danh Sách Chỉ Mục của Bảng

sql Copy
sp_helpindex 'table_name'

Tạo Chỉ Mục

sql Copy
CREATE INDEX index_name ON table_name(column1, column2, ..., columnN);
  • Tạo Chỉ Mục Đơn Giản:
sql Copy
CREATE INDEX products_category ON products(category);
  • Tạo Chỉ Mục Tổ Hợp:
sql Copy
CREATE INDEX products_category_brand ON products(category, brand_id);
  • Tạo Chỉ Mục Độc Nhất:
sql Copy
CREATE UNIQUE INDEX products_category_brand ON products(category, brand_id);
  • Tạo Chỉ Mục Có Điều Kiện:
sql Copy
CREATE INDEX products_brand ON products(brand_id) WHERE brand_id = 1;

Tối Ưu Hóa Hiệu Suất Với Chỉ Mục

1. Cân Nhắc Khi Tạo Chỉ Mục:

  • Chỉ Mục Phân Chùm: Thích hợp cho các cột thường được sử dụng trong các truy vấn ORDER BY hoặc GROUP BY.
  • Chỉ Mục Không Phân Chùm: Sử dụng cho các cột thường xuyên được tìm kiếm hoặc lọc mà không cần định thứ tự.
  • Chỉ Mục Composite: Rất hữu ích cho các truy vấn phức tạp với nhiều điều kiện tìm kiếm.

2. Chỉ Mục Đã Đánh Giảm (Filtered Index):

Khi cột có nhiều giá trị NULL:

sql Copy
CREATE NONCLUSTERED INDEX idx_filtered_non_nulls ON table_name (column_name) WHERE column_name IS NOT NULL;

3. Thực Hiện Tối Ưu Hóa Đối Với Chỉ Mục:

Xác định các chỉ mục không sử dụng và xóa chúng để tránh lãng phí tài nguyên.

Theo Dõi Hiệu Suất Chỉ Mục

Sử dụng các lệnh sau để theo dõi tình trạng sử dụng của chỉ mục:

sql Copy
SELECT * FROM sys.dm_db_index_usage_stats;

Kết Luận

Chỉ mục là công cụ mạnh mẽ để tối ưu hóa hiệu suất của SQL Server. Việc hiểu rõ và áp dụng đúng các loại chỉ mục sẽ giúp việc truy vấn dữ liệu trở nên nhanh chóng và hiệu quả hơn. Hãy theo dõi tình trạng hoạt động của chỉ mục trong hệ thống của bạn để đảm bảo được sự ổn định và hiệu suất tối đa của cơ sở dữ liệu.

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào