thiết kế va quan tri cơ sở dữ liệu vũ tuyết trinh notes4 xử lý truy vấn va hiệu năng he csdl sinhvienzone com

16 56 0
thiết kế va quan tri cơ sở dữ liệu vũ tuyết trinh notes4 xử lý truy vấn va hiệu năng he csdl sinhvienzone com

Đ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

Thiết kế quản trị sở liệu Xử lý truy vấn hiệu hệ CSDL 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 Xử lý câu hỏi truy vấn Câu lệnh SQL Phân tích cú pháp (parser) Biểu thức ĐSQH Bộ tối ưu (optimizer) Biểu thức ĐSQH tối ưu Bộ sinh mã (code generator) Chương trình tối ưu SinhVienZone.com Vũ Tuyết Trinh https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Cây toán tử TYPE WAGON (NW, TYPE, COND, STATION, CAPACITY, WEIGHT) TRAIN (NT, NW)  Cây toán tử logic   Thứ tự phép toán NW Cây toán tử vật lý  Các thuật toán thực thi phép toán WAGON (NW, TYPE ) NT = 4002 TRAIN (NT, NW) Các phép toán vật lý (thuật toán)  Query Blocks     SELECT-FROMWHERE-GROUPBYORDERBY VIEW coi block riêng rẽ Dạng thực thi (right-deep, bushy, …) Thứ tự kết nối  Thuật toán      Sort Aggregates Select Project Join    SinhVienZone.com Vũ Tuyết Trinh Nested Loop Sort-Merge Hash-Join https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Truy nhập bảng    Truy nhập (Sequential scan): đọc theo khối Truy nhập theo địa (index scan): truy nhập vào ghi dựa mục Chi phí truy nhập ? S Phép toán nhiều pha: Nested-Loops Join  Nguyên tắc   Matching Tuple R Đặc điểm   Đọc ghi quan hệ R (external relation) & lặp quan hệ S (internal relation) one-and-haft pass, nonblocking Tuple R Tuple S SOURCE R SOURCE S Chi phí ? Tuple-based NLJ, block-based NLJ, index-based NLJ SinhVienZone.com Vũ Tuyết Trinh https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Sort Merge Join  Nguyên tắc    Đặc điểm   Merge Sắp xếp liệu đầu vào trộn liệu two-pass, blocking algorithm Sort Chi phí? Sort SOURCE R SOURCE S Hash Join (HJ)  Nguyên tắc    Đặc điểm   Tạo bảng băm R Đọc S đối sánh với liệu bảng băm Matching Hash Table R … n two-pass, blocking algorithm probe Chi phí ? build Tuple R Tuple S hash(Tuple R)hash(Tuple S) SOURCE R SinhVienZone.com Vũ Tuyết Trinh SOURCE S https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Mơ hình giá  Chí phí thực câu hỏi phụ thuộc: đọc/ghi nhớ ngồi (số trang nhớ) Kích thước liệu phải xử lý  Chi phí truy nhập liệu Đọc ghi liệu xử lý Truyền thông trạm làm việc CTA = s * NBPAGES + t * NBNUPLETS (+ m * NBMESSAGES) Trọng số s = trọng số đọc/ghi liệu (ví dụ = 1) t = trọng số xử lý CPU (ví dụ = 1/3) m = trọng số truyền liệu   Thơng tin quan hệ  Kích thước quan hệ ghi Relation WAGON TRAIN TRAFFIC Thông SinhVienZone.com Cardinality 200000 200 400 2000 800 Size 20 15 15 10 -max 5-45 tin số Relation WAGON WAGON WAGON WAGON TRAIN TRAFFIC TRAFFIC Vũ Tuyết Trinh Record size 60 30 20 tin thuộc tính Attribute NW TYPE COND CAPACITY NT DATE Thông Cardinality 200000 60000 80000 Attributes NW TYPE COND CAPACITY NT NT DATE Relation Cardinality WAGON TRAIN TRAFFIC 200000 60000 80000 Unique Yes No No No No No no Type Principal Secondary Secondary Secondary Principal Principal Principal Record size (num of rec./page) 60(100) 30 (200) 20 (300) Num of pages 45 25 30 25 18 20 40 Num of pages (NP’) 1500(375) 225(60) 200(60) https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Tối ưu  Đặt vấn đề: Cho câu truy vấn, toán tử thực thi xem xét ?     Khơng gian tìm kiếm Chiến lược tìm kiếm Ước lượng giá cho kế hoạch thực thi Lý tưởng: tìm kế hoạch thực thi tố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 Space SinhVienZone.com Vũ Tuyết Trinh Size-Distribution Estimator https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Query: R1 R2 R3 R4 Optimal Plan: R5 R5 R1 R4 R3 Query: R1 R2 R2 R3 R4 Optimal Plan: R5 R5 R1 R4 R3 R2 Optimal plan for joining R3, R2, R4, R1 Optimal plan for joining R3, R2, R4 SinhVienZone.com Vũ Tuyết Trinh https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu R1 R2 R2 R3 R3 R1 Sub-Optimal for joining R1, R2, R3 Optimal for joining R1, R2, R3 R2 Cây toán tử tối ưu R4 R3 R1 { R1, R2, R3, R4 } Tiến trình tối ưu { R1, R2, R3 } { R1, R2, R4 } { R1, R3, R4 } { R2, R3, R4 } { R1, R2 } { R1, R3 } { R1, R4 } { R2, R3 } { R2, R4 } { R3, R4 } { R1 } SinhVienZone.com Vũ Tuyết Trinh { R2 } { R3 } { R4 } https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Các lý dẫn đến hiệu thực thi truy vấn chậm      Đòi hỏi nhiều phép truy nhập đĩa Không sử dụng index Cấu trúc CSDL không hợp lý Các giao dịch dư thừa, lồng … Ví dụ  Employee(ssnum, name, manager, dept, salary, numfriends)    Student(ssnum, name, degree_sought, year)    SinhVienZone.com Clustering index :ssnum Non clustering index :name Tech(dept, manager, location)  Vũ Tuyết Trinh Clustering index : ssnum Non clustering indexes (i) name (ii) dept Clustering index : dept https://fb.com/sinhvienzonevn Thiết kế quản trị sở liệu Các kỹ thuật viết lại truy vấn        Sử dụng Index Loại bỏ DISTINCTs Xem xét câu truy vấn lồng Đ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  Một số trường hợp index không sử dụng  Biểu thức toán học WHERE salary/12 >= 4000;  Hàm tính tốn xâu SELECT * FROM employee WHERE SUBSTR(name, 1, 1) = „G‟;   SinhVienZone.com Vũ Tuyết Trinh So sánh trường không kiểu So sánh với giá trị rỗng https://fb.com/sinhvienzonevn 10 Thiết kế quản trị sở liệu Hạn chế sử dụng DISTINCTs  Ví dụ SELECT distinct ssnum FROM employee WHERE dept = „information systems‟   loại bỏ distinct Hạn chế sử dụng DISTINCTs  Ví dụ SELECT DISTINCT ssnum FROM employee, tech WHERE employee.dept = tech.dept  SinhVienZone.com Vũ Tuyết Trinh Có cần sử dụng DISTINCT? https://fb.com/sinhvienzonevn 11 Thiết kế quản trị sở liệu Employee(ssnum, name, manager, dept, salary, numfriends) Student(ssnum, name, degree_sought, year) Tech(dept, manager, location)  SELECT ssnum FROM employee, tech WHERE employee.manager = tech.manager  SELECT ssnum, tech.dept 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 Truy vấn lồng SinhVienZone.com Vũ Tuyết Trinh  SELECT ssnum FROM employee WHERE salary > (select avg(salary) from employee)  SELECT ssnum FROM employee WHERE dept in (select dept from tech)  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) https://fb.com/sinhvienzonevn 12 Thiết kế quản trị sở liệu Viết lại truy vấn lồng SELECT ssnum FROM employee WHERE dept in (select dept from tech)  SELECT ssnum FROM employee, tech WHERE employee.dept = tech.dept Truy vấn lồng với phép toán tập hợp  Ví dụ    SinhVienZone.com Vũ Tuyết Trinh SELECT avg(salary) FROM employee WHERE manager in (select manager from tech) SELECT avg(salary) FROM employee, tech WHERE employee.manager = tech.manager So sánh câu truy vấn https://fb.com/sinhvienzonevn 13 Thiết kế quản trị sở liệu Truy vấn lồng có kết nối  Ví dụ 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);   INSERT INTO temp SELECT avg(salary) as avsalary, employee.dept FROM employee, tech WHERE employee.dept = tech.dept GROUP BY employee.dept;  SELECT ssnum FROM employee, temp WHERE salary = avsalary AND employee.dept = temp.dept Employee(ssnum, name, manager, dept, salary, numfriends) Student(ssnum, name, degree_sought, year) Tech(dept, manager, location) 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); SinhVienZone.com Vũ Tuyết Trinh  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; https://fb.com/sinhvienzonevn 14 Thiết kế quản trị sở liệu Điều kiện kết nối  Kết nối trường liệu có clustering indexes  Kết nối trường liệu kiểu số “tốt hơn” trường liệu kiểu xâu ký tự Sử dụng khung nhìn   SinhVienZone.com Vũ Tuyết Trinh CREATE VIEW techlocation AS SELECT ssnum, tech.dept, location FROM employee, tech WHERE employee.dept = tech.dept; SELECT location FROM techlocation WHERE ssnum = 43253265;   SELECT location FROM employee, tech WHERE employee.dept = tech.dept AND ssnum = 43253265; https://fb.com/sinhvienzonevn 15 Thiết kế quản trị sở liệu Lưu trữ khung nhìn  Materialized views: CREATE MATERIALIZED VIEW VendorOutstanding BUILD IMMEDIATE REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT orders.vendor, sum(orders.quantity*item.price) FROM orders,item WHERE orders.itemnum = item.itemnum group by orders.vendor;  Các tham số     BUILD immediate/deferred REFRESH complete/fast ENABLE QUERY REWRITE Lợi ích:   Tự động cập nhật liệu tính tốn Sử dụng tối ưu truy vấn 32 SinhVienZone.com Vũ Tuyết Trinh https://fb.com/sinhvienzonevn 16 ... R1 } SinhVienZone. com Vũ Tuyết Trinh { R2 } { R3 } { R4 } https://fb .com/ sinhvienzonevn Thiết kế quản trị sở liệu Các lý dẫn đến hiệu thực thi truy vấn chậm      Đòi hỏi nhiều phép truy. ..   SinhVienZone. com Vũ Tuyết Trinh Nested Loop Sort-Merge Hash-Join https://fb .com/ sinhvienzonevn Thiết kế quản trị sở liệu Truy nhập bảng    Truy nhập (Sequential scan): đọc theo khối Truy. .. employee WHERE SUBSTR(name, 1, 1) = „G‟;   SinhVienZone. com Vũ Tuyết Trinh So sánh trường không kiểu So sánh với giá trị rỗng https://fb .com/ sinhvienzonevn 10 Thiết kế quản trị sở liệu Hạn chế

Ngày đăng: 30/01/2020, 21:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan