10.Index

8 247 0
Tài liệu đã được kiểm tra trùng lặp
10.Index

Đang tải... (xem toàn văn)

Thông tin tài liệu

15/23/2008 Khoa CNTT - H qun tr c s d liu1111BÀI 10.INDEXKhoa CNTT - H qun tr c s d liu22225/23/2008Nội dung bài học Giới thiệu Index Cluster Index và NonCluster Index Quản lý Index và Heap Structures Sử dụng Index 2Khoa CNTT - H qun tr c s d liu33335/23/2008Giới thiệu Index Dữ liệu ñược lưu trữ như thế nàoCác dòng ñược lưu trữ trong các data pagesHeap là một tập hợp của các data pages củamột table Dữ liệu ñược truy xuất như thế nàoQúet hết tất cả các data pages của tableDùng một index ñể chỉ ñến dữ liệu trong mộtpageKhoa CNTT - H qun tr c s d liu44445/23/2008Giới thiệu Index Tại sao tạo indexTăng tốc ñộ truy xuất dữ liệuKhông bắt buộc tính liên tục của các dòng Khi nào không nên tạo indexTốn bộ nhớ trên ñĩa ñể lưu trữ index. Khi user cập nhật dữ liệu trên cột index, SQL Server cũngsẽ cập nhật indexViệc quản lý index sẽ tốn thời gian và tài nguyênnên nếu index không thường ñược sử dùng thìkhông cần tạo 3Khoa CNTT - H qun tr c s d liu55555/23/2008Clustered IndexMỗi table chỉ có một clustered indexThứ tự vật lý của các dòng của table và thứ tự của cácdòng trong index là giống nhau, Ta nên tạo clustered index trước khi tạo nonclustered index vì clustered index thay ñổithứ tự vật lý của các dòng trong table.Kích thước trung bình của một clustered index khoảng 5% kích thước table. Tuy nhiên kích thước này phụ thuộc vàokích thước của cột ñược indexKhi chúng ta tạo một clustered index, table sẽ ñược saochép, dữ liệu trong table sẽ ñược sắp xếp lại và table gốcsẽ bị xoá. Do vậy chúng ta phải có ñủ khoảng trống ñĩa trêndatabase ñể sao chép dữ liệu.Khoa CNTT - H qun tr c s d liu66665/23/2008Nonclustered IndexsNonclustered index hữu dụng khi user yêu cầu tìm kiếm dữliệu bằng nhiều cáchKhi tạo ra một Nonclustered index, ta cần xem xét các tiêuchí sau:Nếu kiểu index không ñược chỉ ñịnh, thì kiểu mặc nhiên lànonclustered indexSQL Server sẽ tự ñộng xây dựng lại các nonclustered indexs ñã cókhi:Một clustered index bị xoáMột clustered index ñược tạoTuỳ chọn DROP_EXISTING ñược dùng ñể thay ñổi các cột ñịnh nghĩaclustered indexCó tối ña 249 nonclustered index trong một tableTạo Clustered index trước Nonclustered index 4Khoa CNTT - H qun tr c s d liu77775/23/2008Tạo indexs, Cú phápCREATE [ UNIQUE] [CLUSTERED |NONCLUSTERED ] INDEX index_nameON { table | view }( column [ ASC | DESC ] [ , .n ] ) [ WITH DROP_EXISTING ] Sử dụng index:Select …… from …. With(index(indexName))Khoa CNTT - H qun tr c s d liu88885/23/2008Tham số (1)Unique: tạo ra một unique index CLUSTERED: tạo ra một ñối tượng clustered index, nếu clustered không ñược chỉñịnh thì nonclustered index ñược tạo raindex_name: tên của index, là duy nhất trên một table/view nhưng không cần duynhất trong databaseTable: là tên table chứa cột hoặc các cột ñược tạo index. View: là tên view ñược index. View này phải ñược ñịnh nghĩa vớiSCHEMABINDING 5Khoa CNTT - H qun tr c s d liu99995/23/2008Tham số (2) Column: tên cột ñược tạo index  [ASC | DESC]: tăng dần hoặc giảm dần, mặc nhiên là tăng dần DROP_EXISTING: các clustered hoặc nonclustered index ñã cótrước ñó sẽ bị xoá khi một index mới trùng tênñược tạo ra.Khoa CNTT - H qun tr c s d liu101010105/23/2008Ví dụTạo clustered index trên cột LastName của table EmployeesCREATE CLUSTERED INDEX CL_lastnameON employees(lastname)SET NOCOUNT OFF USE pubs IF EXISTS (SELECT name FROM sysindexes WHERE name = 'au_id_ind') DROP INDEX authors.au_id_indGO USE pubs CREATE INDEX au_id_ind ON authors (au_id) GO 6Khoa CNTT - H qun tr c s d liu111111115/23/2008Ví dụKhoa CNTT - H qun tr c s d liu121212125/23/2008Ví dụ 7Khoa CNTT - H qun tr c s d liu131313135/23/2008Lưu ý (1)Microsoft® SQL Server™ 2000 tự ñộng tạo unique indexes ñể thực hiện PRIMARY KEY và UNIQUE constraints. Trừ khi clustered index ñã có trên table hoặcnonclustered index ñược chỉ ñịnh rõ ràng, một unique, clustered index ñược tạo ñể thực hiện PRIMARY KEY constraint. Trừ khi một clustered index ñược chỉ ñịnh rõ ràng, mộtunique, nonclustered index ñược tạo ra mặc ñịnh ñểthực hiện UNIQUE constraint.Khoa CNTT - H qun tr c s d liu141414145/23/2008Lưu ý (2) Chỉ có owner của table mới có thể tạoindexes trên table ñó. Chỉ có một clustered index trên mỗi table. Có tối ña 249 nonclustered indexes trên mỗitable (kể cả indexes ñược tạo bởi PRIMARY KEY hoặc UNIQUE constraints). 8Khoa CNTT - H qun tr c s d liu151515155/23/2008Lưu ý (3) Kích thước tối ña của các cột nonvariable-length của index là 900 bytes. Ví dụ, mộtindex không thể ñược tạo trên 3 columns màcác có kiểu char(300), char(300), và char (301). Số lượng tối ña của các cột trên một index là16. Khoa CNTT - H qun tr c s d liu161616165/23/2008Bài tập áp dụng Trong database QLVT, tạo index với tênIDX1 cho table vattu trên 2 field: GIABAN giam dan và tên vật tư tăng dần. . liu1111BÀI 10. INDEXKhoa CNTT - H qun tr c s d liu22225/23/2008Nội dung bài học Giới thiệu Index Cluster Index và NonCluster Index Quản lý Index và. cótrước ñó sẽ bị xoá khi một index mới trùng tênñược tạo ra.Khoa CNTT - H qun tr c s d liu1 0101 0105 /23/2008Ví dụTạo clustered index trên cột LastName

Ngày đăng: 12/01/2013, 15:41

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan