Professional Documents
Culture Documents
Thiet-Ke-Va-Quan-Tri-Co-So-Du-Lieu - Vu-Tuyet-Trinh - Notes4 - Xu-Ly-Truy-Van-Va-Hieu-Nang-He-Csdl - (Cuuduongthancong - Com) PDF
Thiet-Ke-Va-Quan-Tri-Co-So-Du-Lieu - Vu-Tuyet-Trinh - Notes4 - Xu-Ly-Truy-Van-Va-Hieu-Nang-He-Csdl - (Cuuduongthancong - Com) PDF
Xử lý truy vấn và
hiệu năng hệ CSDL
Vũ Tuyết Trinh
trinhvt-fit@mail.hut.edu.vn
Chương trình
tối ưu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 1
Thiết kế và quản trị cơ sở dữ liệu
Cây toán tử
TYPE
WAGON (NW, TYPE, COND, STATION,
CAPACITY, WEIGHT)
TRAIN (NT, NW)
TRAIN
(NT, NW)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 2
Thiết kế và quản trị cơ sở dữ liệu
S
Phép toán nhiều pha:
Nested-Loops Join
Nguyên tắc
Đọc từng bản ghi của quan Matching
hệ R (external relation) & lặp
trên quan hệ S (internal
relation) Tuple R
Đặc điểm
one-and-haft pass, non-
Tuple R Tuple S
blocking
Chi phí ?
SOURCE SOURCE
R S
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 3
Thiết kế và quản trị cơ sở dữ liệu
Nguyên tắc
Sắp xếp dữ liệu đầu vào Merge
trộn dữ liệu
Đặc điểm
two-pass, blocking algorithm
Sort
Chi phí? Sort
SOURCE SOURCE
R S
Nguyên tắc
Tạo bảng băm trên R Matching
Đọc S và đối sánh với dữ liệu
Hash Table R
trên bảng băm
1 n
Đặc điểm …
two-pass, blocking algorithm probe
Chi phí ?
build
Tuple R Tuple S
hash(Tuple R)hash(Tuple S)
SOURCE SOURCE
R S
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 4
Thiết kế và quản trị cơ sở dữ liệu
Mô hình giá
Chí phí thực hiện câu hỏi phụ thuộc:
đọc/ghi bộ nhớ ngoài (số trang nhớ)
Kích thước dữ liệu phải xử lý
Trọng số
s = trọng số đọc/ghi dữ liệu (ví dụ = 1)
t = trọng số xử lý của CPU (ví dụ = 1/3)
m = trọng số truyền dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 5
Thiết kế và quản trị cơ sở dữ liệu
Tối ưu
Đặt vấn đề: Cho 1 câu truy vấn, các cây toán tử thực
thi nào sẽ được xem xét ?
Không gian tìm kiếm
Chiến lược tìm kiếm
Ước lượng giá cho các kế hoạch thực thi
Lý tưởng: tìm ra kế hoạch thực thi tốt nhất
Thực tế: Tránh kế hoạch thực thi tồi
Bộ tối ưu
Rewriter
Algebraic
Space Cost Model
Planner
Method-Structure Size-Distribution
Space Estimator
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 6
Thiết kế và quản trị cơ sở dữ liệu
Query: R1 R2 R3 R4 R5
Optimal Plan:
R5
R1
R4
R3 R2
Query: R1 R2 R3 R4 R5
Optimal Plan:
R5
R1
R4
Optimal plan for
R3 R2 joining R3, R2, R4,
R1
Optimal plan for joining R3, R2, R4
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 7
Thiết kế và quản trị cơ sở dữ liệu
R1 R2
R2 R3 R3 R1
Optimal Sub-Optimal
for joining R1, R2, R3 for joining R1, R2, R3
R2
Cây toán tử tối ưu
R4
R3 R1
{ R1 } { R2 } { R3 } { R4 }
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 8
Thiết kế và quản trị cơ sở dữ liệu
Ví dụ
Employee(ssnum, name, manager, dept, salary,
numfriends)
Clustering index : ssnum
Non clustering indexes (i) name (ii) dept
Student(ssnum, name, degree_sought, year)
Clustering index :ssnum
Non clustering index :name
Tech(dept, manager, location)
Clustering index : dept
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 9
Thiết kế và quản trị cơ sở dữ liệu
Sử dụng Index
Loại bỏ DISTINCTs
Xem xét câu truy vấn lồng nhau
Điều kiện kết nối
Mệnh đề having
Sử dụng view
Khung nhìn lưu trữ (Materialized views)
Sử dụng Index
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 10
Thiết kế và quản trị cơ sở dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 11
Thiết kế và quản trị cơ sở dữ liệu
SELECT ssnum
FROM employee, tech
WHERE employee.manager = tech.manager
SELECT student.ssnum
FROM student, employee, tech
WHERE student.name = employee.name
AND employee.dept = tech.dept;
23
SELECT ssnum
FROM employee e1
WHERE salary =
(SELECT avg(e2.salary)
FROM employee e2,tech
WHERE e2.dept = e1.dept AND
e2.dept = tech.dept)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 12
Thiết kế và quản trị cơ sở dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 13
Thiết kế và quản trị cơ sở dữ liệu
SELECT ssnum
FROM employee, temp
WHERE salary = avsalary
AND employee.dept = temp.dept
SELECT ssnum
FROM employee e1
WHERE numfriends = COUNT(SELECT e2.ssnum
FROM employee e2, tech
WHERE e2.dept = tech.dept
AND e2.dept = e1.dept);
INSERT INTO temp
SELECT COUNT(ssnum) as numcolleagues,
employee.dept
FROM employee, tech
WHERE employee.dept = tech.dept
GROUP BY employee.dept;
SELECT ssnum
FROM employee, temp
WHERE numfriends = numcolleagues
AND employee.dept = temp.dept;
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 14
Thiết kế và quản trị cơ sở dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 15
Thiết kế và quản trị cơ sở dữ liệu
32
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Vũ Tuyết Trinh 16