D. Kết luận về phơng pháp tối u trong Oracle
B. Cách thức tìm ra những lệnh cần tối u trong phần mềm
Để tìm ra đợc các lệnh SQL cha tối u trong phần mềm cần tạo ra bản sao các lệnh đã đợc thực hiện một cách thực sự (câu lệnh SQL đợc thực hiện có thể không giống nh câu lệnh SQL viết trong chơng trình) sau đó xây dựng lại cây phân tích. Quá trình tạo bản sao câu lệnh trong phần mềm chỉ đợc thực hiện khi các tham số trong Parameter File có giá trị:
timed_statistics = true # Tính toán thời gian thực hiện câu lệnh
sql_trace = true # Tạo các file có tên mở rộng là trc
# Nơi chứa các file *.trc do các tiến trình của hệ thống background_dump_dest=%RDBMS80%\trace
# Nơi chứa các file *.trc do các tiến trình của ngời dùng user_dump_dest=%RDBMS80%\trace
Sau khi thực hiện các thay đổi trong Init File thì CSDL phải đợc kết nối lại (Shutdown sau đó Startup) để các tham số này có tác dụng. Khi thực hiện một ch- ơng trình thì hình ảnh của các tiến trình sinh ra sẽ đợc ghi lại ra đĩa. Bằng trình tiện ích TKPROF.EXE có thể giải nghĩa các tiến trình này cũng nh dựng lại cây phân tích lệnh từ đó tìm ra các lệnh cha hợp lý mà cần thiết phải tối u (có thể nối nhiều file *.trc lại cho TKPFOF thi hành một lần).
Cú pháp:
TKPROF filename1 filename2 [ SORT = [ ( ] option [ , option, option,..) ] ] [ PRINT = integer ] [ INSERT = filename3 ] [ SYS = Yes | No ] [ TABLE = schema.table ]
[ EXPLAIN = user/password ]
Trong đó các tham số
- filename1: tên file ảnh của tiến trình ( *.trc ) - filename2: tên file kết quả của TKPROF.
-EXPLAIN: Kết nối vào CSDL của Oracle với danh nghĩa user/password rồi xây dựng cây phân tích lệnh bằng EXPLAIN PLAN (xem phụ lục A).
- TABLE: Tên lợc đồ và tên bảng trong lợc đồ trung gian để tạo ra file kết quả. - INSERT: Tên file SQL script tạo bảng chứa nội dung file kết quả.
- SYS: Bật/tắt danh sách câu lệnh của quản trị hệ thống (User SYS)
- SORT: Sắp xếp thứ tự kết quả theo trình tự chỉ ra nh thời gian, số hàng, số khối đọc từ đĩa...
- RECORD: Tạo ra SQL script ghi lại các câu lệnh đã đợc thực hiện để có thể tái hiện lại các quá trình của ngời dùng.
Trong file kết quả của TKPROF gồm có các thông tin về các quá trình phân tích lệnh (parsed), thực hiện (Executed), lấy kết quả (Fetched) của câu lệnh, số hiệu tiến trình ngời dùng, số lần các gói hàm th viện phải nạp vào (Library Cache Misses), cây phân tích lệnh. Trong các cột của cây phân tích lệnh có thông tin số lần thực hiện câu lệnh (count), thời gian sử dụng CPU (CPU), thời gian trong các giai đoạn thực hiện câu lệnh (Elapsed), số lợng khối dữ liệu đọc từ đĩa (Disk), số bộ đệm cần nhận (Query), số bộ đệm hiện có (Current), số hàng đợc truy xuất (Rows). Ngoài ra Oracle còn cung cấp lệnh EXPLAIN PLAN để đa ra cây phân tích lệnh, ANALYZE để phân tích dữ liệu từ môi trờng SQL/PLUS (xem phần phụ lục A).