1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

24 658 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 370,01 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Table Film Table sys.Index_Ten Như vậy khi chúng ta tạo một Index cho table Film theo trường “Ten” thì một table mới sẽ được tạo rasắp xếp theo thứ tự ABC, và khi chúng ta cần tìm 1 tên

Trang 1

04/01/2024 1

TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN

BỘ MÔN: LẬP TRÌNH CSDL

SQL INDEX

GV hướng dẫn: ThS Nguyễn Thị Kim Phụng

Thực hiện: Đặng Văn Tuyên - 09520712

Đoàn Phương Thảo - 09520653

Nguyễn Thị Minh Ngọc - 09520582

Trang 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

Trang 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)

Trang 5

Newstar

5

Table Film (FilmID, Ten, Doanh thu)

Giả sử muốn tìm Film Bridesmaids – Theo cách thông

thường (không có Index) ???

Trang 7

Table Film Table

sys.Index_Ten

Như vậy khi chúng ta tạo một Index cho table Film theo trường “Ten” thì một table mới sẽ được tạo ra(sắp xếp theo thứ tự ABC), và khi chúng ta cần tìm 1 tên film thì Sql sẽ tìm kiếm trong table mới này, sau đó xác định địa chỉ và ánh xạ trở lại vị trí thực của bộ cần tìm trên bảng Film

Trang 8

 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 !

Trang 9

Newstar

9

II Các loại SQL Index

Trang 10

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

Trang 11

 Clustered Index có thể chứa một hoặc nhiều trường.

 Khi tạo Primary Key, một cách mặc định clustered

index được tạo kèm theo nó ( đây là cách thông thường

để tạo clustered index )

 Do các đặc tính của clustered index, có một vài điểm bạn cần lưu ý khi chọn trường làm clustered index để đạt hiệu quả tối ưu:

 Kích thước nhỏ: nói chung với loại index nào thì bạn cũng nên chọn trường nhỏ để làm giảm kích thước

index Với clustered index thì tiêu chí này càng quan trọng, vì khóa của nó được dùng cho tất cả các index khác ( nonclustered ) của bảng để làm con trỏ đến

bản ghi Mặc dù index cho quản lý nhiều trường

nhưng chúng ta chỉ nên chọn một trường để giữ cho kích thước nhỏ.

Trang 12

Trường luôn tăng: khi giá trị mới của trường

clustered index luôn tăng lên, các bảng ghi mới sẽ thêm vào cuối bảng Nếu giá trị mới thay đổi bất

kỳ, các bảng ghi mới có thể được chèn vào giữa

bảng Điều này dẫn đến phân 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 cũng cần được cập nhật để sắp xếp bản ghi vào vị trí mới cho đúng thứ tự Do vậy rất tốn kém và dễ gây ra phân mảnh

Trang 13

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 truy xuất đến bảng thông tin cuối thì thông tin không

được sắp xếp theo trật tự.

Foreign Key là non-clustered index  không

đẩy mạnh tính duy nhất dữ liệu.

04/01/2024

Newstar

13

Trang 14

So sánh clustered index vs

non-clustered index

 Clustered index:

Tránh bookmark lookup

 Nâng cao độ ổn định cho nonclustered 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 xử lý song

song

Trang 15

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

Trang 16

Điểm khác nhau của spatial index là nó chỉ

dành riêng cho địa lý và hình học

Trang 17

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 cột được tham chiếu trong 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)

Trang 18

III Cách tạo/xóa Index

Trang 19

Newstar

19

III Cách tạo/xóa Index (tt)

+ Nếu bạn muốn tạo một chỉ mục là sự

kết hợp của các cột, bạn có thể liệt kê các tên cột trong dấu ngoặc đơn và cách nhau bằng dấu phẩy

Create Index index_name

On table_name (column 1, column2)

+ Xóa Index

+ Xóa Index

Trang 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

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 so với

việc cập nhật một bảng thông thường (vì 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

Trang 21

Chiếm không gian đĩa

Tăng chi phí của các thao tác cập nhật dữ 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!

Trang 22

MỜI CÔ VÀ CÁC BẠN XEM ĐOẠN CODE VÀ DEMO CHƯƠNG

TRÌNH

VI Demo

Trang 23

Newstar

23

VII Tài liệu tham khảo

-Thư viện MSDM của MicroSoft

Trang 24

CẢM ƠN CÔ VÀ

CÁC BẠN ĐÃ

LẮNG NGHE

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

HÌNH ẢNH LIÊN QUAN

Bảng được tạo clustered index thì bản thân nó trở - Tiểu luận môn lập trình cơ sở dữ liệu SQL INDEX
ng được tạo clustered index thì bản thân nó trở (Trang 10)
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 cũng cần được  cập nhật để sắp xếp bản ghi vào vị trí mới cho đúng  thứ tự - Tiểu luận môn lập trình cơ sở dữ liệu SQL INDEX
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 cũng cần được cập nhật để sắp xếp bản ghi vào vị trí mới cho đúng thứ tự (Trang 12)

TỪ KHÓA LIÊN QUAN

w