INDEX VÀ VIEW TRONG SQL

9 280 0
INDEX VÀ VIEW TRONG SQL

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

Thông tin tài liệu

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

INDEX VÀ VIEW TRONG SQL A- Index I Tổng quan Index: - Chỉ mục (Index) bảng tra cứu đặc biệt mà Database Search Engine sử dụng để tăng nhanh thời gian hiệu suất thu thập liệu Hiểu đơn giản, mục trỏ tới liệu bảng Một mục Database tương tự mục Mục lục sách - Nhiệm vụ Index: tạo mục cho bảng - Ví dụ, bạn muốn tham chiếu tất trang sách chủ đề đó, bạn nghĩ đến mục lục nó, mà liệt kê tất chương, chủ đề theo thứ tự sau tham chiếu tới nhiều trang cụ thể II.Cấu trúc Index dạng B-tree Clustered a Clustered Index tiến hành lưu trữ ghi bảng mức vật lý tiến hành xếp chúng b DL lưu trữ theo cách xếp khóa clustered nút (leaf) clustered index chứa ghi c Các đặc điểm: - Mỗi bảng phép có Clustered Index - PK Clustered Index - Clustered Index tạo cột tập cột có chứa giá trị tập giá trị 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 sau: CREATE CLUSTERED INDEX clus_student ON Student(studentid); Nonclustered a Nonclustered Index định nghĩa bảng liệu có cấu trúc phân cụm (clustered structure) dạng vun đống (heap) b Nonclustered Index thường áp dụng cho bảng chứa lượng ghi nhỏ; bảng chứa nhiều Nonclustered Index c Dữ liệu lưu trữ theo cách xếp khóa Nonclustered nút (leaf) Nonclustered Index chứa 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 bảng Student: CREATE INDEX nonclus_student ON Student(studentname); III Các thao tác với Index: Tạo index (chỉ mục) bảng, Giá trị Duplicate (trùng lặp) cho phép: Cú pháp: Create index (index_name) On table_name (colum 1, colum 2,…) Trong đó : Index_name: tên index Table_name: tên bảng mà cột tạo index Colum1, colum2: danh sách cột tạo index Tạo index độc bảng, Giá trị Duplicate không cho phép:  Lưu ý: Khi tạo Unique Index cột hay tập cột bảng sau bạn khơng thể chèn (Insert) vào bảng Bản ghi có giá trị hay tập giá trị giống với giá trị hay tập giá trị chèn trước Cú pháp : Create unique index (index _name) On table_name (colum1, colum2,…) Ví dụ: Nếu muốn tạo index kết hợp cột cú pháp: Create index (index_name) On table_name (lastname, firstname) Ví dụ bản: Drop index Được sử dụng để xóa index bảng Cú pháp: Drop index table_name.index_name Khi nên tránh sử dụng mục SQL? - Mặc dù index SQL tạo để truy cập bảng nhanh chóng, nhiên làm chậm phép thực thi câu truy vấn DML : insert, update, delete,… bảng index SQL bảng cập nhật cùng lúc thao tác DML thực hiện, vì vậy chỉ sử dụng index SQL 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 bảng có liệu - Trong liệu Oracle, bạn xác định tối đa 16 cột index - Các mục không nên sử dụng bảng nhỏ - Bảng mà thường xuyên có hoạt động update, insert - Các mục không nên sử dụng cột mà chứa số lượng lớn giá trị NULL Không nên dùng mục cột mà thường xuyên bị sửa đổi B - View I II Tổng quan - View áp dụng cho câu lệnh SELECT, cột View cũng lấy từ cột View Chi tiết Phân loại View - Có loại View bản: + Standard View : View tạo bao gồm cột cột bảng View khác + Indexed View: View tạo đặt mục Unique Clustered Index + Partitioned view: view tạo bao gồm liệu phân cụm ngang từ một bảng Ưu điểm + Tăng tính bảo mật thông qua truy cập phân quyền riêng + Cho phép tùy chỉnh việc hiển thị liệu + Cho phép gộp liệu nhiều bảng View Nhược điểm + Khi truy vấn View chậm Table + Bị phụ thuộc vào Table gốc, Table gốc thay đổi cấu trúc đòi hỏi View cũng phải thiết kế lại cho phù hợp System View ( View hệ thống) - Các thuộc tính đối tượng bảng hay View lưu trữ vào bảng hệ thống đặc biệt gọi metadata ( siêu liệu) + Meta xem thơng qua System View ( View hệ thống) + System View tự động đưuọc chèn vào sở liệu người dùng : III Thao tác với View Tạo View Cú pháp Note: khơng tạo View mà có hai cột có tên giống Ví dụ : Tạo View để xem thông tin tất sinh viên sinh năm 1998 Kết quả: Thực thi View Vì View bảng ảo nên việc thực thi View cũng tương tự việc sử dụng câu lệnh SELECT bảng Ví dụ: Kết Sửa View: Ví dụ: Kết quả: Xóa View Dùng câu lệnh DROP VIEW Ví dụ: Kết thực lêch select báo lỗi 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ụ: Cách 3: Sử dụng thủ tục lưu trữ sp_depends: Ví dụ: IV Các tùy chọn tạo sửa View 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 nó: Thực thi: With check option Dùng để đảm bảo rằng giá trị áp dụng sửa (UPDATE) ghi qua View phải đáp ứng điều kiện đặt trình tạo View Cú pháp: Ví dụ: Thực thi: Kết Điều kiện câu lệnh SELCT đưa phải =1995, câu lệnh UPDATE năm năm tại, CHECK OPTION không cho phép làm điều Tạo mục INDEX cho View Để tạp mục cho View bạn cần thiết lập tùy chọn cho WITH SCHEMABINDING cho View trước Cú pháp: Ví dụ: Sắp xếp View Nếu bạn muốn tập kết View đưuọc xếp (ORDER BY) theo thứ tự tăng hay giảm cột hay tập cột nàp 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ọ tên sinh viên) ... đổi B - View I II Tổng quan - View áp dụng cho câu lệnh SELECT, cột View cũng lấy từ cột View Chi tiết Phân loại View - Có loại View bản: + Standard View : View tạo bao gồm cột cột bảng View khác... pháp: Create index (index_ name) On table_name (colum 1, colum 2,…) Trong đó : Index_ name: tên index Table_name: tên bảng mà cột tạo index Colum1, colum2: danh sách cột tạo index Tạo index độc bảng,... muốn tạo index kết hợp cột cú pháp: Create index (index_ name) On table_name (lastname, firstname) Ví dụ bản: Drop index Được sử dụng để xóa index bảng Cú pháp: Drop index table_name .index_ name

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