Üretim ortamında bir depolama sürecini optimize etme sürecini hatırlayın (42 saniye -> 0,06 saniye)

Genel Bakış

Awr raporunu aldığımda, çok yavaş olan ve yürütülmesi uzun süren bir saklı yordam olduğunu fark ettim, bu yüzden bunu test ortamında simüle ettim ve optimizasyon yoluma başladım .. Genel optimizasyon adımlarımı ve optimizasyondan sonraki etkiyi yazın.

1. Depolanan yordam aşağıdaki gibidir:

Awr raporu aracılığıyla bu sorunlu saklı yordamı bulun.

2. Depolanan yordamı analiz edin:

Hata ayıklamadan sonraki analiz yaklaşık 42 saniye sürer.

3. Tablo veri hacmini ve tanımını görüntüleyin

Büyüklük sırası 1.44 milyon

Tablo aşağıdaki gibi tanımlanmıştır:

4. Yürütme planını görüntülemek için sql'yi yeniden yazın

Güncelleme kısmı zaman aldığından, dizinin alınıp alınmadığını görmek için yeniden yazmayı düşünün.

Güncelleme süresini seçin, Tab_TempDriverScan'den tootm gönderin burada ScanWay = '1' ve GönderiNumarası = v_shipmentnumber ve LPN = idx.LPN ve SKU = idx.SKU;

Burada indeks aralığı taraması kullanılır, bir sonraki adıma geçin.

5. Paralel güncellemeyi düşünün

update / * + parallel (Tab_TempDriverScan, 8) * / Tab_TempDriverScan UpdateTime = SYSDATE, SendToOTM = '1' olarak ayarlayın burada ScanWay = '1' ve GönderiNumarası = v_shipmentnumber ve LPN = idx.LPN ve SKU = idx.SKU;

12 saniye azaldı, ancak yine de ideal değil.

6. Uygulama toplu toplama optimizasyonu

Aşağıdaki gibi yeniden yazdıktan sonra

Çekirdek komut dosyası:

TYPE Tab_TempDriverScan_rec_type IS RECORD - Kayıt türünü belirtin ( v_shipmentnumber Tab_TempDriverScan.shipmentnumber% TYPE, v_power_unit Tab_TempDriverScan.power_unit% TYPE, v_IsSend Tab_TempDriverScan.IsSend% TYPE); TYPE nested_Tab_TempDriverScan_type IS TABLE OF Tab_TempDriverScan_rec_type; - kayıt türü değişkenini bildirin Tab_TempDriverScan_tab nested_Tab_TempDriverScan_type; ................... DÖNGÜ başlık1 getir BULK COLLECT Tab_TempDriverScan_tab'a; --Yığın toplama uygula EXIT WHEN header1% NOTFOUND; ........................

test analizi

Şu anda yalnızca 0,06 saniye sürüyor ve performans büyük ölçüde iyileştirildi Bu noktada, yalnızca aşağıdaki üretim testi doğrulama bağlantısı var ve bu adım yok sayılıyor.

Veritabanı optimizasyonu sonsuzdur. Aslında, buradaki temel amaç, depolanan prosedürü 42 saniyeden 0.06 saniyeye kadar optimize etmek için toplu toplama uygulamaktır.Gerekirse, daha fazla optimize etmek için forall kullanabilirsiniz. Süre sınırlıdır, bu yüzden devam etmeyeceğiz. Eğer ilgileniyorsanız, çalışabilirsiniz. Daha fazla optimizasyon içeriği daha sonra paylaşılacak, ilgilenen arkadaşlar takip edebilir!

Sichuan-Tibet hattında, plastik torbalar neden Land Cruiser'dan daha kullanışlıdır?
önceki
İnsan tasarımının çöküşünü bilimsel sürdürülebilir kalkınma açısından görüntüleyin
Sonraki
Önceki 5 gün içinde arşivleri düzenli aralıklarla temizleyen bir komut dosyası paylaşın
Batı karşıtı hareketin devrim niteliğindeki bir ürünü olan Beyaz Tavşan Süt Şekeri
Düşündüğünüzden daha düşük olabilir Saf elektrikli araçların koruma oranı neden bu kadar düşük?
Üretim ortamında SVN hizmet yedeklemesinin işlem sürecini ayrıntılı olarak açıklayın (örneklerle)
Uyku ile ilgili garip şeyler
Ayrıntılı oracle veritabanı izleme tns yapılandırma yöntemi
Yoksul insanlar araba satın almak için borç alırlar ya da araba almak için borç alırlar, hangisi akıllıdır?
Yerli askeri dronlar neden Beidou yerine GPS'i seçti? Baş tasarımcı cevapladı
Uyku ile ilgili garip şeyler
Klasik bir DevOps kitap geliştirmesini paylaşın: Yazılım Mimarı Eylem Rehberi
Uyku ile ilgili garip şeyler
Bazı Haval H6 sahipleri bu arabanın iyi olmadığını söylüyor.Porsche Cayenne sahipleri neden H6'nın iyi olduğunu düşünüyor?
To Top