Oracle'da yürütme planını işlemek için DBMS_XPLAN'ı kullanmanın ayrıntılı açıklaması

Genel Bakış

DBMS_XPLAN, yürütme planları dahil olmak üzere SQL planlarını görüntülemek ve planları açıklamak için Oracle tarafından sağlanan bir pakettir; daha önce SQL yürütme planlarını görüntülerken doğrudan set autotrace komutunu kullandım, ancak DBMS_XPLAN paketi de daha basitleştirilmiş bir edinim sağlıyor Ve planın görüntülenme şekli.

DBMS_XPLAN paketi

Bu işlevler, planı görüntülemenin farklı yollarına karşılık gelir. DBMS_XPLAN paketi yalnızca açıklama planını almakla kalmaz, aynı zamanda AWR'de depolanan SQL imlecini, SQL hata ayıklama setini, önbelleğe alınan SQL imlecini ve SQL temelindeki ifade planını çıkarmak için de kullanılabilir. Uygulama yukarıdaki gibidir. Aşağıdaki yöntemler genellikle kullanılır:

1. EKRAN

2. DISPLAY_AWR

3. DISPLAY_CURSOR

4.DISPLAY_PLAN

5. DISPLAY_SQL_PLAN_BASELINE

6. DISPLAY_SQLSET

Belirli bir cümleyi görüntülemek için sık kullanılan bir açıklama planı örneğine bakalım:

SQL > scott.emp'den seçme * planını açıklayın; SQL > tablodan * seçin (dbms_xplan.display); - Otomatik izleme uygulamasına karşılık gelir SQL > autotrace izlemeyi ayarla sadece açıkla

Yukarıdaki örnekte, dbms_xplan.display yöntemi PLAN_TABLE'a kaydedilen açıklama planını görüntülemek için kullanılır. Yürütme planını görüntülemek istiyorsanız, DMBS_XPLAN.DISPLAY_CURSOR yöntemini kullanmanız gerekir. DMBS_XPLAN.DISPLAY_CURSOR çağrı imzası:

DBMS_XPLAN.DISPLAY_CURSOR ( sql_id IN VARCHAR2 VARSAYILAN NULL, child_number, NUMBER VARSAYILAN NULL, format IN VARCHAR2 DEFAULT'TYPICAL ');

sql_id, imleç önbelleğinde depolanan SQL deyiminin kimliğini temsil eder, child_number, önbelleğe alınan sql deyim planının alt kimliğini belirtmek için kullanılır ve format parametresi, çıktıda yer alan bilgilerin türünü kontrol etmek için kullanılır.Resmi dosya parametreleri aşağıdaki gibidir:

1. TEMEL: Yalnızca işlem türü, kimlik adı ve seçenekleri içeren minimum bilgileri görüntüleyin. 2. TİPİK: Varsayılan değer, ilgili bilgileri görüntüleyin ve bölüm ve eşzamanlı kullanım gibi bazı ek görüntüleme seçenekleri. 3. SERİ: TİPİK tipe benzer şekilde, fark, paralel bir yürütme planı olsa bile eşzamanlı bilgi içermemesidir. 4.ALL: Tüm TİPİK ve diğer adlar ve uzak aramalar gibi daha fazla ek bilgi dahil olmak üzere en fazla bilgiyi görüntüleyin.

Yukarıdaki dört temel çıktı biçimine ek olarak, biçim, çıktı davranışını özelleştirmek için bazı ek seçeneklere sahiptir. Birden çok anahtar sözcüğü virgül ve boşluklarla ayırarak bildirebilirsiniz. Ayrıca "+" ve "-" kullanabilirsiniz. Karşılık gelen ekran öğelerini dahil edecek veya hariç tutacak semboller, bu ek seçenekler de resmi dosyaya kaydedilir:

1.ROWS - optimize edici tarafından tahmin edilen kaydın satır numarasını gösterir 2. BYTES - optimize edici tarafından tahmin edilen bayt sayısını gösterir 3. MALİYET-Optimize edici tarafından hesaplanan maliyet bilgilerini görüntüleyin 4. BÖLÜM-Bölüm bilgilerini görüntüle 5.PARALEL-ekran paralel yürütme bilgisi 6. TAHMİN-görüntü koşulu 7. PROJE-görüntülü sütun projeksiyon bölümü (her satırın sütunları, üst sütununa ve bu sütunların boyutlarına aktarılır) 8.ALIAS-Sorgu bloğu adını ve nesne takma adını görüntüle 9. UZAKTAN-Dağıtılmış sorgu bilgilerini görüntüleme 10. NOT gösterme notları 11. IOSTATS-display IO istatistikleri imleç tarafından yürütülür 12. MEMSTATS, karma birleştirme, sıralama veya bazı bitmap işlemleri türleri gibi bellek yoğun işlemler için bellek yönetimi istatistiklerini görüntüler 13. ALLSTATS-eşdeğeri 'IOSTATS MEMSTATS' 14. SON - Yürütülen son yürütme planı istatistiklerini görüntüleyin, varsayılan ekran TÜMÜ tipidir ve toplanabilir.

Yukarıdaki parametreler, açıklama planının gösterim yöntemi için de geçerlidir.

Örnek gösteri

1. En son ifadenin yürütme planını görüntülemek için display_cursor yöntemini kullanın

SQL > scott.emp'den / * + collect_plan_statistics * / count (*) seçin; SQL > tablodan * seçin (dbms_xplan.display_cursor (null, null, 'ALLSTATS LAST'));

Dbms_xplan.display_cursor (null, null, 'ALLSTATS LAST') kullanırken, sql_id ve child_number'ı null olarak ayarlayın; bu, son çalıştırılan ifadenin yürütme planını almak anlamına gelir; Yukarıdaki örnekte, collec_plan_statistics komut istemini belirtmeniz veya veritabanının STATISTICS_LEVEL parametresini manuel olarak ayarlamanız gerektiğini unutmayın. ALL'nin satır veri kaynağının yürütme istatistiklerini almasını sağlaması için, bu bilgiler satır sayısını, her zaman okuma sayısını, fiziksel okuma sayısını, fiziksel yazma sayısını ve bir veri satırı üzerinde işlemin çalışma süresini içerir. Bu komut belirtilmezse, Üç bilgi sütunu, A-Satırları, A-Zamanı ve Tamponlar olmayacaktır.

2. Belirtilen bir ifadenin yürütme planını alın

SQL > scott.emp'den / * + collect_plan_statistics * / count (*) seçin; burada sal (1250, 1300); - v $ sql görünümü aracılığıyla sql ifadesinin SQL_ID ve CHILD_NUMBER'ını sorgulayın SQL > v $ sql'den sql_id, child_number, sql_text seçin; burada sql_text '% select / * + collect_plan_statistics * / count (*)%' gibi; - İlgili yürütme planını alın SQL > tablodan * seçin (dbms_xplan.display_cursor ('5qxmkvh40yw0p', 0, 'ALLSTATS LAST'));

3. Yürütme planı çıktı bilgilerini format parametresi aracılığıyla özelleştirin

- Açıklama planı hakkındaki tüm bilgileri görüntülemek için TÜMÜ kullanın SQL > emp e, bölüm d'den seçme * planını açıklayın; burada e.deptno = d.deptno ve e.ename = 'JONES'; SQL > tablodan * seçin (dbms_xplan.display (format = > 'HERŞEY')); - Yürütme planındaki bayt sayısını ve maliyet istatistiklerini kaldırın SQL > empno, ename from emp e, dept d seçin burada e.deptno = d.deptno ve e.ename = 'JONES'; SQL > tablodan * seçin (dbms_xplan.display_cursor (null, null, format = > 'TÜM İSTATLAR SON-MALİYET-BİTLER')); - Başka bir seçenek, bağlı değişkenin değerine göz atmak, çok uygun! ! SQL > değişken v_empno numarası SQL > exec: v_empno: = 7566; SQL > empno =: v_empno; SQL > tablodan * seçin (dbms_xplan.display_cursor (null, null, format = > '+ PEEKED_BINDS')); - Paralel sorgu bilgisi filtreleme SQL > scott.dept d'den / * + parallel (d, 4) parallel (e, 4) * / d.dname, ortalama (e.sal), max (e.sal), scott.emp e, burada d.deptno = max (e.sal), ortalama (e.sal) azalan d.dname sırasına göre e.deptno grubu; SQL > tablodan * seçin (dbms_xplan.display_cursor (null, null, 'TYPICAL -BYTES -COST'));

Açıklama planı hakkındaki tüm bilgileri göster

Paralel sorgu bilgisi filtreleme

Uygulama planını görüntülemenin birçok yolu vardır. Bir veya ikisine odaklanmaya alıştığınızı görebilirsiniz. Daha sonra daha fazla DBA içeriği paylaşacağız ve ilgilenen arkadaşlar buna dikkat edebilir ~

50.000 civarında iyi bir aile arabası alamayacağınızı kim söyledi? Bu 4 kompakt araba satın almaya değer
önceki
"Robot Eğlencesi" çizimi nasıl çocukluğumun gölgesi oldu?
Sonraki
Mysql veritabanı hatasının ayrıntılı açıklaması ERROR 1819 (HY000) -şifre politikasını değiştir
Diğerinin frenlerini test etmek için kendi güvenliğinizi kullanmıyor musunuz?
Kuantum İletişimin Koşulsuz Güvenliği "Üç Büyük Kapı" Garantisi Kuantum Teknolojisi Bilgi Güvenliği
Çin Cumhuriyeti'ndeki Haydutların Zulmü
Oracle veritabanı yapısı senkronizasyonunu elde etmek için Navicat aracının ayrıntılı açıklaması
[Yeni Juno Intelligence] Jüpiter'in kutuplarında devasa kasırga fırtınası sürülerini gösteren görüntüler geri döndü
LV beni sergiyi izlemeye davet etti, süreç o kadar basit değil
Oracle veritabanı OutLines - SQL yürütme planını kontrol etme mekanizması kullanımını açıklayın
Oyundaki Kun nedir?
Açık kaynaklı log analiz ve yönetim yazılımının detaylı açıklaması-ELK mimarisi ilkesi ve tanıtımı
Çocuk sahibi olmak istemeyen genç sanatçılar
Sichuan-Tibet hattında, plastik torbalar neden Land Cruiser'dan daha kullanışlıdır?
To Top