Các loại INDEX trong SQL Server

Các loại INDEX trong SQL Server

  1. Tại sao phải dùng Index trong SQL Server
  2. Index trong SQL Server là gì?
  3. Các loại INDEX trong SQL Server:
  4. Lợi ích của INDEX
  5. Nhược điểm của INDEX
  6. Cách tạo INDEX trong SQL Server
  7. Ví dụ bằng video thực tế tạo INDEX trong SQL Server giúp truy vấn cực nhanh

1. Tại sao phải dùng Index trong SQL Server

* Truy vấn tìm kiếm dữ liệu nhanh hơn, từ đó làm phần mềm kết nối SQL Server sẽ nhanh lên trong quý trình sử dụng.

2. Index trong SQL Server là gì?

INDEX trong SQL Server là một cấu trúc dữ liệu giúp cải thiện hiệu suất truy vấn trong cơ sở dữ liệu bằng cách tăng tốc độ tìm kiếm và sắp xếp dữ liệu.

Bạn có thể hình dung nó như một chỉ mục trong sách, cho phép bạn nhanh chóng tìm ra trang chứa thông tin mà bạn cần.

Hãy trong 1 thư viện điện tử, bản cần tạo ra 1 nội dung tóm tắt cho cuốn sách đó để việc tìm kiếm nhanh hơn.

3. Các loại INDEX trong SQL Server:

    Clustered Index:
        Là loại chỉ mục sắp xếp và lưu trữ các hàng dữ liệu trong bảng theo thứ tự vật lý của các giá trị trong chỉ mục.
        Mỗi bảng chỉ có thể có một chỉ mục dạng clustered.
        Khi bạn tạo một clustered index, các hàng dữ liệu trong bảng được sắp xếp theo thứ tự của các giá trị trong chỉ mục.

    Non-Clustered Index:
        Là loại chỉ mục không ảnh hưởng đến thứ tự vật lý của các hàng dữ liệu trong bảng.
        Mỗi bảng có thể có nhiều chỉ mục dạng non-clustered.
        Chỉ mục này chứa các giá trị và con trỏ dẫn đến vị trí thực tế của dữ liệu.

4. Lợi ích của INDEX

    Tăng hiệu suất truy vấn: INDEX giúp tối ưu hóa các câu lệnh SELECT, JOIN, WHERE, và ORDER BY.
    Giảm thời gian tìm kiếm: Thay vì phải quét toàn bộ bảng (table scan), SQL Server có thể sử dụng chỉ mục để tìm kiếm nhanh hơn (index seek).

5. Nhược điểm của INDEX

    Tăng không gian lưu trữ: INDEX chiếm một lượng không gian đĩa nhất định, đặc biệt nếu bảng có nhiều chỉ mục.
    Giảm hiệu suất ghi: Các thao tác INSERT, UPDATE, và DELETE có thể chậm hơn vì SQL Server phải cập nhật các chỉ mục liên quan.

6. Cách tạo INDEX trong SQL Server

Bạn có thể tạo một INDEX bằng câu lệnh CREATE INDEX.
Ví dụ:

Bạn có 1 table chứng từ có 100 nghìn bảng ghi, trong quá trình sử dụng phần mềm bạn rất hay tìm Tên khách hàng trong table này

tbChungTu: Số chứng từ, Ngày, Tên khách hàng, Số tiền

-- Tạo một non-clustered index
CREATE NONCLUSTERED INDEX donhang_ten ON tbChungTu(TenKhachHang);

7. Ví dụ bằng video thực tế tạo INDEX trong SQL Server giúp truy vấn cực nhanh

Tôi có 1 web tra cứu học lập trình:

Khi chưa áp dụng Index thì vớ câu lệnh phía dưới tìm ít nhất tốn:

 SQL Server Execution Times:
   CPU time = 16 ms,  elapsed time = 143 ms.

 Với câu lệnh sql phía dưới:
  select * from [dbo].[tbNoiDung_Web] Where NameUrl Like '/j%'

  * Chú ý: để hiển thị được tổng thời gian bạn cần chạy lệnh (1 lần)
     SET STATISTICS TIME ON;
      - Sau khi thực thi câu SQL bạn qua tab Message (bên phải Return)

Sau khi áp dụng tạo index trong SQL thì tốc độ thực thi còn:

SQL Server Execution Times:
   CPU time = 16 ms,  elapsed time = 108 ms. 

 

Tìm kiếm: tai sao phai dung index trong sql server;index trong sql server la gi?;cac loai index trong sql server:;loi ich cua index;nhuoc diem cua index;cach tao index trong sql server;vi du bang video thuc te tao index trong sql server giup truy van cuc nhanh;