1. Trang chủ
  2. » Tất cả

Index in Oracle

61 2 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 61
Dung lượng 2,12 MB

Nội dung

INDEX TRONG ORACLE Giới thiệu mục (Index) Oracle Trong hướng dẫn tổng quan Index Oracle Bên cạnh đó, có hướng dẫn cách tạo, xóa sửa Index Hướng dẫn cách cấp phát thu hồi không gian lưu trữ Index HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO MỤC LỤC MỤC LỤC I Tổng quan Index Oracle: I.1 Giới thiệu: I.2 Đặc điểm Index: I.3 Các kiểu Index: I.3.1 B-tree Index số biến thể B-tree Index: I.3.2 Bitmap Index: I.3.3 Các loại Index đặc biệt khác: I.4 Công dụng: II Cách tạo, sửa, xóa loại Index dùng câu lệnh: II.1 Tạo index: II.1.1 Single Column / Concatenated Index: II.1.2 Nonunique / Unique Index: 10 II.1.3 Function-based Index: 12 II.1.4 Partitioned / Nonpartitioned Index: 16 II.1.5 Bitmap Index: 23 II.2 Sửa Index: 26 II.2.1 Thiết lập Storage Characteristics (đặc điểm lưu trữ) cho index: 27 II.2.2 Xây dựng lại (Rebuild) index: 27 II.2.3 Ẩn/Hiện index: 29 II.2.4 Đổi tên index: 30 II.2.5 Bật/Tắt chế giám sát index: 31 II.3 Xóa Index: 33 III Cách tạo, sửa, xóa Index trực tiếp SQL Developer: 34 III.1 Tạo index SQL Developer: 34 III.2 Xem sửa index tạo bảng: 41 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO III.3 Xóa index tạo: 42 IV Mối quan hệ Index tham số PTCFREE: 43 V Cấp phát (allocate) thu hồi (deallocate) không gian lưu trữ cho Index: 45 V.1 Cấp phát (allocate) không gian lưu trữ cho Index: 45 V.2 Thu hồi (deallocate) không gian lưu trữ Index: 46 VI Các Storage parameters cho Index: 47 VII Khử phân mảnh (Coalescing) cho Index: 48 VII.1 Kiểm tra phân mảnh: 48 VII.2 Coalescing cho index: 48 VIII Xem thông tin Index: 50 IX DATABASE DEMO: 58 IX.1 DEMO CHO PARTITION INDEX: 58 IX.2 DEMO CHO CÁC VÍ DỤ: 59 TÀI LIỆU THAM KHẢO 61 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO I Tổng quan Index Oracle: I.1 Giới thiệu: Index (Chỉ mục) cấu trúc sở liệu cung cấp - phương pháp điều chỉnh hiệu suất cho phép truy xuất vào ghi nhanh cột nhiều cột Nói cách khác, Index chứa giá trị trường định bảng liệu, đồng thời trỏ đến dòng liệu tương ứng I.2 Đặc điểm Index: ✓ Là đối tượng Database (cơ sở liệu), định nghĩa cột bảng ✓ Lưu trữ riêng lẻ với bảng, tạo xóa khơng ảnh hưởng đến bảng ✓ Khi bảng bị drop (hủy) Index bị hủy theo ✓ Index tổ chức với nhiều loại Index khác ✓ Mục đích lớn Index hỗ trợ tăng hiệu suất truy vấn liệu I.3 Các kiểu Index: I.3.1 B-tree Index số biến thể B-tree Index: ❖ B-tree Index: - Là tổ chức Index mặc định Oracle Database - Dựa nguyên lý balanced tree (cây cân bằng) - Dữ liệu column có tính high cardinality (phân biệt cao) phương thức Index hiệu - Phù hợp hầu hết trường hợp database, OLTP (On-line Transactional Processing - Xử lý giao dịch trực tuyến) database ❖ Index-Organized Table (IOT): lưu liệu khóa liệu cột khơng khóa cấu trúc B-tree Thực tế, liệu lưu trữ Primary Key Index (chỉ mục khóa chính) ❖ Unique Index: đảm bảo khơng có giá trị trùng lặp, dùng cho khóa Unique Key Constraint (ràng buộc khóa nhất) HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO ❖ Reverse Key Index (chỉ mục khóa ngược): giúp giảm tải I/O trường hợp bảng Insert (chèn) nhiều liệu ❖ Key Compressed Index (chỉ mục nén khóa): nén Index trường hợp tạo Index nhiều column (Concatenated Index), column đứng đầu thường có giá trị lặp lại ❖ Descending Index (chỉ số giảm dần): Đảo ngược thứ tự xếp B-tree Index xếp theo thứ tự tăng dần Descending Index đảo ngược thứ tự lại Ví dụ: B-tree Index column STT số nhỏ node bên trái, thiết lập Descending Index thứ tự bị đảo ngược lại) I.3.2 Bitmap Index: ❖ Sử dụng bit arrays để lưu trữ Index ❖ Dữ liệu column phân biệt (Low Cardinality) Index tốt ❖ Phù hợp môi trường Data Warehouse (kho liệu) I.3.3 Các loại Index đặc biệt khác: ❖ Bitmap Join Index: lưu trữ kết liên kết bảng ❖ Function-Based Index: lập mục column nằm hàm hay biểu thức tính tốn ❖ Indexed Virtual Column: tạo mục Virtual Column ❖ Virtual Index: tạo Index ảo, dùng để kiểm tra xem có sử dụng khơng trước tạo thật ❖ Invisible Index: ẩn Index đi, dùng để kiểm tra xem index có sử dụng khơng trước xóa ❖ Global Partitioned Index: Index partition khơng phụ thuộc vào table ❖ Local Partitioned Index: Index partition phụ thuộc vào partition table ❖ Domain Index: dùng loại liệu đặc biệt ❖ B-tree Cluster, Hash Cluster Index: dùng Cluster Table HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO I.4 Công dụng: Index giúp tăng tốc truy vấn SELECT chứa mệnh đề WHERE ORDER, làm chậm việc liệu nhập vào với lệnh UPDATE INSERT Các mục tạo xóa mà không ảnh hưởng tới liệu II Cách tạo, sửa, xóa loại Index dùng câu lệnh: II.1 Tạo index: II.1.1 Single Column / Concatenated Index: II.1.1.1 Single Column Index: ❖ Cú pháp: Single Column Index tạo cho cột bảng Cú pháp sau: CREATE INDEX index_name ON table_name (column_name [ ASC | DESC ]) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ NOSORT ]; Trong đó: + index_name: tên index + table_name: tên bảng tạo index + column_name: tên cột tạo index + ASC/DESC: cung cấp để tương thích cú pháp cho database khác + TABLESPACE: tên tablespace mà Index tạo HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO + PCTFREE: không gian dành riêng block, sử dụng có điểm vào Index (New Entries) tạo + INITRANS: định số giao dịch thiết lập ban đầu cho block + MAXTRANS: giới hạn số giao dịch thiết lập cho block (giá trị mặc định 255) + STORAGE: tham số lưu trữ, quy định có extents cấp phát cho Index + LOGGING: định việc tạo Index hoạt động trên Index ghi vào Redo Log File + NOLOGGING: định việc tạo hoạt động Index không ghi vào Log File + NOSORT: hoạt động row lưu database xếp theo thứ tự tăng dần ❖ Ví dụ 1: Tạo Index cột TenNV bảng NHANVIEN CREATE INDEX Index_NV_TenNV ON NHANVIEN (TenNV) TABLESPACE Index01 PCTFREE 30 STORAGE (INITIAL 200K NEXT 200K PCTINCREASE MAXEXTENTS 50) LOGGING; HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO  Kết thực thi: Trong đó: + INITIAL: Phạm vi lưu trữ phân bổ ban đầu + NEXT: Phạm vi phân bổ (nếu khơng có phạm vi phân bổ có kích thước mặc định phạm vi phân bổ gần cộng với giá trị PCTINCREASE) + PCTINCREASE: Tỷ lệ phần trăm phạm vi phân bổ ❖ Chú ý: - Nếu giá trị MINIMUM EXTENT định nghĩa cho tablespace, kích thước extent dùng cho Index làm tròn lên thành bội số lần giá trị MINIMUM EXTENT - Nếu mệnh đề [NO]LOGGING bị bỏ qua, thuộc tính log Index mặc định phụ thuộc vào thuộc tính log tablespace mà Index tạo - PCTUSED khơng định cho Index, điểm vào Index phải lưu trữ theo trật tự định, người dùng không phép điều khiển Index block sử dụng cho việc Insert HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO - Nếu từ khóa NOSORT sử dụng liệu không xếp trường khóa câu lệnh kết thúc với lỗi, lỗi giống việc thực nhiều câu lệnh DML bảng II.1.1.2 Concatenated Index: ❖ Cú pháp: Concatenated Index mục kết hợp dành cho hai nhiều cột bảng Cú pháp sau: CREATE INDEX index_name ON table_name (column_name1 [ ASC | DESC] , column_name2 [ASC | DESC] ], ) [ TABLESPACE tablespace ] [ PCTFREE integer ] [ INITRANS integer ] [ MAXTRANS integer ] [ storage-clause ] [ LOGGING| NOLOGGING ] [ NOSORT ] Trong đó: + column_name1, column_name2, danh sách cột tạo index ❖ Ví dụ 2: Tạo Index cột HoNV, TenLot, TenNV bảng NHANVIEN CREATE INDEX Index_NV_HoNV_TenLot_TenNV ON NHANVIEN (HoNV, TenLot, TenNV) PCTFREE 30 TABLESPACE Index01; HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NÂNG CAO  Kết thực thi: II.1.1.3 Sử dụng Single Column / Concatenated Index: - Việc tạo Single Column Index hay Concatenated Index tùy thuộc vào tần suất sử dụng mệnh đề WHERE truy vấn dạng điều kiện lọc - Nếu có cột sử dụng, lựa chọn tốt Single Column Index - Nếu có hai nhiều cột sử dụng thường xuyên mệnh đề WHERE lọc dạng mục Concatenated Index lựa chọn tối ưu II.1.2 Nonunique / Unique Index: II.1.2.1 Nonunique Index: - Non-Unique Index mục mặc định hệ thống - Non-Unique Index cho phép chèn giá trị trùng lặp cột lập mục II.1.2.2 Unique Index: ❖ Cú pháp: Unique Index mục nhất, sử dụng để tăng hiệu suất đảm bảo tính tồn vẹn liệu Một mục Unique không cho phép chèn giá trị trùng lặp chèn vào bảng 10 ... nhiều loại Index khác ✓ Mục đích lớn Index hỗ trợ tăng hiệu suất truy vấn liệu I.3 Các kiểu Index: I.3.1 B-tree Index số biến thể B-tree Index: ❖ B-tree Index: - Là tổ chức Index mặc định Oracle. .. thật ❖ Invisible Index: ẩn Index đi, dùng để kiểm tra xem index có sử dụng khơng trước xóa ❖ Global Partitioned Index: Index partition không phụ thuộc vào table ❖ Local Partitioned Index: Index. .. Partitioned Index: - Partitioned Index dùng cho table lớn, lưu mục Index (Index Entries) Index nằm nhiều segments - Việc phân khu cho phép index trải rộng nhiều tablespaces, giảm bớt tình trạng tải index

Ngày đăng: 16/02/2022, 14:23