Một sô kiểu truy vấn Đánh chỉ mục (mục tiêu) Tổ chức index. Tổ chức dữ liệu trên đĩa[r]
(1)Tổ chức Index hiệu quả
Vũ Tuyết Trinh
trinhvt-fit@mail.hut.edu.vn
Bộ môn Hệ thống thông tin, Viện CNTT&TT Đại học Bách Khoa Hà Nội
Nội dung
Một sô kiểu truy vấn Đánh mục (mục tiêu) Tổ chức index
Tổ chức liệu đĩa
(2)Một số kiểu truy vấn
Truy vấn với điều kiện
chính xác khóa
Truy vấn với điều kiện
trên thuộc tính bất kỳ
Truy vấn với điều kiện
trong khoảng
3 SELECT balance FROM accounts
WHERE number = 1023;
SELECT balance FROM accounts
WHERE branchnum = 100;
SELECT number FROM accounts
WHERE balance > 10000; SELECT *
FROM employees
WHERE name = „Jensen‟ and firstname= „Carl‟ and age < 30;
Một số kiểu truy vấn (2) Truy vấn lồng
Truy vấn có xếp
Truy vấn nhóm
Truy vấn kết nối
SELECT * FROM accounts
WHERE balance = ( select max(balance) from accounts)
SELECT * FROM accounts ORDER BY balance;
SELECT branchnum, avg(balance) FROM accounts
GROUP BY branchnum;
(3)5
Đánh mục CSDL
{Tuples} index
Điều kiện truy nhập liệu
Bản ghi Phù hợp
Khóa tìm kiếm
(Sequential vs Non sequential)
B-Tree
96
75 83 107
96 98 103 107 110 120 83 92 95
(4)Các tham số ảnh hưởng đến hiệu năng
Số lượng nút
Kích thước khóa
Độ sâu cây
Số trang nhớ sử dụng
Chi phí tri (thêm, cập nhật, xóa)
Hash Index
Hàm băm (hash function) (key, value)
Hashed key values
0
R1 R5
R3 R6 R9 R14 R17 R21 R25 Hash
function key
(5)Clustered vs Unclustered Index
Index entries
Data entries direct search for
(Index File) (Data file)
Data Records
data entries
Data entries
Data Records
CLUSTERED UNCLUSTERED
Dense vs Sparse index
P1 P2 Pi record
(6)Các ràng buộc mục Khóa chính, khóa
a non-clustered index
Khóa ngồi
Khơng tạo index
Phân cụm bảng liệu Ví dụ
Supplier(supplier_ID, supplier_address) Onorder(supplier_ID, part_ID, quantity)
Cluster: gồm liệu từ nhiều bảng có
chung số cột
(7)Phân cụm bảng nào?
Truyvấn kết nối bảng tạo trong cùng cụm?
Truyvấn liệu bảng dựa trên trường liệu khóa (cluster key)?
Đọc toàn bảng ?
Thêm ghi ?