Thuật toán xử lý tiền tối ƣu câu SQL

Một phần của tài liệu Tiền tối ưu các các SQL chương trình nguồn (Trang 46 - 66)

Chúng ta kết hợp hai phƣơng pháp phân rã SQL và thay thế SQL đã trình bày ở trên để có thuật toán tiền tối ƣu nhƣ sau:

Vào: MRQ: Câu vấn tin có n quan hệ.

Ra: Output: Các câu vấn tin đơn quan hệ

Tien_TOI_UU(MRQ)

Begin1

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ If n= 1 then //chỉ có một quan hệ//

ORQ = MRQ

Output = ThucHien(ORQ) //thực hiện câu vấn tin một quan hệ và kết thúc//

Else

Begin2 //có câu vấn tin đa quan hệ//

MRQ ={ORQ1, ORQ2, … , ORQm, MRQ’}

For i = 1 to m Do Begin3

Output’ = ThucHien(ORQi) //thực hiện ORQi}

Output = Output Output’ //trộn tất cả các kết quả lại// End Begin3

Next i

R = CHON_QH(MRQ’) //R có size nhỏ nhất đƣợc chọn cho phép thế bộ//

For Each t In R Do //t là biến bộ của R// Begin4

MRQ” = thay giá trị cho t trong MRQ’

Output‟ = Tien_TOI_UU (MRQ”) //gọi đệ qui//

Output = Output Output’ //Trộn tất cả các kết quả lại// End Begin4

Next t

End Begin2

//phân rã MRQ thành tập m //câu vấn tin đơn quan hệ //ORQ1, ORQ2, … , ORQm

//và một câu vấn tin đa quan hệ MRQ’//

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ End_if

End Begin1 //Kết thúc Tien_TOI_UU//

Ví dụ:Nhằm minh họa cho thuật toán. Chúng ta xét CSDL (rất đơn

giản) với các quan hệ sau:

DanhHieu (MaDanhHieu, TenDanhHieu, CapQuyetDinh)

MaDanhHieu TenDanhHieu MADH1 MADH2 MADH3 MADH4 Bằng khen Giấy khen Huân chƣơng Huy Chƣơng Bảng 2.2.2. Số liệu của quan hệ DanhHieu

ThamGiaCM(MaThamGiaCM, TenThamGiaCM, GioiTinh)

MaThamGiaCM TenThamGiaCM GioiTinh

MACM1 MACM2 MACM3 MACM4 MACM5 MACM6 MACM7 MACM8

Ngô Quốc Anh Lê Văn Hoàn Trần Văn Lệ Hoàng Văn Minh Hồ Van Canh Bùi Chu Nguyễn Ngọc Bích Lê Hồng Hạnh Nam Nam Nam Nam Nam Nam Nữ Nữ Bảng 2.2.3 Số liệu quan hệ ThamGiaCM

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ KhenThuong(MaThamGiaCM, MaDanhHieu, ThanhTich)

Từ các quan hệ trên, hãy "Cho biết tên và thành tích của những ngƣời tham gia cách mạng đã nhận huân chƣơng?”

Câu vấn tin này có thể đƣợc diễn tả bằng SQL đƣợc ký hiệu là p nhƣ sau:

p: SELECT ThamGiaCM.TenThamGiaCM, KhenThuong.ThanhTich FROM DanhHieu , ThamGiaCM, KhenThuong

WHERE ThamGiaCM.MaThamGiaCM =

KhenThuong.MaThamGiaCM AND KhenThuong.MaDanhHieu = DanhHieu.MaDanhHieu AND TenDanhHieu = "Huân chƣơng"

Theo thuật toán phân rã câu vấn tin p đƣợc thay bởi pl, và p‟, và từ p‟: pl: SELECT DanhHieu.MaDanhHieu INTO DanhHieu‟

FROM DanhHieu

WHERE TenDanhHieu = "Huân chƣơng"

MaThamGiaCM MaDanhHieu ThanhTich

MACM1 MACM2 MACM2 MACM3 MACM3 MACM4 MACM5 MACM6 MACM7 MACM8 MADH1 MADH1 MADH2 MADH3 MADH4 MADH2 MADH2 MADH4 MADH3 MADH3 Chống Mỹ Chống Pháp Nhà giáo Anh hùng lực lƣợng vũ trang Chống Mỹ Anh hùng lao động Chống Mỹ Chống Mỹ Chống Pháp Chống Mỹ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Là câu vấn tin đơn quan hệ DanhHieu. Kết quả trong DanhHieu‟ chỉ có MADH3

P1: SELECT ThamGiaCM.TenThamGiaCM, KhenThuong.ThanhTich FROM ThamGiaCM, KhenThuong, DanhHieu‟

WHERE ThamGiaCM.MaThamGiaCM =

KhenThuong.MaThamGiaCM AND

KhenThuong.MaDanhHieu = DanhHieu‟.MaDanhHieu Là câu vấn tin đa quan hệ ThamGiaCM, KhenThuong, DanhHieu‟. Các bƣớc phân rã tiếp theo là phân rã p' thành p2 và p3:

p2: SELECT KhenThuong.MaThamGiaCM, KhenThuong.ThanhTich INTO KhenThuong‟

FROM KhenThuong, DanhHieu‟

WRERE KhenThuong.MaDanhHieu = DanhHieu.MaDanhHieu Là câu vấn tin đa quan hệ KhenThuong, DanhHieu‟. Kết quả trong KhenThuong‟ chỉ có (MACM3, Anh hùng lực lƣợng vũ trang); (MACM7, Chống Pháp) và (MACM8, Chống Mỹ)

p3: SELECT ThamGiaCM.TenThamGiaCM ,

KhenThuong‟.ThanhTich

FROM ThamGiaCM, KhenThuong‟ WHERE ThamGiaCM.MaThamGiaCM =

KhenThuong‟.MaThamGiaCM Là câu vấn tin đa quan hệ ThamGiaCM, KhenThuong‟.

Nhƣ vậy câu vấn tin p đã đƣợc phân rã thành chuỗi câu vấn tin pl p2 p3 . Câu vấn tin đơn quan hệ pl có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn các câu vấn tin p2 và p3 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ của thuật toán nữa. Theo phép thế bộ của thuật toán p3 đƣợc thay bởi tập 3 câu SQL một quan hệ:

q1 : SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM

WHERE ThamGiaCM.MaThamGiaCM = “MACM3” AND ThanhTich = “Anh hùng lực lƣợng vũ trang”

q2: SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM

WHERE ThamGiaCM.MaThamGiaCM = “MACM7” AND ThanhTich = “Chống Pháp”

q3: SELECT ThamGiaCM.TenThamGiaCM , ThanhTich FROM ThamGiaCM

WHERE ThamGiaCM.MaThamGiaCM = “MACM8” AND ThanhTich = “Chống Mỹ”

Kết quả thực hiện thuật toán cho danh sách những ngƣời nhận huân chƣơng và với thành tích trong bảng sau

TenThamGiaCM ThanhTich Trần Văn Lệ Nguyễn Ngọc Bích Lê Hồng Hạnh Anh hùng lực lƣợng vũ trang Chống Pháp Chống Mỹ

Bảng 2.2.5 Kết quả sau khi thực hiện thuật toán tối ƣu

2.4. Kết luận chƣơng

Chƣơng 2 chỉ ra cách tìm kiếm vét cạn các câu vấn tin dạng SQL đa quan hệ sau đó dùng phƣơng pháp tối ƣu động Tien_TOI_UU để chuyển nó thành một tập các câu vấn tin đơn quan hệ và thay lại vào vị trí câu SQL đã tìm.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1 Mô tả bài toán

Để thử nghiệm tối ƣu các câu lệnh SQL, chúng tôi xây dựng hệ thống quản lý sinh viên trƣờng đại học CNTT & TT – Đại học Thái Nguyên. Sau đó, thực hiện tiền tối ƣu câu lệnh SQL từ chƣơng trình.

Trƣờng CNTT & TT – ĐH Thái Nguyên hiện có khoảng 10000 sinh viên đang theo học và có khoảng 8000 sinh viên đã tốt nghiệp. Nhu cầu của nhà trƣờng là xây dựng hệ thống cho phép quản lý thông tin sinh viên về lý lịch sinh viên, điểm của sinh viên, học bổng …

Qua khảo sát thực tế, chúng tôi nhận thấy yêu cầu của hệ thống nhƣ sau: Yêu cầu chức năng:

- Hệ thống cho phép cập nhập thông tin cá nhân của sinh viên: họ tên, ngày sinh, số chứng minh thƣ nhân dân, quê quán, nơi ở, thông tin về bố mẹ, gia đình của sinh viên.

- Hệ thống cho phép cập nhập các thông tin về điểm các môn học của sinh viên, điểm rèn luyện của sinh viên.

- Tính đƣợc học bổng.

- Lƣu đƣợc thông tin về nơi công tác, đơn vị công tác của sinh viên sau khi ra trƣờng.

- Cho phép thực hiện đƣợc các thống kê báo cáo, tìm kiếm thông tin. Yêu cầu phi chức năng:

- Hệ thống cho phép cập nhập, tìm kiếm, thống kê nhanh chóng và chính xác.

Hệ thống chúng tôi xây dựng để minh hoạ cho việc tối ƣu câu lệnh SQL nên không đi sâu vào quy trình nghiệp vụ của hệ thống cũng nhƣ phân tích thiết kế hệ thống thực. Vì vậy, cơ sở dữ liệu của hệ thống chúng tôi xây dựng đơn giản nhƣ sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

BẢNG SINH VIÊN

Tên trƣờng Kiểu dữ liệu Diễn giải

MaSV Char(10) Mã sinh viên

TenSV Nvarchar(50) Tên sinh viên

MaLop Char(10) Mã lớp

QueQuan Nvarchar(200) Quê quán

GioiTinh Int Giới tính

NgaySinh Date Ngày sinh

SDT Char(12) Số điện thoại

CuuSinhVien Int Cựu sinh viên của

trƣờng hay không? DiaChiThuongTru Nvarchar(200) Địa chỉ thƣờng trú DonViCongTac Nvarchar(200) Đơn vị công tác

SoCMTND Char(9) Số chứng minh thƣ

nhân dân

NgayKetNapDoan Date Ngày kết nạp đoàn

NgayVaoDang Date Ngày vào đảng

MaDoiTuong Char(10) Mã đối tƣợng

Bảng 3.1: Bảng sinh viên

BẢNG LỚP

Tên trƣờng TrƣờngKiểu dữ Diễn giải

MaLop Char(10) Mã lớp

TenLop Nvarchar(50) Tên lớp

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

BẢNG MÔN HỌC

Tên trƣờng TrƣờngKiểu dữ Diễn giải

MaMon Char(10) Mã môn

TenMon Nvarchar(50) Tên môn học

SoTinChi Int Số tín chỉ Bảng 3.3: Bảng môn học BẢNG ĐIỂM Tên trƣờng TrƣờngKiểu dữ Diễn giải

MaSV Char(10) Mã sinh viên

MaMon Char(10) Mã môn học

MaLanHoc Int Mã lần học

DiemThuongXuyen Float Điểm thƣờng xuyên

DiemThi Float Điểm thi

Bảng 3.4: Bảng điểm

ĐIỂM RÈN LUYỆN Tên trƣờng TrƣờngKiểu

dữ

Diễn giải

MaSV Char(10) Mã sinh viên

MaHocKy Char(10) Mã học kỳ

Diem Int Điểm rèn luyện

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

ĐỐI TƢỢNG Tên trƣờng TrƣờngKiểu

dữ

Diễn giải

MaDoiTuong Char(10) Mã đối tƣợng

TenDoiTuong Nvarchar(50) Tên đối tƣợng Bảng 3.6: Bảng đối tƣợng

GIA ĐÌNH Tên trƣờng TrƣờngKiểu

dữ

Diễn giải

MaSV Char(10) Mã sinh viên

MaThanhVien Nvarchar(50) Mã thành viên Bảng 3.7: Bảng gia đình

HỌC KỲ

Tên trƣờng TrƣờngKiểu dữ Diễn giải

MaHocKy Char(10) Mã học kỳ

TenHocKy Nvarchar(50) Tên học kỳ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

QUAN HỆ Tên trƣờng TrƣờngKiểu

dữ

Diễn giải

MaQuanHe Char(10) Mã quan hệ

TenQuanHe Nvarchar(50) Tên quan hệ Bảng 3.9: Bảng quan hệ

THÀNH VIÊN GIA ĐÌNH Tên trƣờng TrƣờngKiểu

dữ

Diễn giải

MaThanhVien Char(10) Mã thành viên

MaQuanHe Char(10) Mã quan hệ

HoTen Nvarchar(50) Họ tên

Tuoi Int Tuổi

NgheNghiep Nvarchar(50) Nghề nghiệp

SDT Char(12) Số điện thoại

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

3.2 Thử nghiệm tiền tối ƣu câu lệnh SQL

3.2.1 Xây dựng chương trình thử nghiệm.

Hình 3.1: Giao diện chính chương trình

Chƣơng trình thực hiện 2 câu lệnh truy vấn với 2 sự lựa chọn Lý lịch sinh viênDanh sách điểm:

-Câu lệnh truy vấn 1: Lấy danh sách điểm của tất cả các sinh viên đã học môn Toán cao cấp 1 bao gồm cả lần học đi và lần học lại.

-Câu lệnh truy vấn 2: In thông tin lý lịch của một sinh viên có mã sinh viên SV001

Nút “Lấy dữ liệu thông thường” cho phép thực hiện lấy dữ liệu theo câu lệnh truy vấn chƣa đƣợc tối ƣu.

Nút “Lấy dữ liệu sau khi phân rã” cho phép thực hiện lấy dữ liệu theo câu truy vấn đã đƣợc tối ƣu.

Sau khi thực hiện, chƣơng trình sẽ đƣa ra kết quả và tính thời gian thực hiện của câu lệnh truy vấn trƣớc và sau khi tối ƣu.

Giải pháp: là phần mô tả cách thức thực hiện tối ƣu câu lệnh truy vấn SQL một cách tƣờng minh nhất.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Công cụ: Chƣơng trình này đƣợc thực hiện trên CSDL không có thực, qua đó phần Công cụ giúp thêm nhanh những bản ghi vào bảng CSDL. Với lƣợng CSDL lớn sẽ làm nổi bật đƣợc tính tối ƣu của giải thuật.

3.2.2. Thực hiện thử nghiệm.

Để nhận biết đƣợc sự thay đổi về tốc độ thực hiện câu lệnh truy vấn SQL trƣớc và sau khi tiền tối ƣu, cần phải có lƣợng dữ liệu đủ lớn. Chúng tôi xây dựng công cụ tự động chèn dữ liệu vào Cơ sở dữ liệu.

Hình 3.2: Giao diện phần chèn dữ liệu tự động

Sau đó, chúng tôi thử nghiệm với 2 câu lệnh truy vấn sau:

Câu lệnh truy vấn 1: Lấy danh sách điểm của tất cả các sinh viên đã học môn Toán cao cấp 1 bao gồm cả lần học đi và lần học lại.

Câu lệnh đƣợc thể hiện nhƣ sau: p: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

tblDiem.DiemThi

FROM tblDiem, tblSinhVien,

tblMonHoc

WHERE tblSinhVien.MaSV = tblDiem.MaSV

and tblDiem.MaMonHoc = tblMonHoc.MaMonHoc and tblMonHoc.TenMonHoc = N'Toán cao cấp 1'

Hình 3.3: Thực hiện truy vấn lấy danh sách điểm sinh viên

Theo luật phân rã câu vấn tin p đƣợc thay bởi P1: SELECT MaMonHoc

FROM tblMonHoc INTO TGMonHoc WHERE TenMonHoc = N'Toán cao cấp 1'

Là câu vấn tin đơn quan hệ TGMonHoc. Kết quả trong TG1 chỉ có „ToanCC‟

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P2: SELECT tblSinhVien.MaSV,

tblSinhVien.TenSV,

tblDiem.DiemThuongXuyen,

tblDiem.DiemThi

FROM tblDiem, tblSinhVien,TGMonHoc WHERE tblSinhVien.MaSV = tblDiem.MaSV

and tblDiem.MaMonHoc = TGMonHoc.MaMonHoc

Là câu lệnh đa quan hệ, P2 đƣợc phân rã thành P21 và P22: P21: SELECT tblDiem.MaSV,tblDiem.DiemThuongXuyen,

tblDiem.DiemThi INTO TGDiem FROM tblDiem, TGMonHoc

WHERE tblDiem.MaMonHoc = TGMonHoc.MaMonHoc P22: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,

TGDiem.DiemThi, TGDiem.DiemThuongXuyen

FROM tblSinhVien, TGDiem

WHERE TGDiem.MaSV = tblSinhVien.MaSV

Nhƣ vậy câu vấn tin p đƣợc phân rã thành chuỗi câu vấn tin p1-> p21->p22. Câu vấn tin đơn quan hệ p1 có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn câu lệnh p21, p22 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã của thuật toán. Theo phép thế bộ của thuật toán, p22 đƣợc thay bởi tập 3 câu lệnh SQL một quan hệ:

q1: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV, '9' as DiemThuongXuyen, 9' as DiemThi

FROM tblSinhVien

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ q2: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV,

'10' as DiemThuongXuyen, '10' as DiemThi FROM tblSinhVien

WHERE tblSinhVien.MaSV = 'SV001'

q3: SELECT tblSinhVien.MaSV, tblSinhVien.TenSV, '10' as DiemThuongXuyen, '10' as DiemThi FROM tblSinhVien

WHERE tblSinhVien.MaSV = 'SV002'

Kết quả truy vấn cho ta danh sách điểm những sinh viên đã học môn Toán cao cấp 1 nhƣ sau:

Hình 3.4 Thực hiện truy vấn lấy danh sách điểm sinh viên sau khi tối ưu SQL

Và thời gian thực hiện câu lệnh truy vấn là: -Câu lệnh chƣa tối ƣu: 0.2157369

-Câu lệnh tối ƣu: 0.1155684

Câu lệnh truy vấn 2: In thông tin lý lịch của một sinh viên có mã sinh viên SV001

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P: SELECT tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep, tblThanhVienGiaDinh.SDT, tblThanhVienGiaDinh.Tuoi, tblQuanHe.TenQuanHe

FROM tblQuanHe, tblGiaDinh, tblThanhVienGiaDinh WHERE tblGiaDinh.MaSV = 'SV001'

and tblQuanHe.MaQuanHe =

tblThanhVienGiaDinh.MaQuanHe

and tblGiaDinh.MaThanhVien =

tblThanhVienGiaDinh.MaThanhVien

Hình 3.5 Thực hiện truy vấn lấy thông tin sinh viên

Câu lệnh p đƣợc phân rã nhƣ sau: P1: SELECT MaThanhVien FROM tblGiaDinh

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ P2: SELECT tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep, tblThanhVienGiaDinh.SDT, tblThanhVienGiaDinh.Tuoi, tblQuanHe.TenQuanHe FROM tblThanhVienGiaDinh,tblQuanHe,TGGiaDinh WHERE tblQuanHe.MaQuanHe = tblThanhVienGiaDinh.MaQuanHe And tblThanhVienGiaDinh.MaThanhVien = TGGiaDinh.MaThanhVien

P2 là câu lệnh đa quan hệ, đƣợc phân rã tiếp thành p21 và p22 nhƣ sau: P21: SELECT tblThanhVienGiaDinh.MaQuanHe,

tblThanhVienGiaDinh.HoTen, tblThanhVienGiaDinh.NgheNghiep,

tblThanhVienGiaDinh.SDT,

tblThanhVienGiaDinh.Tuoi

FROM tblThanhVienGiaDinh, TGGiaDinh INTO TGThanhVienGiaDinh WHERE tblThanhVienGiaDinh.MaThanhVien = TGGiaDinh.MaThanhVien P22: SELECT tblQuanHe.TenQuanHe, TGThanhVienGiaDinh.HoTen, TGThanhVienGiaDinh.NgheNghiep, TGThanhVienGiaDinh.SDT, TGThanhVienGiaDinh.Tuoi

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ WHERE TGThanhVienGiaDinh.MaQuanHe =

tblQuanHe.MaQuanHe

Nhƣ vậy câu vấn tin p đƣợc phân rã thành chuỗi câu vấn tin p1 -> p21->p22. Câu vấn tin đơn quan hệ p1 có thể dùng thể vấn tin ORQOP (One Relation Query Optimization Processor). Còn câu lênh p21, p22 không phải loại đơn quan hệ và cũng không thể rút gọn hơn nữa bằng phép phân rã của thuật toán. Theo phép thế bộ của thuật toán, p22 đƣợc thay bởi tập 2 câu lệnh SQL một quan hệ:

Q1: SELECT N'Nguyễn Văn A' as HoTen,

tblQuanHe.TenQuanHe,

N'Giáo viên' as NgheNghiep, '123456' as SDT,

'40' as Tuoi

FROM tblQuanHe

WHERE tblQuanHe.MaQuanHe = 'Bo' Q2: SELECT N'Nguyễn Thị B' as HoTen,

tblQuanHe.TenQuanHe, N'Kỹ sƣ' as NgheNghiep, '123456' as SDT, '35' as Tuoi

FROM tblQuanHe WHERE tblQuanHe.MaQuanHe = 'Me' Và kết quả truy vấn của câu lệnh truy vấn trên là:

Hình 3.6 Thực hiện truy vấn lấy thông tin sinh viên sau khi tối ưu SQL

Thời gian thực hiện trƣớc tối ƣu: 0.1989044 Thời gian thực hiện sau khi tối ƣu: 0.09933

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

KẾT LUẬN

Trong các tài liệu nghiên cứu và ứng dụng các lệnh SQLs, AQLs, OTs thì SQL thƣờng đƣợc chỉ ra trƣớc. Từ đó bằng phƣơng pháp tối ƣu hóa thủ công, thậm chí có thể tự động tối ƣu hóa bằng các thuật toán đã cho tại chƣơng 2 mục 2.3. Nhƣng việc tìm kiếm thủ công trong chƣơng trình nguồn, viết lại câu vấn tin SQL sẽ mất không ít thời gian và cũng không tránh đƣợc các sai sót. Phƣơng pháp đã đƣợc trình bày trong luận văn này nhằm khắc phục các nhƣợc điểm trên, đồng thời sẽ hỗ trợ đắc lực cho hƣớng nghiên cứu và ứng dụng thuật toán song song, lập trình song song, xử lí song song và phân tán,…

HƢỚNG PHÁT TRIỂN

Nghiên cứu này có thể tiếp tục phát triển tiếp theo nhƣ sau:

Có thể thay phƣơng pháp tối ƣu tĩnh bằng phƣơng pháp tối ƣu động, nghĩa là tìm các chiến lƣợc truy nhập/xuất đến các quan hệ, sau đó tìm ra

Một phần của tài liệu Tiền tối ưu các các SQL chương trình nguồn (Trang 46 - 66)

Tải bản đầy đủ (PDF)

(66 trang)