1. Trang chủ
  2. » Công Nghệ Thông Tin

INDEX VÀ VIEW TRONG SQL

9 282 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 188,58 KB

Nội dung

A Index I. Tổng quan về Index: Chỉ mục (Index) là bảng tra cứu đặc biệt mà Database Search Engine có thể sử dụng để tăng nhanh thời gian và hiệu suất thu thập dữ liệu. Hiểu đơn giản, một chỉ mục là một con trỏ tới dữ liệu trong một bảng. Một chỉ mục trong một Database là tương tự như một chỉ mục trong Mục lục của cuốn sách. Nhiệm vụ của Index: tạo chỉ mục cho bảng Ví dụ, nếu bạn muốn tham chiếu tất cả các trang trong một cuốn sách về một chủ đề nào đó, đầu tiên bạn nghĩ ngay đến mục lục của nó, mà liệt kê tất cả các chương, chủ đề theo thứ tự và sau đó được tham chiếu tới một hoặc nhiều trang cụ thể. II.Cấu trúc Index dạng Btree 1. Clustered a. Clustered Index sẽ tiến hành lưu trữ các bản ghi của bảng ở mức vật lý rồi tiến hành sắp xếp chúng. b. DL được lưu trữ theo cách sắp xếp trên khóa clustered và mỗi nút lá (leaf) của clustered index chứa 1 bản ghi. c. Các đặc điểm: Mỗi bảng chỉ được phép có một Clustered Index. PK chính là một Clustered Index Clustered Index chỉ được tạo trên cột hoặc tập cột có chứa những giá trị hoặc tập giá trị duy nhất. d. Cú pháp: CREATE CLUSTERED INDEX Tên_index ON Tên_bảng(Các_cột); e. Ví dụ: Nếu bảng Student chưa có PK, ta thiết lập Clustered Index cho nó như sau: CREATE CLUSTERED IND

Trang 1

INDEX VÀ VIEW TRONG SQL

A- Index

I Tổng quan về Index:

- Chỉ mục (Index) là bảng tra cứu đặc biệt mà Database Search Engine có thể sử dụng để tăng nhanh thời gian và hiệu suất thu thập dữ liệu Hiểu đơn giản, một chỉ mục là một con trỏ tới dữ liệu trong một bảng Một chỉ mục trong một Database là tương tự như một chỉ mục trong Mục lục của cuốn sách

- Nhiệm vụ của Index: tạo chỉ mục cho bảng

- Ví dụ, nếu bạn muốn tham chiếu tất cả các trang trong một cuốn sách về một chủ đề nào đó, đầu tiên bạn nghĩ ngay đến mục lục của nó, mà liệt kê tất cả các chương, chủ đề theo thứ tự và sau đó được tham chiếu tới một hoặc nhiều trang cụ thể

II.Cấu trúc Index dạng B-tree

1 Clustered

a Clustered Index sẽ tiến hành lưu trữ các bản ghi của bảng ở mức vật lý rồi tiến hành sắp xếp chúng

b DL được lưu trữ theo cách sắp xếp trên khóa clustered và mỗi nút lá (leaf) của clustered index chứa 1 bản ghi

c Các đặc điểm:

- Mỗi bảng chỉ được phép có một Clustered Index

- PK chính là một Clustered Index

- Clustered Index chỉ được tạo trên cột hoặc tập cột có chứa những giá trị hoặc tập giá trị duy nhất

d Cú pháp:

CREATE CLUSTERED INDEX Tên_index ON Tên_bảng(Các_cột);

e Ví dụ: Nếu bảng Student chưa có PK, ta thiết lập Clustered Index cho nó như sau:

Trang 2

CREATE CLUSTERED INDEX clus_student ON Student(studentid);

2 Nonclustered

a Nonclustered Index được định nghĩa trên bảng trong đó dữ liệu có thể có cấu trúc phân cụm (clustered structure) hoặc ở dạng vun đống (heap)

b Nonclustered Index thường áp dụng cho bảng chứa 1 lượng bản ghi nhỏ; một bảng có thể chứa nhiều Nonclustered Index

c Dữ liệu được lưu trữ theo cách sắp xếp trên khóa Nonclustered và mỗi nút lá (leaf) của Nonclustered Index chứa một bản ghi

c Cú pháp:

CREATE NONCLUSTERED INDEX Tên_index ON Tên_bảng(Các_cột);

Hoặc:

CREATE INDEX Tên_index ON Tên_bảng(Các_cột);

d Ví dụ: Để tạo Nonclustered Index cho cột studentname của bảng Student:

CREATE INDEX nonclus_student ON Student(studentname);

III Các thao tác với Index:

1 Tạo một index (chỉ mục) trên một bảng, Giá trị Duplicate (trùng lặp) được cho

phép:

Cú pháp:

Create index (index_name)

On table_name (colum 1, colum 2,…)

Trong đó :

Index_name: tên của index

Table_name: tên của bảng mà cột được tạo index

Colum1, colum2: danh sách các cột tạo index

Trang 3

2 Tạo một index độc nhất trên một bảng, Giá trị Duplicate không được cho phép:

Lưu ý: Khi đã tạo Unique Index trên cột hay tập cột của bảng thì sau đó bạn sẽ

không thể chèn (Insert) vào bảng này Bản ghi có giá trị hay tập giá trị giống với bất kỳ giá trị hay tập giá trị đã được chèn trước đó

Cú pháp :

Create unique index (index _name)

On table_name (colum1, colum2,…)

Ví dụ:

3 Nếu muốn tạo một index kết hợp giữa các cột

cú pháp:

Create index (index_name)

On table_name (lastname, firstname)

Ví dụ cơ bản:

4 Drop index

Được sử dụng để xóa index trong bảng

Cú pháp:

Drop index table_name.index_name

5. Khi nào nên tránh sử dụng chỉ mục trong SQL?

- Mặc dù index trong SQL được tạo ra để truy cập trong bảng nhanh chóng, tuy nhiên

nó làm chậm phép thực thi các câu truy vấn của DML như : insert, update, delete,… trên bảng vì index SQL và bảng được cập nhật cùng lúc khi thao tác DML được thực

Trang 4

hiện, vì vậy chỉ sử dụng index trong SQL trong các cột được sử dụng để tìm kiếm bảng thường xuyên.

- Không bắt buộc phải tạo index trên bảng có ít dữ liệu

- Trong dữ liệu Oracle, bạn có thể xác định tối đa 16 cột trong index

- Các chỉ mục không nên được sử dụng trong các bảng nhỏ

- Bảng mà thường xuyên có các hoạt động update, insert

- Các chỉ mục không nên được sử dụng trên các cột mà chứa một số lượng lớn giá trị NULL

Không nên dùng chỉ mục trên các cột mà thường xuyên bị sửa đổi

B - View

I Tổng quan

- View chỉ áp dụng cho câu lệnh SELECT, các cột của View cũng có thể được lấy từ các cột của View

II Chi tiết

1 Phân loại View

- Có 3 loại View cơ bản:

+ Standard View : View được tạo bao gồm các cột là các cột của các bảng hoặc các View khác

+ Indexed View: View được tạo và được đặt chỉ mục Unique Clustered Index

+ Partitioned view: view được tạo bao gồm các dữ liệu được phân cụm ngang từ một hoặc một bảng

2 Ưu điểm

+ Tăng tính bảo mật thông qua các truy cập được phân quyền riêng + Cho phép tùy chỉnh việc hiển thị dữ liệu

+ Cho phép gộp dữ liệu trên nhiều bảng và View

3 Nhược điểm

+ Khi truy vấn trong View có thể sẽ chậm hơn trong Table

+ Bị phụ thuộc vào Table gốc, nếu Table gốc thay đổi cấu trúc thì đòi hỏi View cũng phải thiết kế lại cho phù hợp

4 System View ( View hệ thống)

- Các thuộc tính của các đối tượng như bảng hay View có thể được lưu trữ vào các bảng hệ thống đặc biệt gọi là metadata ( siêu dữ liệu)

+ Meta có thể được xem thông qua System View ( View hệ thống) + System View sẽ tự động đưuọc chèn vào cơ sở dữ liệu của người dùng :

Trang 5

III Thao tác với View

1 Tạo View

Cú pháp

Note: không tạo View mà trong đó có hai cột có tên giống nhau

Ví dụ : Tạo một View để xem thông tin của tất cả các sinh viên sinh năm 1998

Kết quả:

2 Thực thi View

Vì View là một bảng ảo nên việc thực thi View cũng tương tự như việc sử dụng câu lệnh SELECT đối với các bảng

Ví dụ:

Kết quả

3 Sửa View:

Ví dụ:

Kết quả:

Trang 6

4 Xóa View

Dùng câu lệnh DROP VIEW

Ví dụ:

Kết quả là khi thực hiện lêch select sẽ báo lỗi

5 Xem định nghĩa View

Cách 1: Sử dụng thủ tục lưu trữ sp_helptext theo cú pháp sau:

Ví dụ:

Cách 2: Sử dụng hàm

Ví dụ:

Trang 7

Cách 3: Sử dụng thủ tục lưu trữ sp_depends:

Ví dụ:

IV Các tùy chọn khi tạo hoặc sửa View

1 With encryption

Dùng để mã hóa định nghĩa View

Cú pháp

Ví dụ: Sửa View sinh_vien_nhieu_mon để không cho phép dùng xem thông tin về nó:

Thực thi:

2 With check option

Dùng để đảm bảo rằng những giá trị áp dụng khi sửa (UPDATE) bản ghi qua View phải đáp ứng được điều kiện đã đặt ra trong quá trình tạo View

Cú pháp:

Trang 8

Ví dụ:

Thực thi:

Kết quả

Điều kiện ở câu lệnh SELCT đưa ra là phải =1995, nhưng ở câu lệnh UPDATE thì năm sẽ là năm hiện tại, CHECK OPTION không cho phép làm điều này

3 Tạo chỉ mục INDEX cho View

Để tạp chỉ mục cho một View nào đó bạn cần thiết lập tùy chọn cho WITH SCHEMABINDING cho View trước

Cú pháp:

Ví dụ:

Trang 9

4 Sắp xếp trên View

Nếu bạn muốn tập kết quả của View đưuọc sắp xếp (ORDER BY) theo thứ

tự tăng hay giảm của cột hay tập cột nàp đó có thể sử dụng mệnh đề

TOP(99.99) PERCENT….ORDER BY

Ví dụ: Theo chiều tăng dần cuat cột Studentname( họ và tên sinh viên)

Ngày đăng: 27/09/2019, 19:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w