CHƯƠNG III: XỬ LÝ CÂU HỎI VÀ ĐỊNH VỊ DỮ LIỆU
(số tiết 5)
Xem quan tri giao dịch 1.pdf
(xem Distributed Database autum_chapter..pdf +++ xu ly phan tan va song song.pdf
H:\oracle-baigiang\2010\ppt\baigiang truong codex\ ch14[1]Query Optimization.ppt )
Commutative(a) giao hoán
1
+
2
3
da
dấu cách=phép kết nối?
4
5
3.1 Xử lý câu hỏi
3.1.1 Tổng quan
Vai trò xử lý câu hỏi
• Truy vấn nsd mức cao->xử lý truy vấn->các lệnh manipulation dữ liệu mức thấp
Truy vấn
nsd mức
cao
Bộ xử lý truy vấn
các lệnh vận dụng dữ liệu
mức thấp
Các thành phần xử lý truy vấn
•
•
•
Ngôn ngữ truy vấn được dùng (VD SQL: intergalactic dataspeak)
Phương pháp vận hành truy vấn(Các bước đi qua khi vận hành truy vấn nsd
(khai báo nsd mức cao)
Tối ưu hóa truy vấn(Làm sao xác định được kế hoạch truy vấn tốt nhất)
•
Ngôn ngữ truy vấn được dùng
SQL: dataspeak giữa các thiên hà
6
•
•
Phương pháp vận hành truy vấn
Các bước đi qua trong vận hành truy vấn nsd bậc cao(khai báo)
Tối ưu hóa truy vấn
Xác định kê hoach vận hành tốt nhất như thế nào
Chọn luan phiên( thứ tự chọn các thao tác với cùng lệnh SQL?)
Vấn đề là gì? Thể hiện thực hiện các thao tác trên các site
7
Giá của luân phiên
- Giả thiết
- Chiến lược 1
- Chiến lược 2:
Kết quả cho thấy chiến lược 2 có giá lớn hơn chiến lược 1
8
Các đối tượng tối ưu hóa truy vấn
Tối thiểu hóa hàm giá thành: CPU cost+ IO cost+ communication cost
Trọng số khác nhau trong môi trường phân tán khác nhau
WAN
• Giá truyền thông chiếm ưu thế (băng thông thấp/tốc độ thấp/tổng phí gthuc lớn)
• Các giải thuật bỏ qua mọi thành phần giá khác
LAN
• Giá truyền thông không chiếm ưu thế
• Xem xét đến giá các chức năng toàn thể
Cũng có thể tối đa hóa thông lượng
Các phát biểu tối ưu hóa truy vấn
Các kiểu tối ưu
- Đầy đủ
o Tối ưu
o Phức tạp do nhiều mối quan hệ
- Heuristics
o Không tối ưu
o Gom lại các biểu thức con chung
o Thực hiện chọn, chiếu đầu tiên
o Thay join bằng chuỗi các semijoin
o Sắp xếp các thao tác để giảm nhỏ kích thước quan hệ trung gian
o Tối ưu hóa các thao tác riêng
Nghiền hạt tối ưu
- Đơn truy vấn tại một thời điểm
o Không thể sử dụng các kết quả trung gian chung
- Đa truy vấn tại một thời điểm
o Hiệu quả nếu nhiều truy vấn tương tự
o Không gian quyết định lớn hơn nhiều
Tối ưu hóa thời gian
- Tĩnh
o Việc dịch=> tối ưu hóa hơn vận hành
o Khó dự doán kích thước kết quả trung gian, lan truyền lỗi
o Có thể amortize(trừ dần) qua nhiều vận hành
o R*
9
-
-
Động
o
o
o
o
Lai
o
o
o
Tối ưu hóa thời gian chạy
Thông tin chính xác trên các kích thước quan hệ trung gian
Phải tôi ưu hóa lại cho nhiều vận hành
INGRES phân tán
Dịch dùng giải thuật tĩnh
Nếu lỗi trong kích thước dự đoán>ngưỡng, tối ưu hóa lại khi chạy
MERMAID
Thống kê:
- Quan hệ
*cardinality
*kích thước bộ
*phần bộ tham gia join với các quan hệ khác
- Thuộc tính
*Cardinality của domain
*Số lượng thực các giá trị khác nhau
- Assumption chung
• Độc lập các giá trị thuộc tính khác nhau
• Phân tán uniform các giá trị thuộc tính trong domain của chúng
Các site quyết định
- Trung tâm
• Sitebđơn xác định lịch biểu tốt nhất
• Đơn giản
• Cần biết về toàn bộ CSDL phân tán
- Phân tán
•
Phối hợp giữa các site để xác định lịch biểu
•
Chỉ cần các thông tin cục bộ
•
Giá việc phối hợp
- Lai
• Một site xác định lịch biểu tổng thể
• Mỗi site tối ưu các truy vấn con chung
Topo mạng
10
•
•
•
•
•
•
•
•
WAN-điểm-điểm
Các đặc tính
Băng thông hẹp
Tốc độ chậm
Tổng phí lớn
Giá thành truyền thông chiếm ưu thế: bỏ qua mọi yếu tố giá thành khác
Lịch biểu tối thiểu hóa giá thành truyền thông
Các lịch biểu cục bộ phụ thuộc vào tối ưu hóa truy vấn trung tâm
LAN
Giá truyền thông ko chiếm ưu thế
Hàm giá tổng thể có thể được xem xét
Quảng bá có thể được thám hiểm(join)
Giải thuật đặc biệt tồn tại cho mạng star
METHODOLOGY TIếN TRÌNH TRUY VấN PHÂN TÁN
Truy vấn tính toán trên các quan hệ phân tán->(site điều khiển)->Truy vấn phân đoạn
được tối ưu hóa với các thao tác truyền thông->(các site cục bô)->Các truy vấn cục bộ
tối ưu hóa
Site điều khiển :
Lược đồ tổng thê(phân rã truy vấn)->truy vấn đại số trên các quan hệ phân tán->lược đồ
phân đoạn(định vị dữ liệu)->phân đoạn truy vấn->thống kê trên phân đoạn(tối ưu hóa
tổng thể)-> truy vấn phân đoạn được tối ưu hóa với các thao tác truyền thông
Các site cục bộ :
->Lược đồ cục bộ(Tối ưu hóa cục bộ)-> Các truy vấn cục bộ tối ưu hóa
XEM SƠ ĐỒ DƯỚI
11
Bước 1: Phân rã truy vấn
Đầu vào: truy vấn tính toán trên quan hệ tổng thể
- Chuẩn hóa
• Vận dụng định lượng và phân loại truy vấn
- Phân tích
• Phát hiện và loại bỏ các truy vấn “ko đúng”
• Chỉ có thể cho một tập con của tính toán quan hệ
- Đơn giản hóa
• Loại bỏ các vị từ thừa
- Tái cấu trúc
• Truy vấn tính toán->truy vấn đại số
• Có thể dịch nhiều hơn 1
• Sử dụng các luật chuyển(nêu ở trên)
12
Tái cấu trúc
Tái cấu trúc-Các luật chuyển
13
Ví dụ
Truy vấn tương đương
14
Tái cấu trúc
Bước 2: Định vị dữ liệu
Đầu vào: truy vấn đại số trên các quan hệ phân tán
- Xác định phân đoạn nào bị liên quan
- Chương trình tối ưu hóa
• Thay thế cho mỗi truy vấn tổng thể chương trình vật liệu của nó
• Tối ưu hóa
15
Ví dụ:
Cung cấp cơ chế song song
Loại bỏ các công việc không càn thiết
Bước 3: Tối ưu hóa truy vấn tổng thể
Đầu vào: truy vấn phân đoạn
- Tìm lịch biểu tổng thể tốt nhất(không chắc đã tối ưu nhất)
• Tối thiểu hóa hàm giá
16
•
•
•
Xử lý join phân tán
Các cây Bushy và tuyến tính
Quan hệ nào, xếp(ship) đến đâu
Xếp toàn bộ và xếp khi cần
Quyết định sử dụng các semijoin
Semijoin tiết kiệm truyền thông với nhiều xử lý cục bộ hơn
Các phương pháp join
Vòng lồng và join thứ tự( join móc nối hay băm)
1/ Tối thiểu hóa giá thành:
- Không gian giải phap
- Hàm giá (về thời gian)
Giá IO+Giá CPU+Giá truyền thông
Có thể có các tham số khác nhau trong các môi trường phân tán khác nhau(LAN
và WAN)
Cũng có thể cực đại hóa thông lượng
- Giải thuật tìm kiếm
Chuyển trong không gian giai phap thế nào
Tìm kiếm , các giải thuật heuristics( iterative improvement, simulated
annealing,genetics..)
2/Xử lý tối ưu tìm kiếm(QEP=kế hoạch vận hành truy vấn=Query Execution Plan)
17
Truy vấn đàu vào->Chuyển đổi các luật (phát sinh không gian tìm kiếm)->QEP tương
đương->Mô hình giá(chiến lược tìm kiếm)->QEP tốt nhất
- Không gian tìm kiếm
• Không gian tìm kiếm được đặc trưng bởi các kế hoạch vận hành xen kẽ
• Tập trung vào các cây join
• Với N quan hệ (có O(N!) ) các cây join tương đương có thể có được bằng cách áp
dụng các luật truyền thông và liên hiệp
SELECT ename,resp
FROM emp,asg,proj
WHERE emp.eno=asg.eno
AND asg.pno=proj.pno
•
•
Không gian tìm kiếm(tiêp)
Bởi tính nghiêm ngặt của heuristic: thực hiện các thao tác unary trước các thao tác
nhị phân
Bởi tính nghiêm ngặt của cây join: chỉ xem cây tuyến tính (mỗi lần thêm một nút
vào cây), bỏ qua cây bushy(nhóm hai riêng rẽ các nut thành nút mới)
Chiến luoc tìm kiếm: Làm sao chuyển trong không gian tim kiếm
• Xác định
o Bắt đầu từ các quan hệ cơ sở và xây dựng các kế hoach bằng cách thêm
mỗi quan hệ ở mỗi bước
o Lập trình động: tìm kiếm lân cận trước hết
o Geedy: tìm kiếm sâu trước hết
•
Ngẫu nhiên
o Tìm kiếm để tối ưu quanh một điểm bắt đầu riêng
o Cân nhắc tối ưu thời gian vận hành
o Tốt hơn khi >5-6 quan hệ
o Sự tôi luyện được mô phỏng
o Hoàn thiện giao tiếp
Các chiến lược tìm kiếm
- Xác định: Nhặt quan hệ R1,R2->buoc sau nhặt tiếp R3 để tìm với kết quả trước
->buoc sau nhặt R4 với kết_quả(kết_quả(R1,R2),R3)
- Ngẫu nhiên kết_quả(kết_quả(R1,R2),R3)=> kết_quả(kết_quả(R1,R3),R2)
Các hàm giá
18
-
Thời gian tổng
o Giảm các thành phần thời gian riêng rẽ
o Làm mỗi giá nhỏ nhất có thể
o Tối ưu hóa sử dụng tài nguyên-> tăng thông lượng hệ thống
- Thời gian đáp ứng
o Làm song song nhiều nhất có thể
o Có thể tăng thời gian tổng thể do hoạt động tổng the tăng
- Giá tổng cộng
o Tổng mọi yếu tố giá thành= CPU+IO+truyền thông
o Giá CPU=giá 1 chỉ thi* số chỉ thị
o Giá IO=giá đơn vị đĩa* số đơn vị
Giá truyền thông= = thời gian thông điệp*số thông điệp nối tiêp+ thời gian
truyền*số byte nối tiếp
Các yếu tố giá
- WAN
Giá kdong thông điệp và truyền cao
Giá xử lý cục bộ thấp(các máy tính lớn và mini)
Tỉ lệ truyền thông trên giá IO=20:1
- LAN
Giá Truyền thông và xử lý cục bộ có thể xấp xỉ
Tỉ lệ chừng 1:1.6
Ví dụ
19
Trật tự join
- Luân phiên
• Trật tự các join
• Trật tự các semijoin
- Chỉ xem xét 2 quan hệ
If size(R)
R
R
If size(R)>size(S)
•
•
Nhiều quan hệ sẽ khó khăn hơn do nhiều xen kẽ
Tính toán giá mọi luân phiên và chọn luân phiên tốt nhất
Sự cần tính toán kích thước các quan hệ trung gian là khó khăn
Sử dụng heuristic
20
21
Kết nối (kí hiệu IXI) Bán kết nối ký hiệu (IX hay XI) Nếu R IX S thì chỉ tập con của R
thôi. Khác R IXI S thì mọi bộ thuộc R và S
Exhaustive(a): hết mọi khía cạnh, thấu đáo, toàn diện
22
23
24
Bước 4: Tối ưu hóa cục bộ
Đầu vào: lịch biểu vận hành tổng thể tốt nhất
• Chọn đường truy nhập(assess path) tốt nhất
• Sử dụng các kỹ thuật tối ưu hóa trung tâm
• ???
3.1.2 Trường hợp nghiên cứu: Oracle
(xem Distributed Database autum_chapter..pdf +++ xu ly phan tan va song song.pdf
xu ly phan tan va song song.pdf + H:\oracle-baigiang\2010\ppt\baigiang truong
codex\ ch14[1]Query Optimization.ppt )
Quan tâm đến các vấn đề(1/Tối ưu hóa truy vấn=sắp xếp các điều kiện truy vấn phù
hợp trong câu lệnh SQL_thao tác nào trước_ 2/Tổ chức dữ liệu để tìm kiếm nhanh=lập
chỉ mục 3/Tối ưu hóa không gian lưu trữ=TableSpace,extension)
Vấn đề/các dạng câu hỏi/cấu trúc câu hỏi
Distributed Query Optimization
Distributed query optimization là một đặc điểm của Oracle Database nhằm giảm nhỏ
tổng số dữ liệu truyền yêu cầu giữa các site khi lấy dữ liệu giao dịch từ các bảng ở xa
được tchieu trong câu lênh SQL phân tán.
25