Thursday, November 25, 2021

Mendapatkan Hasil Maksimal dari Oracle 8i/9i Statspack

Statspack adalah seperangkat utilitas pemantauan dan pelaporan kinerja yang disediakan oleh Oracle untuk Oracle8i dan di atasnya. Seorang pengguna secara otomatis dibuat oleh skrip instalasi - pengguna ini, PERFSTAT, memiliki semua objek yang dibutuhkan oleh paket ini. Untuk informasi lebih lanjut tentang Statspack, baca dokumentasi di file $ORACLE_HOME/rdbms/admin/spdoc.txt.


Instal Statspack

Untuk menginstal paket, ubah ke direktori ORACLE_HOME rdbms/admin, atau tentukan sepenuhnya direktori ORACLE_HOME/rdbms/admin saat memanggil skrip instalasi, SPCREATE.


Untuk menjalankan skrip instalasi, Anda harus menggunakan SQL*Plus dan terhubung sebagai pengguna dengan hak istimewa SYSDBA. Misalnya, mulai SQL*Plus, lalu:


Di UNIX : SunOS/HP UX/Linux


SQL> CONNECT / SEBAGAI SYSDBA

SQL> @?/rdbms/admin/spcreate


Di Windows: XP/NT/2000/2003


SQL> CONNECT / SEBAGAI SYSDBA

SQL> @%ORACLE_HOME%rdbmsadminspcreate


Skrip instalasi SPCREATE menjalankan tiga skrip lainnya. Skrip ini dipanggil secara otomatis, jadi Anda tidak perlu menjalankannya:


* SPCUSR: Membuat pengguna dan memberikan hak istimewa

* SPCTAB: Membuat tabel

* SPCPKG: Membuat paket


Mengkonfigurasi Statspack


Bagaimana cara menemukan level Ststapack saat ini?

- Lihat tabel PERFSTST.STATS$SNAPSHOT

atau

- Jalankan spreport.sql dan Anda akan melihatnya bersama dengan snapid yang terdaftar


STATS$SNAPSHOT akan menunjukkan level untuk setiap Snapshot yang direkam


Ubah Tingkat

jalankan statspack.snap (i_snap_level=> 7, i_modify_parameter=>'true');


Level >= 0 Statistik Kinerja Umum

Levels >= 5 Data Tambahan: Pernyataan SQL

Levels >= 6 Data Tambahan: Paket SQL dan Penggunaan Paket SQL

Level >= 10 Statistik Tambahan: Kait Orang Tua dan Anak


Menggunakan Statspack (mengumpulkan data)


sqlplus perfstat

--

-- Ambil cuplikan performa

--

jalankan statspack.snap;

--

-- Dapatkan daftar snapshot

--

kolom snap_time format a21

pilih snap_id,to_char(snap_time,'MON dd, yyyy hh24:mm:ss') snap_time

dari sp$snapshot;

--


Menjalankan laporan Kinerja

--

-- Jalankan laporan Statspack:

--

@?/rdbms/admin/spreport.sql


Temukan Sulit memukul SQL dari Statpack Repository

1. Login sebagai pengguna PERFSTAT pada database.

Ini tidak akan berfungsi kecuali Anda login sebagai pengguna PERFSTAT.


2. Temukan DBID menggunakan

"pilih dbid dari stats$sql_summary"


3. Cari MIN(SNAP_ID) pBgnSnap & MAX(SNAP_ID) pEndSnap dari


pilih min(snap_id),max(snap_id),min(snap_time),max(snap_time) dari stats$snapshot

di mana to_number(to_char(snap_time,'HH24')) > 10 dan to_number(to_char(snap_time,'HH24')) < 13 dan trunc(snap_time)=trunc(sysdate)


Tampilkan Semua SQL Stmts diurutkan oleh Logical Reads


Pilih

e.hash_value "E.HASH_VALUE"

, e.modul "Modul"

, e.buffer_gets - nvl(b.buffer_gets,0) "Buffer Mendapat"

, e.eksekusi - nvl(b.eksekusi,0) "Eksekusi"

, Putaran( dekode ((e.eksekusi - nvl(b.eksekusi, 0)), 0, to_number(NULL)

, (e.buffer_gets - nvl(b.buffer_gets,0)) /

(e.executions - nvl(b.executions,0))) ,3) "Mendapat / Eksekusi"

, Bulat(100*(e.buffer_gets - nvl(b.buffer_gets,0))/sp920.getGets(:pDbID,:pInstNum,:pBgnSnap,:pEndSnap,'NO'),3) "Persen dari Total"

, Putaran((e.cpu_time - nvl(b.cpu_time,0))/1000000,3) "CPU (s)"

, Putaran((e.elapsed_time - nvl(b.elapsed_time,0))/1000000,3) "Elapsed (s)"

, Bulat(e.fetches - nvl(b.fetches,0)) "Ambil"

, sp920.getSQLText ( e.hash_value , 400) "Pernyataan SQL"

dari stats$sql_summary e

, stats$sql_summary b

dimana b.snap_id(+) = :pBgnSnap

dan b.dbid(+) = e.dbid

dan b.nomor_instance(+) = e.nomor_instance

dan b.hash_value(+) = e.hash_value

dan b.alamat(+) = e.alamat

dan b.text_subset(+) = e.text_subset

dan e.snap_id = :pEndSnap

dan e.dbid = :pDbId

dan e.instance_number = :pInstNum

pesan sebelum 3 desc


Tampilkan SQL Stmts di mana SQL_TEXT seperti '%'

Pilih

e.hash_value "E.HASH_VALUE"

, e.modul "Modul"

, e.buffer_gets - nvl(b.buffer_gets,0) "Buffer Mendapat"

, e.eksekusi - nvl(b.eksekusi,0) "Eksekusi"

, Putaran( dekode ((e.eksekusi - nvl(b.eksekusi, 0)), 0, to_number(NULL)

, (e.buffer_gets - nvl(b.buffer_gets,0)) /

(e.executions - nvl(b.executions,0))) ,3) "Mendapat / Eksekusi"

, Bulat(100*(e.buffer_gets - nvl(b.buffer_gets,0))/sp920.getGets(:pDbID,:pInstNum,:pBgnSnap,:pEndSnap,'NO'),3) "Persen dari Total"

, Putaran((e.cpu_time - nvl(b.cpu_time,0))/1000000,3) "CPU (s)"

, Putaran((e.elapsed_time - nvl(b.elapsed_time,0))/1000000,3) "Elapsed (s)"

, Bulat(e.fetches - nvl(b.fetches,0)) "Ambil"

, sp920.getSQLText ( e.hash_value , 400) "Pernyataan SQL"

dari stats$sql_summary e

, stats$sql_summary b

dimana b.snap_id(+) = :pBgnSnap

dan b.dbid(+) = e.dbid

dan b.nomor_instance(+) = e.nomor_instance

dan b.hash_value(+) = e.hash_value

dan b.alamat(+) = e.alamat

dan b.text_subset(+) = e.text_subset

dan e.snap_id = :pEndSnap

dan e.dbid = 2863128100

dan e.instance_number = :pInstNum

dan sp920.getSQLText ( e.hash_value , 400) seperti '%ZPV_DATA%'

pesan sebelum 3 desc


Cara mengambil seluruh SQL + Execution PLAN dari Statspack untuk sebuah tabel


Untuk mengambil paket SQL, Anda harus memiliki statspack yang berfungsi di level 7


1. sprepsql.sql

Laporan SQL (sprepsql.sql) adalah laporan untuk pernyataan SQL tertentu. Laporan SQL biasanya dijalankan setelah memeriksa sekte SQL beban tinggiion laporan kesehatan instans. Laporan SQL menyediakan statistik dan data terperinci untuk satu pernyataan SQL (seperti yang diidentifikasi oleh Nilai Hash dalam laporan Statspack).


2. Nilai Hash diketahui

- Pilih * dari STATS$SQLTEXT di mana hash_value='%from stats pack%' diurutkan demi sepotong;


- Untuk Obyek pertama cari OBJECT_ID


pilih * dari sys.obj$ di mana name='TRANSACTION'


pilih snap_time

snap_id,

rencana_hash_nilai,

OBYEK# ,

OBJECT_NAME ,

OPERASI ,

PILIHAN ,

BIAYA ,

IO_COST ,

KARDINALITAS ,

POSISI ,

CPU_COST ,

PENGOPTIMAL,

SEARCH_COLUMNS ,

BYTE ,

DISTRIBUSI ,

TEMP_SPACE ,

ACCESS_PREDICATES ,

FILTER_PREDICATES

dari stats$SQL_PLAN a , STATS$SNAPSHOT b di mana objek#='&&OBJECT_ID' dan a.snap_id=b.snap_id;


<a href="http://OracleDbaSupport.co.uk">http://OracleDbaSupport.co.uk</a> adalah situs blog Sagar Patil, konsultan oracle independen dengan pemahaman yang baik tentang bagaimana database Oracle engine & Aplikasi Oracle bekerja sama.


Saya seorang Oracle Certified RAC DBA dengan pengalaman lebih dari sepuluh tahun mendukung contoh Produksi dan Pengembangan database Oracle.

- Ahli dalam membangun sistem RAC 10g serta rman, cadangan penjaga data, dan strategi pemulihan untuk sistem produksi, pengujian, dan pengembangan.

- Instruktur untuk pengembang arsitektur Oracle, fitur Oracle9i/10g, metodologi tuning, replikasi database, PL/SQL dan Oracle Http Server.

- Pengguna Statspack, SQL Trace, OEM Performance Manager, Quest Central, Quest Foglight, Quest SQL impact, Bennchamark factory, Quest SQL optimizer, TOAD, dan skrip khusus.

- Penulis standar & praktik terperinci untuk instalasi, peningkatan, penyetelan & pencadangan Oracle pada Database Oracle dan PL/SQL. Pengembang, perancang, dan pelaksana Prosedur pencadangan pemulihan bencana

- Pemimpin pada proyek-proyek besar melalui semua fase pengembangan, pengujian, dan Dukungan


Saya dapat dipekerjakan dalam waktu singkat, untuk menangani strategi, desain, implementasi, pemecahan masalah, perlindungan DBA, pemantauan jarak jauh, dan pelatihan.

Silakan kunjungi www.oracledbasupport.co.uk untuk kebutuhan DBA oracle Anda.

No comments:

Post a Comment

Goldilocks dan tiga Produk Anti Spyware

Alkisah, ada seorang wanita muda yang tersesat saat bepergian. Dia memutuskan untuk menepi di tempat peristirahatan dan online dengan laptop...