Phân tích và tối ưu hóa câu lệnh SQL - Pdf 44

Hà Nội - 1998
đại học quốc gia hà nội
Trờng Đại Học Khoa Học Tự Nhiên
Khoa Công nghệ Thông tin
Đặng Tiểu Hùng
Phân tích và tối u hoá câu lệnh SQL
Trên Hệ Cơ sở dữ liệu ORACLE
Giáo viên hớng dẫn:
1. Ths Trần Xuân Thuận
2. Ths Lê Huy
Giáo viên phản biện:
Ths Đào Kiến Quốc
Luận văn tốt nghiệp cử nhân khoa học
Ngành Tin học Mã số: 01-02-10
Vietebooks Nguyn Hong Cng
Mục lục
Mục lục.........................................................................................................................................2
Lời giới thiệu..............................................................................................................................4
Chơng I Hệ cơ sở dữ
liệu quan hệ và ngôn ngữ hỏi có cấu trúc sql. 6
A - Hệ cơ sở dữ liệu quan hệ.......................................................................6
1. Quan hệ và các phép toán đại số quan hệ...........................................6
2. Cơ sở dữ liệu........................................................................................8
3. Mô hình cơ sở dữ liệu quan hệ............................................................8
4. Hệ quản trị cơ sở dữ liệu .....................................................................9
5. Hệ tiên đề phụ thuộc hàm....................................................................9
6. Các dạng chuẩn trong CSDL quan hệ...............................................10
B. Giới thiệu về Ngôn ngữ hỏi có cấu trúc SQL.......................................12
1. Khái niệm về ngôn ngữ SQL.............................................................12
2. Các đặc điểm của ngôn ngữ SQL......................................................13
3. Các loại câu lệnh SQL thao tác với dữ liệu cần quan tâm khi tối u. 13

6. Thêm các chỉ thị thực hiện vào trong câu lệnh.................................58
Chơng IV Giới thiệu
và tối u hóa câu lệnh SQL trong hệ tính hoá đơn và quản
lý khách hàng công ty cấp nớc Thành phố Hồ chí minh
...................................................................................................................................................63
A. Giới thiệu về hệ chơng trình Tính hoá đơn và quản lý khách hàng....63
1. Đặt vấn đề.........................................................................................63
2. Phân tích bài toán...............................................................................64
3. Giải quyết bài toán.............................................................................71
B. Cách thức tìm ra những lệnh cần tối u trong phần mềm......................72
C. Thực hiện tối u phần mềm Quản lý hoá đơn nớc.................................73
1. Tối u bằng sử dụng Index..................................................................73
2. Tối u bằng thêm chỉ thị thực hiện và thay đổi câu lệnh SQL...........76
Kết luận.....................................................................................................................................79
Tài liệu tham khảo...............................................................................................................81
Phụ lục........................................................................................................................................82
Phụ lục A Các lệnh phân tích
đối tợng và phân tích câu lệnh................................................................................82
Phụ lục B Tối u câu lệnh
trên view Trong phần mềm tra cứu văn bản pháp qui83
Phụ lục C giới thiệu quá trình
tối u câu lệnh kết nối trong phần mềm tra cứu văn bản pháp qui.........90
Phụ lục D Tối u hoá bằng sử
dụng Index kết hợp với Hint Text Trong phần mềm Tra cứu Văn bản Pháp
qui.............................................................................................................................................93
Trang 3
Vietebooks Nguyn Hong Cng
Lời giới thiệu
Trong tình hình hiện nay các doanh nghiệp có nhiều chi nhánh đặt ở nhiều
nơi với khối lợng dữ liệu lớn, đa ngời dùng, thờng sử dụng cơ sở dữ liệu phân tán.

cấp nớc TP HCM, Hệ tra cứu Văn bản pháp qui trên Web.
Trang 4
Vietebooks Nguyn Hong Cng
Trọng tâm của luận văn là đề xuất cải tiến các phơng pháp tối u hoá câu lệnh
SQL và các cây phân tích câu lệnh SQL nhằm đa ra các chỉ mục (Index) thích hợp,
tác động đến quá trình thực hiện lệnh làm tăng tốc độ chơng trình.
Bớc đầu những cải tiến mà luận văn đề xuất đã thu đợc những kết quả đáng
khích lệ nh tăng tốc độ thực hiện lên khoảng ba lần với phần mềm Tính hoá đơn và
tăng lên hàng chục lần đối với phần mềm tra cứu Văn bản pháp qui. Hơn thế những
kết quả nghiên cứu của luận văn về phơng pháp tối u có thể dễ dàng áp dụng cho
các phần mềm CSDL khác.
Cuối cùng em chân thành cảm ơn sự hỗ trợ và hớng dẫn tận tình của thầy
giáo Hà Quang Thụy, thầy Trần Xuân Thuận, anh Lê Huy, anh Vũ Mạnh Cờng,
chị Hoàng A Na cùng toàn thể các thầy giáo, cô giáo khoa Công Nghệ Thông Tin,
các anh chị nhân viên Công ty CSE và các bạn đã giúp đỡ em rất nhiều trong quá
trình thực tập, nghiên cứu về đề tài và hoàn thành luận văn này.
Hà Nội - 1998
Trang 5
Vietebooks Nguyn Hong Cng
Chơng I
Hệ cơ sở dữ liệu quan hệ và
ngôn ngữ hỏi có cấu trúc sql
A - Hệ cơ sở dữ liệu quan hệ
1. Quan hệ và các phép toán đại số quan hệ
1.1. Quan hệ
Quan hệ là một tập con của tích Đề-các của một hoặc nhiều miền. Nh vậy một
quan hệ có thể là vô hạn. ở đây luôn luôn giả thiết rằng quan hệ là một tập hữu
hạn. Mỗi hàng của một quan hệ gọi là một bộ, khi đó quan hệ là tập con của tích
Đề-các D1ìD2ìD3ì...ìDn là quan hệ n ngôi. Mỗi bộ của quan hệ có n thành
phần (thờng hiểu là n cột). Các cột của quan hệ gọi là các thuộc tính. Có thể định

r ì s={t/t có dạng (a1,a2,...,an,b1,b2,...,bn) trong đó (a1,a2,...,an r ) và
(b1,b2,...,bn s)}
Phép chiếu
Gọi t là một bộ thuộc r, A R, t[A] là giá trị của bộ tại thuộc tính A, X
R. Với X={B1,B2,...,Bn} thì t[X]=(t[B1],t[B2],...,t[Bn]). Phép chiếu trên tập X của
quan hệ r kí hiệu là r[X] đợc định nghĩa nh sau:
r[X]={t[X]/t r}.
Thực chất của phép chiếu là loại bỏ đi một số thuộc tính và giữ lại những
thuộc tính còn lại của quan hệ đó
Phép chọn
Giả sử F đợc diễn tả bằng một tổ hợp Boolean của các toán hạng, mỗi toán
hạng là một phép so sánh đơn giản giữa hai biến là hai thuộc tính, hoặc một bên là
thuộc tính một bên là hằng, cho giá trị "đúng" hoặc "sai" đối với mỗi bộ đã cho khi
kiểm tra riêng trên bộ đấy.
Trong F có các phép toán so sánh là {<, =, >, >=, <=, }, và các phép logic là
{, , ơ}.
Biểu diễn hình thức có dạng: ơF(r)={t r | F(t)=đúng}
Trang 7
Vietebooks Nguyn Hong Cng
Phép kết nối
Gọi là một trong các phép so sánh {=, >=, >, <, <=, <>}, phép kết nối đợc
định nghĩa nh sau:
Phép kết nối của quan hệ r đối với thuộc tính A với quan hệ s đối với thuộc tính
B là: r >< s = {(tu)tr, us và t[A] u[B]}
với giả thiết mỗi giá trị của thuộc tính t[A] đều có thể so sánh đợc với giá trị
của thuộc tính u[B] (qua phép so sánh ). Trờng hợp là dấu "=" gọi là kết nối
bằng hay còn gọi là kết nối tự nhiên. Khi đó kết nối tại thuộc tính cùng tên của hai
quan hệ và một trong hai thuộc tính đó sẽ đợc loại bỏ qua phép chiếu.
Phép chia
Gọi r là quan hệ n-ngôi và s là quan hệ m-ngôi (n>m, s ). Khi đó phép chia

đối với việc xây dựng mô hình dữ liệu. Trong các hệ thống thông tin quản lý khi
cần thiết kế CSDL quan hệ thờng đòi hỏi phải chọn lợc đồ các quan hệ. Việc chọn
các lợc đồ này tốt hơn hay xấu hơn lợc đồ khác đợc dựa trên một số các tiêu chuẩn
cụ thể nào đó. Do đó cần phải nghiên cứu tính chất cơ bản cũng nh các thuật toán
để có thể nhận đợc những tập lợc đồ phù hợp. Trọng tâm của công việc này là xét
đến các phụ thuộc dữ liệu, nghĩa là các mối ràng buộc có thể có hiện hữu của lợc
đồ. Chẳng hạn nh thuộc tính này xác định duy nhất thuộc tính kia. Ví dụ trong
công việc quản lý tập hoá đơn thì mã hoá đơn xác định duy nhất một khách hàng
thanh toán hoá đơn đó.
Cho R(U) là một lợc đồ quan hệ với U = {A1, A2, ...An} là tập hợp các thuộc
tính. Giả sử có X và Y là tập con của U.
Nói rằng X

Y (X xác định hàm Y hay Y phụ thuộc vào hàm X) nếu bất
kì r là một quan hệ xác định trên R(U) sao cho bất kì hai bộ t1, t2 r mà
t1[X] = t2[X] thì t1[Y] = t2[Y]
Phụ thuộc hàm kí hiệu là FD. Cần lu ý rằng ở đây chỉ xét các phụ thuộc hàm
thoả mãn cho mọi quan hệ trên lợc đồ tơng ứng của nó. Không thể xem xét một
phụ thuộc hàm thoả mãn quan hệ r đặc biệt (ví dụ quan hệ rỗng) của một lợc đồ R
rồi sau đó qui nạp rằng phụ thuộc đó là thoả mãn trên R.
Ví dụ: Mỗi khách hàng tồn tại vừa đúng với một giá trị tơng ứng với từng thuộc
tính nh: Tên khách hàng, địa chỉ ...v.v và có thể viết nh sau:
khách hàng

Tên khách hàng, khách hàng

Địa chỉ, ....
Gọi F là tập hợp các phụ thuộc hàm đối với lợc đồ quan hệ R(U) và X

Y là

Y
A2 (Tăng trởng): Nếu ZU và X

Y thì XZ

YZ, trong đó kí hiệu
XZ là hợp của hai tập hợp X, Z thay cho kí hiệu XZ
A3 (Bắc cầu): Nếu X

Y và Y

Z thì X

Z
Với những lập luận trên có thể rút ra những nhận xét: Giả sử F là tập các phụ
thuộc hàm đúng trên quan hệ r. Nếu X

Y là một phụ thuộc hàm đợc suy dẫn
từ F nhờ hệ tiên đề Armstrong thì X

Y là đúng trên quan hệ r.
Những kết luận suy ra từ hệ tiên đề Armstrong:
a. Luật hợp: Nếu X

Y và X

Z thì X

YZ
b. Luật tựa bắc cầu: Nếu X

(Third Normal Form - 3NF)
Sơ đồ quan hệ giữa các dạng chuẩn dữ liệu
1NF
Một lợc đồ quan hệ R đợc gọi là ở dạng chuẩn một (1NF) nếu và chỉ nếu toàn
bộ các miền có mặt trong R đều chỉ chứa một giá trị nguyên tố hay nói một cách
khác lợc đồ quan hệ phải tồn tại khoá.
Định nghĩa này cho thấy bất kì quan hệ chuẩn nào cũng ở dạng 1NF.
2NF
Lợc đồ quan hệ R ở dạng chuẩn thứ hai nếu nó đã ở dạng chuẩn thứ nhất và
nếu mỗi thuộc tính không khoá của R là phụ thuộc hàm đầy đủ vào khoá chính.
3NF
Trớc khi đa ra định nghĩa của dạng chuẩn 3NF, cần đa thêm khái niệm phụ
thuộc bắc cầu:
Cho một lợc đồ quan hệ R(U), X là tập con của các thuộc tính U và A là một
thuộc tính thuộc U. Thuộc tính A đợc gọi là phụ thuộc bắc cầu vào X trên R
nếu tồn tại một tập con Y của sao cho X

Y thì Y

A nhng Y

/

X (và
không xác định hàm) với A XY.
Tính bắc cầu có thể đợc biểu diễn theo sơ đồ sau:
Trang 11
Vietebooks Nguyn Hong Cng
X
A

Ngôn ngữ này đợc phát triển từ ngôn ngữ SEQUEL-2, thử nghiệm và cài đặt tại
trung tâm nghiên cứu của hãng IBM (tại SALJOISE, CALIFONIA) cho hệ thống quản trị
cơ sở dữ liệu lớn điển hình là SYSTEM-R. Trong SYSTEM-R, SQL vừa đóng vai trò là
một ngôn ngữ có thể thao tác độc lập của ngời dùng đầu cuối, đồng thời lại có khả
năng là một ngôn ngữ con đợc nhúng trong ngôn ngữ chủ PL/1.
Hiện nay ngôn ngữ SQL đã đợc chuyển thành chuẩn chính thức của ANSI
(Viện tiêu chuẩn Mĩ) và ISO (Cơ quan tiêu chuẩn quốc tế) và đợc rất nhiều các
Trang 12
Vietebooks Nguyn Hong Cng
phần mềm Quản trị hệ CSDL hỗ trợ cho ngôn ngữ này nh Oracle, NGRESS, DB2,
SYBASE, INFOMIC ...v.v.
2. Các đặc điểm của ngôn ngữ SQL
Đây là một ngôn ngữ rất phù hợp cho CSDL phân tán theo mô hình Client-
Server, nó cho phép nhiều ngời dùng cùng truy nhập đến một cơ sở dữ liệu với độ
an toàn ổn định và tính bảo mật cao. Ngôn ngữ SQL đảm bảo lu lợng truyền thông
tin trên mạng tối thiểu vì Client chỉ gửi câu hỏi và nhận về kết quả từ Server chứ
không phải gửi cả CSDL đi để xử lý. Đặc biệt là do đợc các hệ quản trị CSDL hỗ
trợ nên phơng thức chung để giao tiếp giữa các phần mềm quản trị CSDL (nh dùng
ODBC) và điều này làm cho hệ thống có tính mở. Thật vậy, có thể sử dụng một hệ
quản trị CSDL tốt (đòi hỏi cấu phần cứng mạnh) nhng có thể vẫn dùng phần mềm
yêu cầu phần cứng thấp trên các Client hoặc có thể dùng các máy NC (Net
Computer). Mặt khác cũng có thể dùng nhiều hệ quản trị CSDL trong cùng một hệ
thống để khai thác các thế mạnh của chúng, ví dụ có thể dùng Lotus Notes trên các
Client (giao diện ngời dùng thân thiện, u việt về truyền thông, xử lý tốt văn bản) và
kết nối vào CSDL Oracle trên Server (tính bảo mật cao, đa ngời dùng, quản lý tốt
các giao tác-Transaction).
Ngôn ngữ SQL còn có khả năng thực hiện đợc những câu hỏi phức tạp mà các
dạng ngôn ngữ khác không đáp ứng đợc và một câu lệnh SQL có thể thay thế cho
một tập hợp các câu lệnh lập trình CSDL thông thờng.
Ngoài cơ cấu xử lý dữ liệu SQL còn có các công cụ để xây dựng các ứng dụng

Liên kết với chính nó (Self joins): Đây là kiểu liên đặc biệt giữa một
bảng với chính nó nh 2 bảng riêng biệt . Để làm đợc việc này thì bảng đó
phải có một tên quan hệ.
4. Tích Đề-các: là kết quả của việc nhân hai tập hợp.
5. Câu lệnh phức: Một câu lệnh phức nh là một câu lệnh SELECT, INSER, UPDATE,
hoặc DELETE có chứa một câu lệnh SELECT khác (đợc gọi là subquery).
6. Các query kết hợp: Một query kết hợp là một query có sử dụng các toán tử
tập hợp nh UNION, UNION ALL, INTERSECT hoặc MINUS.
7. câu lệnh sử dụng View: View là một bảng logic mà thực chất là một câu
lệnh SELECT mà có thể thao tác giống nh đối với bảng.
8. Câu lệnh phân tán: nghĩa là câu lệnh truy nhập dữ liệu từ xa.
Trang 14
Vietebooks Nguyn Hong Cng
Chơng II
CSDL phân tán theo mô hình Client - Server của
Oracle
A. Khái niệm về CSDL phân tán
Một CSDL phân tán là một tập hợp dữ liệu mà về mặt logic tập dữ liệu này
thuộc về một hệ thống, nhng đợc trải trên các vị trí (khác nhau) của một mạng máy
tính.
Chú ý rằng phân tán có nghĩa là dữ liệu không c trú trên một vị trí (khác với
CSDL tập trung, đơn lẻ) và phải có tơng quan logic với nhau (dữ liệu có một số các
thuộc tính ràng buộc chúng với nhau) chứ không phải là một tập hợp CSDL cục bộ
hoặc các tệp c trú tại các vị trí khác nhau trong một mạng máy tính.
Tuy việc quản trị một hệ thống CSDL phân tán sẽ gặp nhiều khó khăn hơn so
với hệ CSDL tập trung nhng xu hớng xây dựng các hệ CSDL phân tán ngày càng
phát triển và có nhiều ứng dụng trong thực tế vì các nguyên nhân sau:
Xuất phát từ chính yêu cầu thực tế về tổ chức và kinh tế: Trên thực tế nhiều tổ
chức là không tập trung, dữ liệu ngày càng lớn và phục vụ cho đa ngời dùng nằm
phân tán vì vậy CSDL phân tán là thích hợp với cấu trúc tự nhiên của các tổ chức

quan tâm này chỉ có thể đợc ứng dụng cho một hệ thống đa xử lý không nhất thiết
phải là một hệ CSDL phân tán. Dù sao, CSDL phân tán có lợi trong sự phân tán dữ
liệu phản ánh các tiêu chuẩn phụ thuộc ứng dụng và số tối đa vị trí các ứng dụng.
Bằng phơng pháp này sẽ giảm tối thểu sự gây trở ngại lẫn nhau giữa các bộ xử lý.
Trọng tải đợc chia sẻ giữa các bộ xử lý, và các tắc nghẽn nguy kịch, nh tắc nghẽn
mạng truyền thông, tắc nghẽn dịch vụ chung cho toàn bộ hệ thống sẽ đợc tránh.
Kết quả này là một hệ quả của đòi hỏi khả năng xử lý tự trị cho các ứng dụng cục
bộ đã đợc phát biểu trong định nghĩa CSDL phân tán.
Tính tin cậy và tính sẵn sàng: CSDL phân tán, đặc biệt với dữ liệu d thừa, cũng
đợc sử dụng để đạt đợc một sự tin cậy và tính sẵn sàng cao hơn. Để đạt đợc mục
đích này cũng gặp một số trở ngại và phải giải quyết bằng việc sử dụng các kỹ
thuật vẫn cha đợc hoàn thiện. Bản thân khả năng xử lý tự trị của các vị trí khác
nhau trong CSDL phân tán cũng không bảo đảm tính tin cậy cao của hệ thống, nh-
ng nó đảm bảo hạn chế sự đổ vỡ toàn bộ hệ thống. Các sự cố trong CSDL phân tán
có thể thờng xuyên hơn một CSDL tập trung vì có số lợng thành phần lớn hơn, nh-
ng hậu quả chỉ ảnh hởng tới các ứng dụng sử dụng dữ liệu của vị trí có sự cố và
việc đổ vỡ toàn bộ hệ thống là hiếm xảy ra.
B. Mô hình xử lý Client-Server
Mô hình xử lý Client-Server là một mô hình liên quan đến việc xử lý hợp tác
đối với các yêu cầu từ Client (hoặc ngời yêu cầu) đợc máy Server tiến hành xử lý
và gửi trả kết quả về cho Client.
Trong khi các hệ phân tán là hiện tợng tơng đối mới thì phân tán ở mức hệ điều
hành đã đợc hiểu khá tờng tận và đợc dùng rộng rãi. Ví dụ phân tán các chức năng
số học và vào/ra, phân tán các chức năng hệ điều hành cho nhiều CPU trong bộ đa
xử lý của IBM 3090/600 (sáu bộ xử lý).
Hệ phân tán đã tiến hoá từ môi trờng nguyên thuỷ nhất để hỗ trợ cho xử lý ứng
dụng. Chính môi trờng xử lý dựa trên Server cha có khả năng xử lý ứng dụng phân
tán. Việc xử lý ứng dụng trên Server đợc thực hiện trên một hệ thống máy tính có
gắn các thiết bị câm không thông minh. Một máy PC đơn lẻ hay máy lớn IBM
với các thiết bị cuối dựa trên hiển thị kí tự là một thí dụ về môi trờng xử lý dựa trên

Các Client khởi xớng tơng tác Client-Server.
Phân tán xử lý ứng dụng giữa Client và Server.
Server kiểm soát các dịch vụ do Client yêu cầu.
Server làm trọng tài cho các yêu cầu tranh chấp.
Các u điểm của mô hình Client-Server:
Phát huy đợc sức mạnh năng lực công nghệ tính toán của PC. Các PC ngày nay
với giá thành nhỏ đã cung cấp một năng lực tính toán đáng kể mà trớc đây các máy
tính lớn mới có đợc.
Trang 17
Vietebooks Nguyn Hong Cng
Cho phép xử lý đợc thực hiện tại gần nguồn dữ liệu cần xử lý (các CSDL trên
Server). Do đó lu lợng (và thời gian đáp ứng) của mạng giảm đi rất nhiều, hiệu
năng và khả năng chuyển tải của mạng đợc tăng lên.
Tạo điều kiện cho việc dùng giao diện đồ hoạ (GUI) có sẵn trên các trạm làm
việc hiện có.
Cho phép và cổ vũ hệ thống mở. Thực tế là Client và Server có thể chạy trên
các nền phần cứng và phần mềm khác nhau.
Tuy nhiên không phải là mô hình Client-Server đã hoàn chỉnh, mô hình này
vẫn còn các nhợc điểm sau đây:
Nếu có nhiều thành phần logic của ứng dụng đợc chuyển về Server thì Server
sẽ nảy sinh hiện tợng cổ chai nh máy tính lớn (main frame) trong mô hình thiết bị
cuối. Các tài nguyên của Server sẽ ở trạng thái bị đòi hỏi làm việc ở mức cao hơn
do việc tăng số ngời tiêu thụ tài nguyên (End User).
Các ứng dụng phân tán, đặc biệt là những ứng dụng đợc thiết kế cho xử lý hợp
tác thờng phức tạp hơn các ứng dụng không phân tán. Tuy nhiên một vài sự phức
tạp này có thể đợc giảm bớt bằng cách thu nhỏ vấn đề lớn thành một tập hợp vấn
đề nhỏ hơn, có thể có đợc tính độc lập lẫn nhau, tơng tự nh trong hệ thiết kế đơn
thể.
C. Hệ quản trị CSDL
Oracle

Client-Server.
Trang 19
Vietebooks Nguyn Hong Cng
Extent
hợp thành
cấp phát
cho
bộ phận
Cơ sở dữ liệu
ORACLE
Tablespace
hợp thành
bộ phận
bộ
phận
hợp
thành
còn trống Đ sử dụngã
hợp thành
hợp thành
Segment
Data Index Cluster
Rollback Temporary Cache
hợp thành
bộ phận
Các file của HĐH
Block
bộ phận
Sơ đồ tổng thể CSDL phân tán của ORACLE
Về mặt logic thì CSDL Oracle đợc cấu tạo nên từ các thành phần nhỏ gọi là

RECO
SMON
CKPT
Data Buffer Cache

Mô hình kiến trúc của Oracle Server có thể chia ra làm ba khối cơ bản nh sau :
Oracle data base : Bao gồm Database Files, Redolog Files, Control Files và
Parameter Files.
-Database File : lu trữ tất cả dữ liệu của cơ sở dữ liệu.
-Redo log File : dùng để khôi phục, ghi lại những thay đổi thông tin trên
database.
-Control File : ghi lại cấu trúc vật lý của Database.
-Parameter File hay còn gọi là Init File chứa các tham số thiết lập môi trờng
làm việc nh đờng dẫn tới CSDL, kích thớc thành phần trong SGA, tạo khả năng
theo dõi các câu lệnh SQL và dựng lại cây phân tích câu lệnh. File này nằm ở th
Trang 21
Vietebooks Nguyn Hong Cng
mục DATABSE trong th mục đã cài Oracle và có tên là INIT + <bí danh
CSDL>+.ORA.
Thể hiện của Oracle Server :
Là sự kết hợp giữa bộ nhớ đệm và các tiến trình nền. Bất cứ khi nào Oracle
Server bắt đầu, một vùng nhớ hệ thống toàn cục (System Global Area : SGA) đợc
cấp phát, đồng thời các tiến trình nền cũng đợc khởi động. Thể hiện của Oracle là
một phơng tiện để truy cập dữ liệu trong Data File.
- SGA: một nhóm bộ đệm dùng chung mà Oracle Server cấp phát cho một thể
hiện.
- Background Process: là các tiến trình chạy ngầm bên dới phục vụ cho tất cả
các User.
- User Process & Server Process :
User Process đợc tạo khi User chạy một chơng trình ứng dụng. Khi đó Oracle

Vậy có thể định nghĩa khái niệm tối u hoá nh sau:
Tối u hoá (optimization) câu lệnh SQL là một quá trình để tạo điều kiện cho
câu lệnh SQL đa ra kết quả đạt hiệu quả cao nhất hiểu theo nghĩa thời gian đáp
ứng và sử dụng tài nguyên hệ thống là nhỏ nhất.
Theo định nghĩa này thì việc tối u hoá câu lệnh SQL không đơn thuần là tối u
mã câu lệnh mà còn có thể thay câu lệnh SQL bằng câu lệnh SQL khác cho ra
cùng kết quả nhng thực hiện hiệu quả hơn, điều chỉnh các tham số hệ thống để tài
nguyên dành cho câu lệnh là hợp lý nhất, thay đổi các thực thể và quan hệ giữa các
thực thể cho câu lệnh thực hiện nhanh hơn.
Chú ý rằng việc tối u hoá không nhất thiết phải đúng là tối u trên mọi khả
năng có thể của các cách cài đặt các câu hỏi bởi vì nếu sử dụng tài nguyên càng
nhiều thì câu lệnh càng có khả năng thực hiện nhanh tuy nhiên sẽ giảm số khối
lệnh đợc xử lý đồng thời và ngợc lại.
Trong thực tế thì quá trình tối u hoá phải tiến hành thờng xuyên trong mọi khâu
sản xuất phần mềm để sản phẩm ngày càng đợc hoàn thiện hơn, điều này cũng là
một trong các lý do ra đời các phiên bản Version 1.0, Version 2.0 ... của phần
mềm.
2. Chiến lợc tối u trên các trên các biểu thức quan hệ
Ullman J.D trong các kết quả nghiên cứu công bố lần đầu tiên của mình đã
trình bày 6 chiến lợc tổng quan cho việc tối u hoá. Các chiến lợc này sẽ đợc thể
hiện trực tiếp hay gián tiếp trong các bớc tối u cụ thể trong Oracle.
Trang 23
Vietebooks Nguyn Hong Cng
Nội dung của các chiến lợc đó nh sau:
2.1. Thực hiện phép chọn càng sớm càng tốt
Biến đổi câu hỏi để đa phép chọn vào thực hiện trớc nhằm làm bớt kích cỡ của
kết quả trung gian và do vậy chi phí phải trả giá cho việc truy nhập bộ nhớ thứ cấp
cũng nh lu trữ của bộ nhớ chính sẽ nhỏ đi.
2.2. Tổ hợp những phép chọn (xác định với tích Đề-các) thành phép kết nối
Nh đã biết, phép kết nối, đặc biệt là phép kết nối bằng có thể thực hiện đợc

dựa trên đặc điểm lu trữ. Thông thờng khi truy xuất tới một hàng của bảng phải
duyệt tuần tự từ đầu của bảng cho tới hàng cần truy xuất. Tuy nhiên mỗi hàng của
các bảng trong Oracle đều chứa một địa chỉ của nó gọi là ROWID. Cách truy xuất
tuần tự rất chậm khi dữ liệu lớn và cần tìm cách truy xuất trực tiếp tới hàng thông
qua ROWID. Do vậy trong Oracle thì dữ liệu đợc lu trữ theo các dạng phân lớp và khi
cần truy xuất tới hàng thì tìm ROWID tơng ứng ở các phân lớp và truy xuất tới hàng
thông qua ROWID tìm đợc:
3.1. Phân lớp dựa vào Index
Khi mà các bảng đợc Index thì cùng với giá trị của trờng Index còn có các
ROWID. Tuỳ theo giá trị của cột Index có là khoá duy nhất hay không thì tơng ứng
với một khoá của Index có thể có một hoặc có nhiều ROWID. Với một giá trị khoá
Index thì sẽ nhận đợc ROWID tơng ứng và ROWID sẽ đợc dùng tìm ra hàng đợc yêu
cầu trong một nhóm các hàng có cùng giá trị khoá Index. Thông thờng các Index
trong Oracle đợc tạo theo dạng B-tree tuy nhiên Oracle còn cung cấp một mức
Index khác gọi là Bitmap Index. Kiểu Index mới mà đặc biệt hiệu quả với những
cột mà số lợng nhiều nhng tập giá trị lại ít ví dụ nh cột giới tính, cột mã khu vực
chẳng hạn. Bằng việc ánh xạ vị trí các cột với các bit sẽ dễ dàng nhận đợc kết cần
tìm. Ví dụ sau sẽ minh hoạ điều này.
Giả sử có bảng SinhViên có các thuộc tính MãSinhViên, GiớiTính, KhuVực có
các giá trị nh sau:
MãSinhViên GiớiTính KhuVực
101 Nữ KV1
102 Nam KV2
103 Nam KV3
104 Nữ KV3
105 Nam KV2
106 Nam KV2
Khi thực hiện phép Index với cột KhuVực sẽ thu đợc bảng sau:
KhuVực=KV1 KhuVực=KV2 KhuVực=KV3
Trang 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status