Index trong SQL Server

Nếu bạn hỏi bất kỳ ai đã có kinh nghiệm làm việc với SQL Server, làm thế nào để Tuning để các ứng dụng kết nối đến database chạy nhanh hơn, chắc hẳn hơn 90% sẽ trả lời hãy đánh Index. Có khá nhiều vấn đề về Index, trong bài viết ngắn này tôi xin giới thiệu vài khái niệm cơ bản.

Index là gì?

Ví dụ đưa cho bạn một quyền sách về SQL Server dày cộm, và yêu cầu bạn tìm những trang nào nói đến Transactions trong SQL Server. Bạn có 2 lựa chọn

  1. Lật từng trang và đọc xem có nói đến Transaction hay không.

  2. Lật đến trang mục lục của quyển sách và tìm đến chương nói về Transaction.


Lựa chọn thứ 2 chắc chắn nhanh và hiệu quả hơn lựa chọn thứ 1. Index cũng giống như mục lục của những quyền sách, giúp SQL Server xác định chính xác nơi dữ liệu được lưu trữ. Do đó muốn Tuning database của bạn, chắc chắn phải hiểu rõ Index.

Lợi ích của Index là gì?

Một trong những cách tốt nhất để giảm các họat động của đĩa cứng (disk I/O) và Logical reads là sử dụng Index. Một Index cho phép SQL Server tìm thấy dữ liệu mà không cần phải quét toàn bộ Table.

Các loại Index:

2 loại Index chính mà ta thuờng dùng là Clustered Index và Nonclustered Index. TrongSQL Server 2008, mỗi table chỉ có thể có 1 Clustered Index và 999 Nonclustered Index

Mặc định, khi bạn tạo khóa chính (Primary key) cho 1 table nào đó, tức bạn đã tạo 1 Clustered Index. 1 table mà không có Clustered Index, table được gọi là Heap.

Trong Nonclustered Index có thể có các biến thể như: Covering Index, Filtered Index,…

Ngoài ra còn các loại Index khác như Full Text Index, Spatial Index, XML Index.
Quang Vinh - sqlvn.com  

Post a Comment

Previous Post Next Post