Các đặc điểm của chỉ mục•Cung cấp một tập các con trỏ logic chỉ tới dữ liệu •Truy xuất dữ liệu nhanh hơn bình thường.. Các đặc điểm của chỉ mục 2•Tự động cập nhật chỉ mục khi sửa dữ liệu
Trang 1Nguyễn Trong Anh Cách tạo và làm việc với Chỉ
Mục (INDEX)
Trang 2Các đặc điểm của chỉ mục
•Cung cấp một tập các con trỏ logic chỉ tới dữ liệu
•Truy xuất dữ liệu nhanh hơn bình thường
•Làm tăng tốc độ khi kết nối hai bảng
•Tạo tính duy nhất cho mỗi dòng
Trang 3Các đặc điểm của chỉ mục (2)
•Tự động cập nhật chỉ mục khi sửa dữ liệu
•Thời gian và tài nguyên cho việc tạo chỉ mục là
nhiều Nếu không sử dụng thường xuyên ta
không nên tạo chỉ mục
Trang 4Cấu trúc và hoạt động của chỉ mục
•Chỉ mục được lưu trữ theo cấu trúc của cây nhị phân
•Mỗi cấp của chỉ mục là một danh sách liên kết đôi
•Khi hiệu chỉnh dữ liệu trong bảng, mỗi chỉ mục của bảng cũng được hiệu chỉnh SQL đảm bảo tính nhất quán giữa dữ liệu ghi trong các bảng và các chỉ mục giữa chúng
•Nếu có hai chỉ mục trên một bảng, việc thêm 1 dòng thực hiện ít nhất hai tác vụ I/Os Î chúng ta phải cân nhắc giữa việc cập nhật dữ liệu hay truy vấn nhanh
Trang 5Các tuỳ chọn của chỉ mục
• Chỉ mục clustered
• Chỉ mục Non-Clustered
Trang 6Các tuỳ chọn
(Clustered)
Sắp xếp lại dữ liệu về mặt vật lý
Chỉ có duy nhất một clustered trong một bảng
Yêu cầu ít nhất 120% kích thước của bảng có thể
sử dụng trong vùng tạm
Khoảng trống vùng tạm tồn tại trong CSDL tạo chỉ mục mà chúng ta tạo chỉ mục
Trang 7Các tuỳ chọn
(Non - Clustered)
•Thứ tự các dòng trong bảng không sắp xếp về
mặt vật lý giống Clustered
•Đây là kiểu điển hình để tạo chỉ mục cho cột liên kết các cột khác Các giá trị có thể được thay đổi
thường xuyên
•SQL server sử dụng mặc định khi tạo chỉ mục là non – clustered
•Chúng ta có thể tạo 249 non – clustered cho mỗi bảng
Trang 8Chỉ mục (Index)
Chỉ mục Clustered tạo trước Non - Clustered
Dùng chỉ mục Non – Clustered để tạo Foreign key
Cú pháp:
CREATE [UNIQUE]
[CLUSTERED|NONCLUSTERED] INDEX ten_chimuc
ON ten_bang( ten_cot[,ten_cot]…)
Trang 9Tạo chỉ mục
Tạo chỉ mục có tên là CallIndex
Tại Bảng TestCalls
tại trường (CallID)
Create nonclustered index CallIndex
on TestCalls(CallID)
Trang 10Xem chỉ mục đã được Tạo
Cú pháp:
sp_helpindex TenBang
Xem trong bảng TestCalls có bao nhiêu chỉ mục
và đó là những chỉ mục nào
sp_helpindex TestCalls
Trang 11Sử dụng Index Tuning Wizard
Trang 12Sử dụng Index Tuning Wizard (2)
Trang 13Sử dụng Index Tuning Wizard (3)
Trang 14Sử dụng Index Tuning Wizard (4)
Trang 15Sử dụng Index Tuning Wizard (5)
Trang 16Sử dụng Index Tuning Wizard (6)
Trang 17Sử dụng Index Tuning Wizard (7)
Trang 18Sử dụng Index Tuning Wizard (8)