Chỉ mục sử dụng để chỉ ra hàng chứa giá trị trong bảng Một chỉ mục hợp lý có thể cải thiện sự thực thi cơ sở dữ liệu bởi giảm bớt thời gian truy cập.. Hướng dẫn cách tạo lập các chỉ mụ
Trang 1Chương 6
Chỉ mục và chỉ mục đầy đủ
Trang 3 Giải thích việc xoá các chỉ mục
Tìm hiểu cách tìm kiếm toàn văn với các chỉ mục toàn văn
Tìm hiểu các từ khoá CONTAINS và FREETEXT được sử dụng trong các truy vấn toàn văn
Trang 4Các chỉ mục
Một chỉ mục cho phép chương trình tìm dữ liệu trong bảng mà không cần duyệt qua toàn bộ bảng
Chỉ mục chỉ ra để tìm kiếm một giá trị cụ thể Chỉ mục sử dụng để chỉ ra hàng chứa giá trị trong bảng
Một chỉ mục hợp lý có thể cải thiện sự thực thi cơ sở dữ liệu bởi giảm bớt thời gian truy cập
Một chỉ mục có thể được tạo lập trên một trường hoặc trên nhiều trường
SQL Server tự động tạo lập các chỉ mục cho các kiểu ràng buộc PRIMARY KEY và UNIQUE
Trang 6Hướng dẫn cách tạo lập
các chỉ mục
Tạo chỉ mục khi:
Khi cột được sử dụng để tìm kiếm thường xuyên
Khi cột được sử dụng để sắp xếp dữ liệu
Chỉ mục không nên tạo khi:
Khi cột dữ liệu chứa các giá trị duy nhất
Khi bảng chỉ chứa một vài hàng
Trang 8Tạo lập chỉ mục
<tiếp theo…>
Cú pháp của câu lệnh CREATE INDEX:
CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]
INDEX index_name
ON table_name (column_name[, column_name]…)
[WITH
[PAD_INDEX]
[[,]FILLFACTOR=x]
Trang 9Hệ số điền đầy
Khi một chỉ mục được tạo lập, bảng dữ liệu được chứa trong các trang dữ liệu theo một thứ tự đã được sắp xếp của giá trị trong các cột chỉ mục
Khi các bản ghi được thêm vào bảng hoặc các giá trị trong các cột chỉ mục bị thay đổi, SQL Server có thể tổ chức dữ liệu chứa định dạng để làm mẫu cho các bản ghi mới và duy trì sự lưu trữ dữ liệu được sẵp xếp
Trong khi thêm một hàng mới tới một trang dữ liệu có chỉ
số, SQL Server sẽ dịch chuyển khoảng một nửa số hàng sang trang mới để có chỗ trống cho hàng mới thêm vào nằm trong trang vừa chia ra
Trang 10Hệ số điền đầy
< tiếp theo…>
Trang phân chia giới hạn sự thực thi và phân chia dữ liệu chứa trong bảng
Hệ số điền đầy được chỉ định trong quá trình tạo lập chỉ
số, để dành riêng tỉ lệ phần trăm khoảng trống của chỉ số trên mỗi trang để lưu trữ dữ liệu mở rộng trong tương lai
Hệ số điền đầy xác định dữ liệu được nhập vào trong các trang sau khi chỉ số được tạo lập
Trang 11Hệ số điền đầy
< tiếp theo…>
Khi dữ liệu không thay đổi, chỉ định một giá trị 100 sao cho các trang sẽ được điền đầy và sẽ chiếm tối thiểu dung lượng khoảng trống
Khi dữ liệu thay đổi thường xuyên, chỉ định một giá trị thấp hơn để dịch chuyển nhiều khoảng trống hơn trên các trang
Trang 12Các kiểu của chỉ số
Một chỉ mục clustered chỉ ra thứ tự lưu trữ dữ liệu trong bảng.
Một chỉ mục non-clustered xác định thứ tự lưu trữ dữ liệu logic của bảng.
Trang 14non-bị tạo lại sau khi chỉ mục clustered được tạo.
Sử dụng tuỳ chọn FILLFACTOR khi tạo lập các chỉ mục clustered để đảm bảo có khoảng trống thích hợp khi có các hàng mới được chèn vào.
Trang 15Các chỉ mục Non-clustered
Một chỉ mục non-clustered xác định thứ tự logic của bảng
Dữ liệu được chứa ở một nơi, chỉ mục được chứa ở một mơi khác, với các con trỏ định vị vị trí lưu trữ dữ liệu
Một bảng có thể có nhiều chỉ mục non-clustered, tối đa là
249
Ví dụ:
CREATE NONCLUSTERED INDEX NCLINDX_ordnum
ON sales (ord_num)
Trang 16Các hướng dẫn để tạo lập các
chỉ mục Non-clustered
Chỉ nên thêm chỉ mục khi thực sự cần thiết, vì một chỉ mục đòi hỏi nhiều sự duy trì thêm vào sau đó
Một chỉ mục thường xuyên truy xuất các cột
Ở chế độ mặc định, lệnh CREATE INDEX tạo lập một chỉ mục non-clustered
Sử dụng chỉ mục non-clustered cho các cột để lưu trữ một
số cao của các giá trị riêng biệt, giống như sự kết hợp của
họ và tên (Nếu một chỉ mục clustered được sử dụng cho các cột khác)
Trang 18Hướng dẫn việc tạo lập
Chỉ mục duy nhất không thể tạo lập trên một cột mà chứa
dữ liệu lặp lại Dữ liệu lặp lại phải được cập nhật hoặc xoá trước khi chỉ mục duy nhất được tạo lập
Trang 19Hướng dẫn cho việc tạo lập các chỉ số phức hợp
Tạo lập một chỉ số phức hợp khi hai hoặc nhiều cột thường xuyên được tìm kiếm như một nhóm
Xác định danh sách các cột hợp thành giá trị duy nhất để tạo lập chỉ mục phức hợp
Thứ tự và số lượng các cột trong một chỉ mục tổ hợp ảnh hưởng đến sự thực thi của truy vấn
Trang 21 Kỹ thuật tối ưu bắt buộc truy vấn tối ưu chọn một truy vấn cụ thể.
Trang 22Xoá các chỉ mục
Các chỉ mục không còn cần thiết có thể bị xoá khỏi CSDL
để giải phóng bộ nhớ bằng cách sử dụng lệnh DROP INDEX
Cú pháp:
DROP INDEX table_name.index_name
Ví dụ:
DROP INDEX sales.NCLINDX_ordnum
Lệnh DROP INDEX không được áp dụng trên các chỉ số được tạo lập bởi các ràng buộc PRIMARY KEY hoặc
Trang 23Phương pháp tìm kiếm Full-text
Các chỉ mục Full-text được sử dụng trong SQL Server để thực hiện việc tìm kiếm toàn văn bản
Các chỉ mục có thể tạo lập trên các văn bản không có cấu trúc để cho phép tìm kiếm văn bản đối với các mục vào
cụ thể
Chức năng này cung cấp dịch vụ tìm kiếm của Microsoft cho phép việc tìm kiếm phức tạp bằng cách sử dụng ngôn ngữ điều kiện tìm kiếm
Ngôn ngữ tìm kiếm cho phép tìm kiếm các từ hoặc các cụm từ, các từ xác định tại vị trí đó hoặc vị trí khác, và với các định dạng khác nhau của các từ
Trang 24 Một chỉ mục full-text yêu cầu một cột chứa các giá trị duy nhất
Các chỉ mục Full-text phải được cập nhật khi dữ liệu trong bảng được thêm, thay đổi, hoặc bị xoá
Trang 25Các Danh mục Full-text
Các chỉ mục full-text lưu trữ trong các danh mục full-text
Một danh mục Full-text là một thư mục chỉ cỏ thể nhìn bởi Window hoặc các dịch vụ tìm kiếm
Ở chế độ mặc định, tất cả các chỉ mục full-text của CSDL được định vị trong một danh mục full-text
Người quản trị hệ thống có thể phân chia danh mục thành nhiều danh mục khác nếu các chỉ mục trong danh mục quá nhiều
Trang 26Sử dụng các chỉ mục Full-text
Các chỉ mục Full-text có thể được tạo lập bằng Enterprise Manager sử dụng chức năng tạo chỉ mục Full-Text Indexing Wizard
Sau khi tạo lập, các truy vấn full-text có thể đưa ra tiến hành trên các bảng với các chỉ mục đã được tạo lập
Các truy vấn Full-text được tạo bằng cách sử dụng hai từ khoá CONTAINS và FREETEXT
Trang 27"silicon"')
Trang 28Từ khoá FREETEXT
Từ khoá FREETEXT tìm kiếm các cột đối với có các giá trị sao cho phù hợp về mặt ý nghĩa và không cần chính xác về từ với từ trong điều kiện tìm kiếm
Chuỗi tìm kiếm được chia thành một số của các mục tìm kiếm và sau đó các
từ phù hợp với các mục được tìm thấy
Chuỗi tìm kiếm có thể là một tập hợp các từ hoặc các nhóm từ, hoặc thậm chí
là một câu hoàn chỉnh
Ví dụ:
SELECT title FROM titlesWHERE
Trang 29Tóm tắt
Chỉ mục giúp truy tìm dữ liệu một cách nhanh chóng
Câu lệnh CREATE INDEX được sử dụng để tạo lập chỉ số trên mỗi bảng
FILLFACTOR xác định một giá trị trong khoảng từ 0 đến
100 để chỉ ra phần trăm ccủa trang chỉ số còn rỗng
Có hai kiểu chỉ số, clustered và non-clustered
Một chỉ số clustered xác định thứ tự lưu trữ của dữ liệu trong bảng Một bảng có thể chỉ có một chỉ mục clustered bởi vì chỉ mục clustered chỉ ra thứ tự lưu trữ vật lý của dữ liệu
Trang 30Tóm tắt <tiếp theo…>
Một chỉ mục non-clustered xác định thứ tự lưu trữ dữliệu logic của bảng Do đó, một bảng có thể có nhiều chỉ mục non-clustered (tối đa là 249)
Các chỉ mục Clustered và non-clustered có thể được tạo duy nhất hoặc phức hợp
Các chỉ mục duy nhất không cho phép dữ liệu bị lặp lai trong cột chỉ mục
Các chỉ mục tổ hợp cho phép hai hoặc nhiều cột được sử dụng trong quá trình tạo lập chỉ số
Thủ tục hệ thống sp_helpindex báo cáo thông tin về các
Trang 31Tóm tắt <tiếp theo…>
Kỹ thuật tối ưu truy vấn bắt buộc truy vấn tối ưu lựa chọn một chỉ mục cụ thể trên truy vấn
Lệnh DROP INDEX xoá một chỉ mục
Một chỉ mục full-text theo dõi dấu hiệu của các từ trong bảng Chỉ mục này được sử dụng để tìm kiếm các từ chứa trong chỉ mục và các tuỳ chọn tìm kiếm nâng cao, như là tìm kiếm nhóm từ
Một danh mục full-text là một thư mục nơi tất cả các chỉ mục full-text của CSDL được lưu giữ
Trang 32Tóm tắt <tiếp theo…>
Từ khoá CONTAINS tìm kiếm các cột chứa các ký tự dựa trên các kiểu ký tự sao cho phù hợp với các ký tự đơn và nhóm từ, hoặc là thành phần các từ trong các từ khác
Từ khoá FREETEXT tìm kiếm các cột có giá trị phù hợp về mặt ý nghĩa và không cần phải giống chính xác các từ cần tìm trong biểu thức điều kiện