içinde

Oracle 8i / 9i Statspack’ten En İyi Şekilde Yararlanma

Statspack, Oracle8i ve üzeri için Oracle tarafından sağlanan bir dizi performans izleme ve raporlama aracıdır. Bir kullanıcı, kurulum betiği tarafından otomatik olarak oluşturulur – bu kullanıcı, PERFSTAT, bu paketin ihtiyaç duyduğu tüm nesnelerin sahibidir. Statspack hakkında daha fazla bilgi için, $ ORACLE_HOME / rdbms / admin / spdoc.txt dosyasındaki belgeleri okuyun.

Statspack’i yükleyin
Paketi kurmak için, ORACLE_HOME rdbms / admin dizinini değiştirin veya SPCREATE kurulum komut dosyasını çağırırken ORACLE_HOME / rdbms / admin dizinini tam olarak belirtin.

Kurulum komut dosyasını çalıştırmak için SQL * Plus kullanmalı ve SYSDBA ayrıcalığına sahip bir kullanıcı olarak bağlanmalısınız. Örneğin, SQL * Plus’ı başlatın, ardından:

UNIX’te: SunOS / HP UX / Linux

SQL> CONNECT / AS SYSDBA
SQL> @? / Rdbms / admin / spcreate

Windows’ta: XP / NT / 2000/2003

SQL> CONNECT / AS SYSDBA
SQL> @% ORACLE_HOME% rdbmsadminspcreate

SPCREATE yükleme betiği diğer üç komut dosyasını çalıştırır. Bu komut dosyaları otomatik olarak çağrılır, bu nedenle onları çalıştırmanıza gerek yoktur:

* SPCUSR: Kullanıcıyı oluşturur ve ayrıcalıklar verir
* SPCTAB: Tabloları oluşturur
* SPCPKG: Paketi oluşturur

Statspack’i Yapılandırma

Mevcut Ststapack seviyesi nasıl bulunur?
– PERFSTST.STATS $ SNAPSHOT tablosuna bakın
veya
– spreport.sql’yi çalıştırın ve listelenen snapids ile birlikte fark edeceksiniz

STATS $ SNAPSHOT, kaydedilen her Anlık Görüntü için seviyeyi gösterecek

Seviye Değiştir
statspack.snap çalıştırın (i_snap_level => 7, i_modify_parameter => ‘true’);

Seviyeler> = 0 Genel Performans İstatistikleri
Düzeyler> = 5 Ek Veri: SQL İfadeleri
Düzeyler> = 6 Ek Veri: SQL Planları ve SQL Planı Kullanımı
Düzeyler> = 10 Ek İstatistikler: Ebeveyn ve Çocuk Mandalları

Statspack’i kullanma (veri toplama)

sqlplus performans durumu

– Bir performans anlık görüntüsü alın

statspack.snap’ı çalıştırın;

– Anlık görüntülerin bir listesini alın

sütun anlık_zaman biçimi a21
snap_id, to_char (snap_time, ‘MON gg, yyyy hh24: mm: ss’) snap_time seçin
sp $ anlık görüntüden;

Performans raporu çalıştırma

– Statspack raporunu çalıştırın:

@? / rdbms / admin / spreport.sql

Statpack Reposistory’den Hard hitting SQL’i bulun
1. Veritabanına PERFSTAT kullanıcısı olarak giriş yapın.
PERFSTAT kullanıcısı olarak oturum açmadıkça çalışmayacaktır.

2. Şunu kullanarak DBID’yi bulun
“$ sql_summary istatistiklerinden dbid seçin”

3. MIN (SNAP_ID) pBgnSnap & MAX (SNAP_ID) pEndSnap’i şuradan bulun

$ snapshot’tan min (snap_id), max (snap_id), min (snap_time), max (snap_time) seçin
nerede to_number (to_char (snap_time, ‘HH24’))> 10 ve to_number (to_char (snap_time, ‘HH24’)) <13 ve trunc (snap_time) = trunc (sysdate) Mantıksal Okumalara göre sıralanan Tüm SQL İşlemlerini Göster seç e.hash_value "E.HASH_VALUE" , e.module "Modül" , e.buffer_gets - nvl (b.buffer_gets, 0) "Arabellek Alır" , e.executions - nvl (b.executions, 0) "Yürütmeler" , Round (decode ((e.executions - nvl (b.executions, 0)), 0, to_number (NULL) , (e.buffer_gets - nvl (b.buffer_gets, 0)) / (e.executions - nvl (b.executions, 0))), 3) "Gets / Execution" , Round (100 * (e.buffer_gets - nvl (b.buffer_gets, 0)) / sp920.getGets (: pDbID,: pInstNum,: pBgnSnap,: pEndSnap, 'NO'), 3) "Toplam Yüzdesi" , Round ((e.cpu_time - nvl (b.cpu_time, 0)) / 1000000,3) "CPU (lar)" , Round ((e.elapsed_time - nvl (b.elapsed_time, 0)) / 1000000,3) "Geçen (ler)" , Round (e.fetches - nvl (b.fetches, 0)) "Getir" , sp920.getSQLText (e.hash_value, 400) "SQL İfadesi" istatistiklerden $ sql_summary e , istatistikler $ sql_summary b burada b.snap_id (+) =: pBgnSnap ve b.dbid (+) = e.dbid ve b.instance_number (+) = e.instance_number ve b.hash_value (+) = e.hash_value ve b.address (+) = e.address ve b.text_subset (+) = e.text_subset ve e.snap_id =: pEndSnap ve e.dbid =: pDbId ve e.instance_number =: pInstNum 3 azalan sipariş SQL_TEXT'in '%' gibi olduğu SQL Stmts'i göster seç e.hash_value "E.HASH_VALUE" , e.module "Modül" , e.buffer_gets - nvl (b.buffer_gets, 0) "Arabellek Alır" , e.executions - nvl (b.executions, 0) "Yürütmeler" , Round (decode ((e.executions - nvl (b.executions, 0)), 0, to_number (NULL) , (e.buffer_gets - nvl (b.buffer_gets, 0)) / (e.executions - nvl (b.executions, 0))), 3) "Gets / Execution" , Round (100 * (e.buffer_gets - nvl (b.buffer_gets, 0)) / sp920.getGets (: pDbID,: pInstNum,: pBgnSnap,: pEndSnap, 'NO'), 3) "Toplam Yüzdesi" , Round ((e.cpu_time - nvl (b.cpu_time, 0)) / 1000000,3) "CPU (lar)" , Round ((e.elapsed_time - nvl (b.elapsed_time, 0)) / 1000000,3) "Geçen (ler)" , Round (e.fetches - nvl (b.fetches, 0)) "Getir" , sp920.getSQLText (e.hash_value, 400) "SQL İfadesi" istatistiklerden $ sql_summary e , istatistikler $ sql_summary b burada b.snap_id (+) =: pBgnSnap ve b.dbid (+) = e.dbid ve b.instance_number (+) = e.instance_number ve b.hash_value (+) = e.hash_value ve b.address (+) = e.address ve b.text_subset (+) = e.text_subset ve e.snap_id =: pEndSnap ve e.dbid = 2863128100 ve e.instance_number =: pInstNum ve sp920.getSQLText (e.hash_value, 400) '% ZPV_DATA%' gibi 3 azalan sipariş Bir tablo için Statspack'ten SQL + Yürütme PLAN'ının tamamı nasıl alınır SQL planını almak için seviye 7'de çalışan statspack'e sahip olmanız gerekir 1. sprepsql.sql SQL raporu (sprepsql.sql), belirli bir SQL ifadesi için bir rapordur. SQL raporu genellikle örnek sağlık raporunun yüksek yüklü SQL bölümleri incelendikten sonra çalıştırılır. SQL raporu, tek bir SQL ifadesi için ayrıntılı istatistikler ve veriler sağlar (Statspack raporundaki Karma Değeri ile tanımlandığı gibi). 2. Hash Değeri biliniyor - STATS $ SQLTEXT'ten * öğesini seçin; burada hash_value = 'istatistik paketinden%', parça bazında sırayla; - Bir Nesne için önce OBJECT_ID'yi bulun sys.obj $ 'dan * seçin, burada name =' TRANSACTION ' snap_time seçin snap_id, plan_hash_value, NESNE# , OBJE ADI , OPERASYON , SEÇENEKLER, MALİYET, IO_COST, KARDİNALİTE, DURUM , CPU_COST, OPTİMİZE EDİCİ, SEARCH_COLUMNS, BYTES, DAĞITIM, TEMP_SPACE, ACCESS_PREDICATES, FILTER_PREDICATES istatistiklerden $ SQL_PLAN a, STATS $ SNAPSHOT b burada nesne # = '&& OBJECT_ID' ve a.snap_id = b.snap_id; http://OracleDbaSupport.co.uk Oracle veritabanının nasıl olduğunu çok iyi anlayan bağımsız bir oracle danışmanı olan Sagar Patil’in blog sitesidir. motor ve Oracle Uygulamaları birlikte çalışır.

Oracle veritabanlarının Üretim ve Geliştirme örneklerini destekleyen on yıldan fazla deneyime sahip bir Oracle Sertifikalı RAC DBA’yım.
– Üretim, test ve geliştirme sistemleri için 10g RAC sistemlerinin yanı sıra rman, veri koruma yedekleme ve kurtarma stratejileri oluşturma konusunda uzman.
– Oracle mimarisi, Oracle9i / 10g özellikleri, ayarlama metodolojileri, veritabanı replikasyonu, PL / SQL ve Oracle Http Sunucusu üzerine geliştiriciler için eğitmen.
– Statspack, SQL Trace, OEM Performans Yöneticisi, Quest Central, Quest Foglight, Quest SQL etkisi, Bennchamark fabrikası, Quest SQL optimizer, TOAD ve özel komut dosyalarının kullanıcısı.
– Oracle Veritabanları ve PL / SQL’de Oracle kurulumları, yükseltmeleri, ayarları ve yedeklemeleri için ayrıntılı standartların ve uygulamaların yazarı. Felaket kurtarma yedekleme prosedürlerinin geliştiricisi, tasarımcısı ve uygulayıcısı
– Geliştirme, test ve Desteğin tüm aşamalarında büyük projelerde lider

Strateji, tasarım, uygulama, sorun giderme, DBA kapsamı, uzaktan izleme ve eğitimin üstesinden gelmek için kısa vadeli bir ihbarla işe alınabilirim.
Oracle DBA ihtiyaçlarınız için lütfen www.oracledbasupport.co.uk adresini ziyaret edin.

Ne düşünüyorsun?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

GIPHY App Key not set. Please check settings

Oyun Sunucusunu Barındırma Bilmeniz Gerekenler

Dakik Bildirimler Alma