•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
18 trang |
Chia sẻ: haohao89 | Lượt xem: 2374 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Cách tạo và làm việc với chỉ mục (Index), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nguyễn Trong Anh
E-Mail: anh@tronganh.com
tronganh@gmail.com
Home:
Cách tạo và làm việc với Chỉ
Mục (INDEX)
1-2SQL server 2000 – Transact SQL - Index
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.
•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
1-3SQL server 2000 – Transact SQL - Index
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
•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
1-4SQL server 2000 – Transact SQL - Index
Cấ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.
1-5SQL server 2000 – Transact SQL - Index
Các tuỳ chọn của chỉ mục
•Chỉ mục clustered
•Chỉ mục Non-Clustered
1-6SQL server 2000 – Transact SQL - Index
Cá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.
1-7SQL server 2000 – Transact SQL - Index
Cá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
1-8SQL server 2000 – Transact SQL - Index
Chỉ 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]…)
1-9SQL server 2000 – Transact SQL - Index
Tạ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)
1-10SQL server 2000 – Transact SQL - Index
Xem 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
1-11SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard
1-12SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (2)
1-13SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (3)
1-14SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (4)
1-15SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (5)
1-16SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (6)
1-17SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (7)
1-18SQL server 2000 – Transact SQL - Index
Sử dụng Index Tuning Wizard (8)