Session 10

  • Uploaded by: Nguyễn Anh Dũng
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Session 10 as PDF for free.

More details

  • Words: 2,155
  • Pages: 10
Chương 10

Chỉ mục (Index) và Chỉ mục toàn văn (Hướng dẫn thực hành)

Mục đích Hoàn thành chương này bạn sẽ có thể:       

Tạo được nhiều kiểu chỉ mục khác nhau Xem và sửa đổi các chỉ mục của bảng Sử dụng các chỉ mục trong các câu truy vấn dữ liệu Xoá các chỉ mục Tạo các chỉ mục toàn văn Sử dụng các chỉ mục toàn văn và các câu truy vấn dữ liệu toàn văn Sử dụng các từ khoá CONTAINS và FREETEXT

Các bước thực hành trong chương này đã được mô tả chi tiết và dễ hiểu, để thực hiện được học viên cần nắm được mục đích của chương và hiểu được cách sử dụng các công cụ. Hãy chú ý làm theo các bước sau: Phần I – Hướng dẫn

Khoảng thời gian : 1 tiếng 30 phút

10.1Các chỉ mục Đôi khi những người sử dụng cần nhận về một khối lượng lớn dữ liệu từ các bảng trong cơ sở dữ liệu trong thời gian ngắn nhất. Các chỉ mục tạo ra nhằm tăng tốc độ truy cập dữ liệu trong các bảng. Trong chương này, chúng ta sẽ học cách tạo ra nhiều kiểu chỉ mục khác nhau và xem xét cách sử dụng chúng. Các chỉ mục tăng cường tốc độ truy cập tới dữ liệu và đảm bảo tính duy nhất đối với các hàng (row) trong một bảng. SQL Server hỗ trợ hai kiểu chỉ mục:  Kiểu Clustered  Kiểu Non-clustered 10.1.1 Tạo các chỉ mục Các chỉ mục có thể được tạo bằng việc sử dụng chương trình Create Index Wizard sẵn có trong công cụ Enterprise Manager của SQL Server. Chúng ta cũng có thể sử dụng CREATE INDEX cú pháp để tạo ra chỉ mục. Hãy cùng xem các bước trong trình Create Index Wizard: 1. Nháy đúp chuột lên cơ sở dữ liệu Northwind Một danh sách các đối tượng bên trong cơ sở dữ liệu Northwind được hiển thị.

2. Nhấn chuột lên biểu tương Run a Wizard icon trên thanh công cụ hoặc có thể nhấn chuột vào Tools trên menu và chọn Wizards chức năng từ menu đổ xuống.

3. Mở rộng lựa chọn Database. 134

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

Một danh sách các wizard được hiển thị.

4. Chọn Create Index Wizard chức năng. Nhấn chuột vào nút OK . Trình Create Index Wizard được hiển thị như hình 10.1.

Hình 10.1: Create Index Wizard

5. Nhấn nút Next. 6. Chọn cơ sở dữ liệu Northwind và đối tượng có tên Territories. 7. Sau khi chọn, nhấn nút Next. Một danh sách các chỉ mục hiện tại của bảng Territories được hiển thị.

8. Nhấn nút Next. 9. Trong cột Include in Index, đánh dấu vào hộp sáng tương ứng với các cột TerritoryID và RegionID. Nhấn nút Next.

10. Chọn chức năng Make this a clustered index. Nhấn nút Next. 11. Gõ vào tên chỉ mục “Territories_Index”.

135

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

12. Đảm bảo rằng các hộp sáng tương ứng với RegionID và TerritoryID trong Columns included đã được đánh dấu. Nhấn nút Move Up hoặc Move Down để thay đổi nếu thấy cần thiết.

13. Nhấn nút Finish. 14. Hộp thoại Wizard Complete được hiển thị. Nhấn nút OK . 10.1.2 Xem và sửa đổi các chỉ mục Khi một chỉ mục được tạo ra,, hệ số điền (fill factor) được xác định nhằm để ra các khoảng trống mở rộng và dành riêng một phần còn rỗi trên từng trang của chỉ mục. Chúng ta cùng sửa đổi chỉ mục Territories_Index để thiết lập hệ số điền của nó là 60. Các bước để làm việc này trong công cụ Enterprise Manager: 1. Nhấn chuột phảỉ trên bảng Territories của cơ sở dữ liệu Northwind. Một danh sách các chức năng được hiển thị.

2. Chọn Manage Indexes… từ menu cha All Tasks. Hộp thoại Manage Indexes được hiển hị như hình 10.2. Nó liệt kê các chỉ mục hiện tại trong bảng Territories.

Chỉ mục và chỉ mục toàn văn

136

Hình 10.2: Hộp thoại Manage Indexes

3. Chọn Territories_Index và nhấn nút Edit…. Hộp thoại Edit Existing Index xuất hiện.

4. Đánh dấu vào ô Fill factor. 5. Đặt giá trị 60. Hình 10.3 hiển thị sự thay đổi.

Figure 10.3: Hộp thoại Edit Existing Index

6. Nhấn nút OK . 7. Nhấn nút Close trong hộp thoại Manage Indexes. 10.1.3 Sử dụng các chỉ mục

137

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

SQL Server sử dụng công cụ tối ưu hoá truy vấn để quyết định cách thực hiện truy vấn dữ liệu tốt nhất. Công việc này bao gồm việc chọn lựa chính xác chỉ mục để thực hiện truy vấn. Chúng ta có thể sửa đổi những ứng xử tự động này của SQL Server bằng việc chỉ ra chỉ mục được sử dụng. Chúng ta cùng tạo một chỉ mục khác thuộc loại non-clustered trên bảng Territories và đưa ra một câu truy vấn sử dụng chỉ mục. Các bước thực hiện công việc này trong công cụ Query Analyzer:

1. Chọn cơ sở dữ liệu Northwind trong trình Query Analyzer. 2. Thực hiện câu lệnh dưới đây: CREATE NONCLUSTERED INDEX RegionID_index ON Territories(RegionID) Một chỉ mục có tên là RegionID_index được tạo ra trên bảng Territories. Bảng Territories hiện tại có ba chỉ mục đã được định nghĩa, hai trong số đó do chúng ta tạo, và một đã tồn tại. Bây giờ chúng ta sẽ đưa ra một câu truy vấn để xem các bản ghi trong bảng Territories. 3. Thực hiện lệnh sau: SELECT * FROM Territories

4. Chọn Display Estimated Execution Plan từ menu Query. Chi phí của việc thực hiện câu truy vấn được hiển thị kèm theo tên của chỉ mục được hiển thị như hình 10.4.

Hình 10.4: Quá trình thực hiện truy vấn

Chỉ mục và chỉ mục toàn văn

138

Di chuyển chuột lên vị trí bên trên tên của chỉ mục và hộp thông tin sẽ được hiển thị như hình 10.5. Nó cho chúng ta biết việc công cụ tối ưu hoá truy vấn của SQL Server chọn lựa chỉ mục loại clustered, Territories_Index, để thực hiện truy vấn dữ liệu.

Hình 10.5: Hộp thông tin chỉ mục Bây giờ chúng ta cùng chỉ ra cho công cụ tối ưu hoá biết chỉ mục được sử dụng trong câu truy vấn, và xem xét các thay đổi trong quá trình thực hiện. 5. Thực hiện lệnh sau: SELECT * FROM Territories (INDEX = RegionID_index)

6. Chọn Display Estimated Execution Plan từ menu Query. Chỉ mục được sử dụng là chỉ mục loại non-clustered, RegionID_index, xem hình 10.6.

Hình 10.6: Quá trình thực hiện truy vấn 10.1.4 Xoá các chỉ mục

139

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

Khi mục đích của việc sử dụng một chỉ mục đã đạt được, nó nên được xoá khỏi cơ sở dữ liệu. Chúng ta hãy xoá chỉ mục RegionID_index khỏi cơ sở dữ liệu Northwind. Các bước tiến hành trong trình Enterprise Manager : 1. Nhấn chuột phải vào bảng Territories trong cơ sở dữ liệu Northwind. Một danh sách các chức năng được hiển thị.

2. Chọn Manage Indexes… từ menu cha All Tasks. Hộp thoại Manage Indexes xuất hiện.

3. Chọn RegionID_index và nhấn nút Delete. 4. Nhấn nút Yes để xác nhận lại. 5. Nhấn nút Close để đóng cửa sổ Manage Indexes. 10.1.5 Tạo ra các chỉ mục toàn văn (Full-Text Index) Các chỉ mục toàn văn có thể được xây dựng dựa vào các chuỗi ký tự phi cấu trúc để cho phép tìm kiếm xâu kí tự. Trình Full-Text Indexing Wizard trong Enterprise Manager được sử dụng để tạo ra các chỉ mục toàn văn. Các câu truy vấn toàn văn có thể được đưa ra trên bảng mà ở đó các chỉ mục đã được tạo. Chúng ta cùng tạo ra các chỉ mục toàn văn trên bảng Products của cơ sở dữ liệu Northwind. Các bước tiến hành trong công cụ Enterprise Manager như sau: 1. Nhấn chuột phải vào bảng Products trong cơ sở dữ liệu Northwind. Một danh sách các chức năng xuất hiện.

2. Chọn Define Full-Text Indexing on a Table… từ menu cha Full-Text Index Table. Chương trình Full-Text Indexing Wizard được khởi tạo như hình 10.7.

Chỉ mục và chỉ mục toàn văn

140

Hình 10.7: Full-Text Indexing Wizard

3. Nhấn nút Next. Một chỉ mục toàn văn yêu cầu một cột ở đó giá trị khoá là duy nhất. Cột ProductID trong bảng được liên kết với một chỉ mục loại clustered duy nhất có tên là PK_Products.

4. Chọn PK_Products từ danh sách Unique index và nhấn nút Next. 5. Đánh dấu hộp sáng bên cạnh cột có tên QuantityPerUnit để làm cho nó có thể được chọn trong các câu truy vấn toàn văn.

6. Nhấn nút Next. 7. Gõ “Products” vào trường Name của danh mục toàn văn và nhấn nút Next . 8. Nhấn nút Next để bỏ qua bước Select or Create Population Schedules. 9. Nhấn nút Finish để tạo chỉ mục. 10. Nhấn OK trên hộp thoại xác nhận sự thành công của việc tạo chỉ mục. Mặc dù chỉ mục toàn văn đã được tạo ra nhưng nó không thể được sử dụng. Để làm cho nó được sử dụng, chúng ta tiến hành các bước sau:

141

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

11. Nhấn chuột phải vào bảng Products. Một danh sách các chức năng được hiển thị.

12. Chọn Start Full Population từ menu cha Full-Text Index Table. Bây giờ chỉ mục toàn văn đã sẵn sàng để có thể sử dụng trong các câu truy vấn toàn văn. 10.1.6 Sử dụng các chỉ mục toàn văn Các câu truy vấn toàn văn có thể được đưa ra trên các bảng mà ở đó các chỉ mục toàn văn đã được định nghĩa. Các câu truy vấn toàn văn sử dụng các từ khoá CONTAINS và FREETEXT. Chúng ta cùng thực hiện các câu truy vấn toàn văn trên bảng Products. Các bước tiến hành trong Query Analyzer như sau:

1. Chọn cơ sở dữ liệu Northwind trong Query Analyzer. 2. Thực hiện lệnh sau: SELECT ProductName, QuantityPerUnit FROM Products WHERE CONTAINS(QuantityPerUnit,'"bottles" or "jars"') Kết quả được hiển thị như hình 10.8.

Hình 10.8: Sử dụng từ khoá CONTAINS 3. Thực hiện lệnh sau: SELECT ProductName, QuantityPerUnit FROM Products WHERE FREETEXT(QuantityPerUnit,'bottles or jars') Kết quả hiển thị giống như hình 10.8 mặc dù cách sử dụng hai từ khoá nói trên khác nhau.

Chỉ mục và chỉ mục toàn văn

142

Phần II – Bài tập

Thời gian : 30 phút

Thực hiện các công việc sau trong công cụ Enterprise Manager sử dụng cơ sở dữ liệu pubs :

1. Tạo ra một chỉ mục toàn văn trên cột notes của bảng titles sử dụng Full-Text Indexing Wizard và làm cho nó có thể sử dụng được trong các câu truy vấn toàn văn. Thực hiện các công việc sau trong Query Analyzer sử dụng cơ sở dữ liệu pubs:

2. Tạo ra một chỉ mục loại clustered trên cột stor_id của bảng discounts sử dụng lệnh CREATE INDEX.

3. Tạo ra một chỉ mục loại non-clustered trên các cột emp_id và pub_id của bảng employee. Thiết lập hệ số điền để các mức giữa và mức lá của các trang chỉ mục còn trống 25%.

4. Xem tất cả các chỉ mục đã được tạo ra trên bảng sales sử dụng thủ tục lưu của hệ thống sp_helpindex.

5. Hiển thị các cột title và type cho tất cả các bản ghi trong bảng titles mà có chứa các từ “recipes” hoặc “electronic” ở cột notes, sử dụng câu truy vấn toàn văn với từ khoá CONTAINS hoặc FREETEXT. Phần III – Bài tập về nhà Thực hiện các công việc sau trong the Query Analyzer sử dung cơ sở dữ liệu Northwind:

1. Tạo ra một chỉ mục non-clustered tên là Country_index cho bảng Suppliers trên các cột Country và city. Bảo đảm các trang chỉ mục còn trống 50 % và bất kỳ chỉ mục nào trùng tên đã có trong hệ thống phải được xoá.

2. Hiển thị cột CompanyName cho các bản ghi có giá trị cột Country = ‘France’ trong bảng Suppliers. Yêu cầu công cụ tối ưu hoá truy vấn sử dụng chỉ mục có tên là Country_index.

143

Thiết kế cơ sở dữ liệu và thực hành với SQL Server

Related Documents

Session #10
October 2019 21
Session 10
October 2019 20
Session 10
May 2020 14
102 Session 10
October 2019 19
Fm - Session 10
June 2020 5
Cis320 - Session 10
April 2020 7

More Documents from ""

May 2020 47
Aya Kito/ 1 Litre Of Tears
December 2019 53
Cv09sav
May 2020 37