Chỉ mục và các chỉ mục toàn văn - Pdf 20

Chương 9 Chỉ mục và chỉ mục toàn văn
Mục tiêu bài học:
Cuối bài học này, bạn có thể:
 Định nghĩa một chỉ mục
 Hiểu được quá trình tạo chỉ mục
 Định nghĩa chỉ mục Clustered và chỉ mục Non-Clustered với các đặc tính duy nhất và phức
hợp
 Xem các chỉ mục của bảng
 Nắm vững cách sử dụng chỉ mục
 Xoá các chỉ mục
 Hiểu rõ tìm kiếm toàn văn và các chỉ mục toàn văn
 Hiểu rõ cách sử dụng các từ khoá CONTAINS và FREETEXT trong các câu truy vấn toàn
văn
Giới thiệu
Ở chương trước, chúng ta đã được học về các giao dịch và các cơ chế khoá bản ghi. Khái niệm về
các giao dịch, lợi ích của nhật ký các giao dịch và các cơ chế khoá bản ghi được đề cập rất sâu.
Các cơ chếkhoá chết bản ghi và việc sử lý các cơ chế khoá chết cũng được đề cập ở chương
trước.
Các chỉ mục làm cho việc truy nhập tới các hàng của một bảng dựa vào giá trị của một hoặc nhiều
cột trở nên nhanh. Chúng cung cấp một thứ tự logic cho dữ liệu trong các bảng. Một chỉ mục hợp
lý có thể nâng cao khả năng thực thi của cơ sở dữ liệu bằng việc giảm thiểu thời gian truy nhập.
Trong chương này chúng ta sẽ học về các chỉ mục.
9.1 Các chỉ mục
Các chỉ mục trong SQL Server tương tự như các chỉ mục sách. Khi các thông tin về một chủ đề
đưa ra được yêu cầu từ một quyển sách, chúng ta không tìm từ trang thứ nhất đến trang cuối
cùng. Thay vì như thế, chúng ta sẽ định vị chủ đề đưa ra dựa trên các chỉ mục ở cuối cuốn sách.
Chỉ mục trợ giúp cho việc tìm kiếm nhanh thông tin mà không cần phải đọc hết toàn bộ cuốn
sách. Trong một cơ sở dữ liệu, một chỉ mục cho phép chương trình tìm kiếm các dữ liệu cần thiết
mà không cần duyệt toàn bộ bảng. Chỉ mục được duyệt để tìm một giá trị đặc biệt. Sau đó con trỏ
chỉ mục được dùng để định vị và nhận lấy hàng chứa giá trị yêu cầu trong bảng. Con trỏ này được
tham chiếu đến như khoảng chừa trống (offset). Vì vậy, sử dụng chỉ mục để truy nhập thông tin

hiệu quả cho các câu truy vấn. Chỉ có quyền sở hữu bảng mới có thể tạo các chỉ mục trên bảng.
121 Thiết kế cơ sở dữ liệu và thực hành với SQL Server
A
Access, 408
Action menu, 335
Active status, 408
Administration table tools, 23-24
Advanced query techniques, 216-218
B
BACKUP, 498
Base data type, 105
Base table, 110
Binary data type, 112
Bit data type, 113
Số trang: Các con trỏ
Các chủ đề: Các khoá
Cú pháp của lệnh CREATE INDEX là:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED] INDEX index_name
ON table_name (column_name[, column_name]…)
[WITH
[PAD_INDEX]
[[,]FILLFACTOR=x]
[[,]DROP_EXISTING]
]
trong đó:
 UNIQUE chỉ ra rằng không bao giờ hai hàng có chung một giá trị chỉ mục.
 [CLUSTERED][NONCLUSTERED] là các kiểu chỉ mục khác nhau.
 PAD_INDEX chỉ ra khoảng trống còn lại mở ra trong mỗi trang ở mức trung của chỉ mục.
Tuỳ chọn PAD_INDEX chỉ hữu ích khi FILLFACTOR (hệ số điền) được xác định, bởi vì
PAD_INDEX sử dụng tỷ lệ được xác định bởi hệ số điền.

Giá trị của hệ số điền là một giá trị từ 0 đến 100 được tính bằng đơn vị phần trăm, xác định dữ
liệu được đưa vào các trang sau khi chỉ mục được tạo. Giá trị 100 có nghĩa là các trang sẽ bị đầy
và sẽ chiếm giữ vùng lưu trữ nhỏ nhất. Thiết lập này chỉ nên sử dụng khi bảng không có thay đổi
nào về dữ liệu chẳng hạn như một bảng chỉ đọc. Một giá trị nhỏ hơn 100 sẽ giảm thiểu nhu cầu
phân trang khi các chỉ mục lớn lên nhưng đòi hỏi tốn nhiều vùng lưu trữ hơn. Những thiết lập này
phù hợp với những bảng dữ liệu hay phải thay đổi.
9.2 Các kiểu chỉ mục
Sau khi hiểu rõ việc tạo chỉ mục, chúng ta tiếp tục với các khái niệm về các kiểu chỉ mục dưới
đây.
 Chỉ mục Clustered
 Chỉ mục Non-clustered
9.2.1 Chỉ mục Clustered
Một chỉ mục clustered xác định thứ tự lưu trữ của dữ liệu trong một bảng. Một bảng có thể có chỉ
một chỉ mục clustered bởi vì chỉ mục clustered xác định thứ tự lưu trữ vật lý của dữ liệu. Tuy
nhiên, chỉ mục có thể bao gồm nhiều cột, giống như cách thức sắp xếp bằng họ và tên của thư
mục điện thoại. Ví dụ, các bản ghi của bảng roysched trong cơ sở dữ liệu pubs không được sắp
xếp. Để tạo một chỉ mục clustered trên trường title_id, câu lệnh sẽ là:
CREATE CLUSTERED
INDEX CLINDX_titleid ON roysched (title_id)
Sau khi tạo chỉ mục, dữ liệu trong cột title_id được sắp xếp bằng cách định vị lại tất cả các bản
ghi. Hình 9.2 và 9.3 hiển thị nội dung của bảng trước và sau khi tạo chỉ mục.
123 Thiết kế cơ sở dữ liệu và thực hành với SQL Server
Hình 9.2: Bảng roysched trước khi tạo chỉ mục Clustered
Hình 9.3: Bảng Roysched sau khi tạo chỉ mục Clustered
Một chỉ mục clustered có hiệu quả đối với các cột được truy nhập dữ liệu thường xuyên. Mỗi khi
giá trị của hàng đầu tiên được tìm thấy bằng chỉ mục clustered, các hàng với các giá trị chỉ mục
tiếp theo chắc chắn sẽ nằm ở vị trí vật lý tiếp theo.
Ví dụ, một ứng dụng thường xuyên yêu cầu nhận về các bản ghi giữa hai ngày, một chỉ mục
clustered có thể xác định nhanh chóng hàng chứa ngày bắt đầu, và sau đó nhận về tất cả các hàng
tiếp theo trong bảng cho đến khi tìm thấy ngày kết thúc. Điều này có thể cải thiện tốc độ thực thi.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status