Tuning PL/SQL Applications

12.2. Mengidentifikasi PL/SQL Performance Problems

Ketika kita membangun aplikas-aplikasi PL/SQL yang semakin lama semakin besar, menajdi lebih sulit untuk mengisolasi masalah-masalah performa. Karena itu, PL/SQL menyediakan API untuk menangkap run-time behavior dan untuk membantu kita mengidentifikasi performance bottlenecks. PL/SQL juga menyediakan sebuah Trace API untuk melacak eksekusi dari program-program pada server. Kita dapat menggunakan Trace untuk melacak eksekusi dengan subprogram atau exception.

Oracle MagazineOracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world’s largest enterprise software company.

For more information about Oracle, please visit their Web site at http://www.oracle.com. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Get Free Oracle Magazine

12.2.1. Profiler API: Package DBMS_PROFILER

Profiler API diterapkan sebagai package DBMS_PROFILER, yang menyediakan services untuk mendapatkan untuk mendapatkan dan menyimpan run-time statistics. Informasi tersebut disimpan di dalam database tables, yang dapat kita query kemudian. Sebagai contoh, kita dapat mempelajari berapa banyak waktu yang dihabiskan untuk mengeksekusi setiap baris PL/SQL dan subprogram.

Untuk menggunakan Profiler, pertama kita memprofile session, menjalankan aplikasi kita dalam waktu yang cukup panjang untuk mendapatkan code coverage yang cukup memadai, menyegarkan data yang telah dikumpulkan ke database, kemudian menghentikan profiling session tersebut. Dalam sebuah session tertentu, kita melakukan langkah-langkah berikut:

  1. Dimulai dengan memanggil procedure start_profiler di dalam package DBMS_PROFILER dan menghubungkan sebuah comment dengan Profiler session.
  2. Menjalankan aplikasi untuk di-profile.
  3. Memanggil procedure flush_data secara berulang untuk menyimpan incremental data dan membebaskan memory yang dialokasikan untuk struktur-struktur data.
  4. Berhenti dengan memanggil procedure stop_profiler.

Profiler mengikuti jejak eksekusi program kita, menghitung waktu yang dihabiskan pada setiap baris dan di dalam setiap subprogram. Kita dapat menggunakan collected data untuk meningkatkan performa. Sebagai contoh, kita dapat berfokus pada subprograms yang berjalan lambat.

Menganalisa Collected Performance Data

Langkah berikutnya adalah menentukan mengapa lebih banyak waktu dihabiskan untuk mengeksekusi code segments tertentu atau mengakses data structures tertentu. Menemukan area-area masalah dengan melakukan query terhadap performance data. Fokus pada subprograms atau packages yang menggunakan waktu eksekusi terbanyak, menginspeksi performance bottlenecks yang mungkin seperti perintah-perintah SQL, loops, dan recursive functions.

Menggunakan Trace Data untuk Meningkatkan Performa

Gunakan hasil-hasil dari analisa kita untuk mengerjakan kembali algoritma-algoritma yang lambat. Sebagai contoh, bersama dengan pertumbuhan eksponensial terhadap data, kita mungkin perlu mengganti sebuah pencarian linear dengan sebuah pencarian binary. Juga, lihat juga inefisiensi yang disebabkan oleh data structures yang tidak tepat, dan, jika perlu, ganti data structures tersebut.

12.2.2. Trace API: Package DBMS_TRACE

Dengan aplikasi-aplikasi yang besar dan kompleks, menjadi sulit untuk melacak pemanggilan diantara subprograms. Dengan melacak kode kita menggunakan Trace API, kita dapat melihat urutan dari eksekusi subprograms. Trace API diterapkan sebagai PL/SQL package DBMS_TRACE yang menyediakan services untuk melacak eksekusi oleh subprogram atau exception.

Untuk menggunakan Trace, kita menjalankan tracing session, menjalankan aplikasi kita, kemudian menghentikan tracing session. Selama program dijalankan, trace data dikumpulkan dan disimpan di dalam database tables. Di dalam sebuah session khusus, kita mengambil langkah-langkah berikut ini:

  1. Secara opsional, pilih subprograms tertentu untuk melacak data collection.
  2. Mulai dengan memanggil procedure set_plsql_trace di dalam package DBMS_TRACE.
  3. Jalankan aplikasi untuk dilacak
  4. Berhenti dengan memanggil procedure clear_plsql_trace.

Mengontrol Trace

Melacak aplikasi-aplikasi besar dapat menyebabkan timbulnya jumlah data yang sangat besar yang sulit untuk diatur. Sebelum memulai Trace, kita dapat secara opsional membatasi volume dari data yang dikumpulkan dengan memilih subprograms tertentu untuk melakukan trace data collection.

Sebagai tambahan, kita dapat memilih sebuah tracing level. Sebagai contoh, kita dapat memilih untuk melacak seluruh subprograms dan exceptions, atau kita dapat memilih subprograms dan exceptions tertentu.

 

Pages: 1 2 3

 

Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi.
Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma dsb. Harga Rp. 24.800,- (157 halaman)

 

Related Articles

 

Comments

[…] Silahkan melanjutkan membaca pembahasan Tuning PL/SQL Applications […]

[…] Tuning PL/SQL Applications […]

Leave a comment

(required)

(required)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word