Tiểu luận môn lập trình cơ sở dữ liệu SQL INDEX

24 655 0
Tiểu luận môn lập trình cơ sở dữ liệu SQL INDEX

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

4/5/15 1    GV hướng dẫn !"#$%  Thực hiện& '( ) *+, +/0.  12 34 51*+, +6-7   !# 89*+, +-:. 4/5/15 2 TÓM TẮT NỘI DUNG I .Giới thiệu về SQL Index II. Các loại SQL Index III. Cách tạo/xóa Index trong SQL IV. Lưu ý khi sử dụng SQL Index V. Kết luận VI. Demo VII. Tài liệu tham khảo 4/5/15 ;<=>?@ 3 I. INDEX SQL là gì ? I n d e x c ủ a 1 q u y ể n s á c h 4/5/15 ;<=>?@ 4 - Tương tự như mục Index ở mỗi quyển sách - Mục đích tạo shortcut đến dữ liệu cần tìm - Nâng cao hiệu năng thực thi câu lệnh - Giảm khóa trên bảng - Thực thi ràng buộc Unique Constraint - Có cấu trúc dữ liệu dạng B – Tree + Khoảng cách từ nút gốc đến mọi nút lá là tương đương nhau I. INDEX SQL là gì ? (tt) 4/5/15 ;<=>?@ 5 Ví dụ 1 Table A#B$ (FilmID, Ten, Doanh thu) Giả sử muốn tìm Film @#C;=$?#C=DTheo cách thông thường (không có Index) ??? 4/5/15 ;<=>?@ 6 Ví dụ 1 (tt) Tạo một Index theo trường “Ten” Lúc đó khi chúng ta tìm tên film @#C;=$?#C=thì sẽ không tìm trong table A#B$ nữa mà tìm theo cấu trúc như hình vẽ ! 4/5/15 ;<=>?@ 7 FilmID Ten 0 @#C;=$?#C= . @;; ?>;@ 7 ? 1E;@?@> F " A? C?. - @G1H;@=; # = 6 H;@: / *; A#@=>B?== R_C 7_2 1_2 5_2 6_2 3_2 2_2 4_2 Table Film Table sys.Index_Ten 3EIJ#9K >?>L1$M> C;N91>?OB;A#B$>;1>@3P Q; R>S$M>>?OB;$T#=UV3W9>L1@?X=YHNZH>;1>[>\]^_ E2J#9K >?9` >S$0>) a#B$>SbB=U>S$J#Z$>@1 >?OB;$T# 2_=?VcNd9V! V!?9eE2d NL>@fBL#E!>@g>\99h? OM9` >S$>@) O5 A#B$ 4/5/15 ;<=>?@ 8 Vậy : + Cấu trúc trên được lưu ở đâu trong cơ sỡ dữ liệu của chúng ta ? + Thuật toán để xác định vị trí các nút là thuật toán gì ?  Tất cả đều là công việc của SQL Index, mỗi loại Index sẽ có một thuật toán riêng để sắp xếp dữ liệu theo một trật tự nhất định phục vụ cho việc tìm kiếm.  Công việc của người lập trình là lựa chọn và tạo ra một loại Index thích hợp theo yêu cầu sử dụng ! 4/5/15 ;<=>?@ 9 II. Các loại SQL Index 1.Clustered Index 2.Non Clustered Index 3.XML Index 4.Spatial Index 5.Full Text Index 1. Clustered Index  Clustered Index là loại index mà theo đó các bảng ghi trong bảng được sắp thứ tự theo trường index. Khi bảng được tạo clustered index thì bản thân nó trở thành một cây index, với các node lá chứa khóa là trường được index và đồng thời chứa tất cả các trường còn lại của bảng.  Cách làm việc của index là dựa trên ROOTPAGE, khi truy vấn, hệ thống sẽ tìm đến địa chỉ cần tìm trong bảng SYSINDEXES.  Trong mỗi bảng CHỈ được có duy nhất một clustered index.  Khi bảng đã có clustered index thì các index khác ( cụ thể là nonclustered ) sẽ dùng khóa của trường clustered index làm con trỏ trỏ về bản ghi tương ứng. 4/5/15 ;<=>?@ 10 [...]... cách nhau bằng dấu phẩy Create Index index_name On table_name (column 1, column2) + Xóa Index Newstar 4/5/15 19 IV Lưu ý khi sử dụng SQL Index -Index cho phép các ứng dụng cơ sở dữ liệu để tìm dữ liệu nhanh chóng, mà không cần phải đọc toàn bộ bảng -Người sử dụng không thể nhìn thấy các Index, họ chỉ được sử dụng để tăng tốc độ tìm kiếm / truy vấn -Cập nhật một bảng với Index mất nhiều thời gian hơn... 4/5/15 14 3 XML Index  Tạo một chỉ mục XML trên một bảng qui định Một chỉ số có thể được tạo ra trước khi có dữ liệu trong bảng Chỉ số XML có thể được tạo ra trên các bảng trong cơ sở dữ liệu khác bằng cách chỉ định một tên cơ sở dữ liệu đủ điều kiện 4/5/15 15 4 Spatial Index  Là chỉ mục sử dụng chủ yếu dành cho hình học và địa lý, nhằm xác định mật độ hay hiển thị biểu đồ   4/5/15 Spatial index có các... mảnh cho các clustered index 4/5/15 12 2 Nonclustered Index  Khác với clustered index, non-clustered index không sắp xếp dữ liệu theo một trật tự vật lý như clustered index ma "loạn xà ngầu" trong bảng thông tin, miễn sao nó nằm trong một logic do index qui định   Trong một bảng có thể chứa đến 249 non-clustered index Họat động của non-clustered index tương tự như clustered index, có khác là khi... Foreign Key là non-clustered index  không đẩy mạnh tính duy nhất dữ liệu Newstar 4/5/15 13 So sánh clustered index vs non-  Clustered index:  Tránh bookmark lookup  Nâng cao độ ổn định cho nonclustered index   clustered index Chỉ được phép tạo một clustered index Non-clustered index:  bookmark lookup  giảm hiệu năng  Cho phép tạo nhiều index trên bảng  Lưu trữ độc lập với bảng  tăng khả năng... VII Tài liệu tham khảo -Thư viện MSDM của MicroSoft http://msdn.microsoft.com/en-us/library/ms188783.aspx -Beginner SQL Turorial http://beginner -sql- tutorial.com /sql- index. htm -W3schools http://www.w3schools.com /sql/ sql_create _index. asp -One Key Data http://www.1keydata.com /sql/ sql-create -index. html Newstar 4/5/15 23 CẢM ƠN CÔ VÀ CÁC BẠN ĐÃ LẮNG NGHE Newstar 4/5/15 24 ... liệu Như vậy với những cơ sở dữ liệu lớn việc tạo Index thực sự tốn tài nguyên bộ nhớ, vì vậy chúng ta nên cân nhắc giữa cái lợi về mặt tìm kiếm chúng ta có được và những nhược điểm khi tạo Index, và chỉ nên tạo Index cho những đối tượng nào thật thường xuyên cần được truy vấn! Newstar 4/5/15 21 VI Demo MỜI CÔ VÀ CÁC BẠN XEM ĐOẠN CODE VÀ DEMO CHƯƠNG TRÌNH Newstar 4/5/15 22 VII Tài liệu tham khảo -Thư... các Index cũng cần một bản cập nhật) Vì vậy, bạn chỉ nên tạo chỉ mục trên các cột và các bảng thường xuyên cần tìm kiếm -Mỗi bảng chỉ không quá 5 index (kinh nghiệm) vì index không được quá nhiều ->insert update chậm, không quá ít ->select chậm Newstar 4/5/15 20 V Kết luận Index là công cụ quan trọng trợ giúp các truy vấn vào database Chiếm không gian đĩa Tăng chi phí của các thao tác cập nhật dữ liệu. .. truy vấn Các cột này có thể có các loại dữ liệu sau đây: char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary, or varbinary(max) 4/5/15 17 III Cách tạo/xóa Index Cú pháp tạo Index + Normal Index( tạo một chỉ mục – giá trị nhân bản được phép ) + Unique Index (tạo một chỉ mục – giá trị nhân bản không được phép ) Newstar 4/5/15 18 III Cách tạo/xóa Index (tt) + Nếu bạn muốn tạo một chỉ mục... các cú pháp và đối số tương tự như XML index Điểm khác nhau của spatial index là nó chỉ dành riêng cho địa lý và hình học 16 5 Full Text Index  Full Text search đề cập đến các chức năng trong SQL Server hỗ trợ full-text truy vấn dữ liệu dựa vào kí tự Các loại truy vấn này có thể bao gồm các từ và cụm từ cũng như nhiều hình thức của một từ hoặc cụm từ  Full-text indexes phải được thực hiện trên các... mảnh dữ liệu, tức là các bảng ghi kế tiếp nhau một cách logic nhưng lại không được lưu trữ liền kề với nhau Phân mảnh làm cho hệ thống phải truy xuất nhiều hơn để đọc dữ liệu, nhất là khi cần lấy một dải các bảng ghi  Trường tĩnh: trường clustered index không nên bi cập nhật thường xuyên, một khi đã có mặt trong bảng thì giá trị của nó cần được giữ nguyên Khi nó cập nhật, bản thân clustered index . . Create Index index_name On table_name (column 1, column2) + Xóa Index + Xóa Index 4/5/15 ;<=>?@ 20 IV. Lưu ý khi sử dụng SQL Index - Index cho phép các ứng dụng cơ sở dữ liệu để tìm dữ liệu. thiệu về SQL Index II. Các loại SQL Index III. Cách tạo/xóa Index trong SQL IV. Lưu ý khi sử dụng SQL Index V. Kết luận VI. Demo VII. Tài liệu tham khảo 4/5/15 ;<=>?@ 3 I. INDEX SQL là gì. người lập trình là lựa chọn và tạo ra một loại Index thích hợp theo yêu cầu sử dụng ! 4/5/15 ;<=>?@ 9 II. Các loại SQL Index 1.Clustered Index 2.Non Clustered Index 3.XML Index 4.Spatial Index 5.Full

Ngày đăng: 05/04/2015, 23:43

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • 1. Clustered Index

  • Slide 11

  • Slide 12

  • 2. Nonclustered Index

  • So sánh clustered index vs non- clustered index

  • 3. XML Index

  • 4. Spatial Index

  • 5. Full Text Index

  • Slide 18

  • Slide 19

  • Slide 20

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

Tài liệu liên quan