Kısa cevap: IFS'te yavaşlık şikâyetlerinin önemli bir kısmı uygulamadan değil, altındaki Oracle veritabanının bakımından kaynaklanır. Güncel olmayan istatistikler, hiç temizlenmeyen veriler, ağır özel alanlar ve kalabalık Lobby sayfaları en sık sebeplerdir. Daha güçlü sunucu almadan önce veritabanının neyi beklediğine bakmak gerekir.
Bu yazıda IFS'in kendi teknik belgelerine dayanarak anlatıyoruz. Kaynaklar yazının sonunda.
IFS neden Oracle'a bu kadar bağlı?
IFS ERP'nin iş mantığının büyük kısmı veritabanının içinde çalışır. Bu yüzden veritabanı yavaşladığında bütün sistem yavaşlar.
IFS Cloud'un desteklenen platform listesinde uygulama veritabanı olarak yalnızca Oracle 19c Enterprise Edition yer alıyor. IFS Cloud'da veritabanının çok kiracılı (multitenant) yapıda kurulması da zorunlu. IFS Applications 10 da Oracle üzerinde çalışır.
Burada önemli bir ayrım var. IFS Cloud'u IFS'in kendi bulutunda kullanıyorsanız, kurulum ve işletme IFS'in sorumluluğundadır. Kendi altyapınızda (Remote kurulum) kullanıyorsanız, veritabanının bakımı sizin BT ekibinize kalır. IFS Applications 10 ve öncesinde durum zaten böyledir.
IFS'te yavaşlığın en sık sebepleri
1. İstatistikler ve indeksler. IFS'in kendi işletme kontrol listesi bunu ilk sıraya koyuyor: Oracle istatistiklerini güncel tutan ve bozulmuş indeksleri yeniden oluşturan yönetim işleri kurulu olmalı. IFS'in "Gather Statistics" görevi bu iş için var, IFS normalde otomatik ayarını öneriyor. Bir tuzak var: aynı işi hem Oracle'ın kendi işi hem IFS'in görevi yapıyorsa, ikisi birbirini bozabilir. Hangisinin çalıştığını kontrol edin, ikisini birden çalıştırmayın.
2. Temizlenmeyen veri. Büyük silme işlemlerinden sonra indeksler şişer. IFS bunun için "Rebuild Indexes" görevini sunuyor. Eski arka plan işleri ve geçmiş kayıtları için de temizlik görevleri var. Bu görevler hiç kurulmamışsa ya da saklama süresi çok uzunsa, tablolar yıllar içinde gereksiz yere büyür. IFS, saklama süresini bir anda değil, küçük adımlarla kısaltmayı öneriyor.
3. Özel alanlar (custom attributes). IFS'e eklenen her özel alan, o alanın göründüğü sayfaları, raporları ve arayüzleri yavaşlatır. Başka tablolara bakan ya da hesaplanan alanlar daha da pahalıdır. IFS'in belgesine göre çekirdek iş mantığı bundan etkilenmez. Yani yavaşlık çoğu zaman tam da şirkete özel yapılan ekranlarda hissedilir.
4. Lobby sayfaları. Lobby'ye eklenen her öğe veritabanına ayrı sorgu gönderir. IFS, öğeleri hızlarına göre gruplandırıyor ve en yavaş (kırmızı) gruptaki öğelerden kaçınmayı öneriyor. Sorguların içinde PL/SQL fonksiyonu çağırmak da performansı ciddi düşürüyor. Herkesin sabah ilk açtığı kalabalık bir Lobby sayfası, veritabanını tek başına yorabilir.
5. Eş zamanlı iş akışları ve olay eylemleri. Kullanıcı bir kaydı kaydederken çalışan iş akışları, ekranın yanıt süresine doğrudan eklenir. Olay eylemlerine (event action) yazılan PL/SQL kodu da sıradan veritabanı kodu gibi ayarlanmalıdır.
Kullanıcı tarafında da küçük bir kazanç var: listelerde kullanılmayan sütunları gizleyin. IFS'in belgesine göre gizlenen sütunun verisi artık veritabanından çekilmez ve liste daha hızlı yüklenir.

Dtech Bilişim, 2011'den beri Oracle veritabanı desteği veriyor.
İlk nereye bakılır?
Tahminle değil, ölçümle başlayın.
IFS Cloud kullanıyorsanız: IFS Cloud'da özel alanların çalışma süresini gösteren bir performans ekranı var (Custom Field Runtime Performance). Ekran, ortalama 2 saniyeden uzun süren sorguları otomatik listeliyor. Ek lisans gerektirmeyen iyi bir başlangıç noktası.
Veritabanı tarafında: Bekleme olaylarına, en çok kaynak tüketen sorgulara, istatistiklerin en son ne zaman toplandığına ve birbirini bekleyen oturumlara bakın. Ayrıntısını Oracle veritabanı performans sorunları yazımızda anlattık.
Lisans tuzağına dikkat: Bu analiz için en çok kullanılan Oracle aracı AWR raporlarıdır. IFS'in kendi belgesi de AWR ve Enterprise Manager'ın ek Oracle lisansı gerektirdiğini söylüyor. Oracle'ın lisans belgesine göre bu araçlar Diagnostics Pack ister ve bu paket ayrıca ücretlidir. Paket yoksa ücretsiz Statspack aracıyla benzer bir analiz yapılabilir.
Bir de IFS ile gelen Oracle lisansı konusu var. Bu lisans çoğunlukla yalnızca IFS için kullanılabilen türdedir (Application Specific Full Use). Oracle'ın tanımına göre bu tür lisans sadece tanımlı uygulamayla çalışır. IFS topluluğundaki yanıtlara göre aynı veritabanında IFS dışında bir uygulama çalıştırmak bu lisansın kapsamı dışındadır. Veritabanına başka bir sistem eklemeden önce lisansınızı kontrol edin.
IFS Cloud'a geçerken veritabanı tarafında ne değişir?
IFS Cloud'a doğrudan yükseltme yalnızca IFS Applications 10'dan destekleniyor. IFS Applications 9 kullananlar önce 10'a, sonra IFS Cloud'a geçiyor.
Veritabanı tarafında öne çıkan noktalar:
- Oracle 19c Enterprise Edition, çok kiracılı (multitenant) yapıda.
- Unicode karakter seti. Veritabanınız Unicode değilse, IFS yükseltmesinden önce Unicode'a çevrilmesi gerekiyor. IFS'in önerdiği karakter seti AL32UTF8.
- Veri aktarımı DBA'nın işi. IFS'in yükseltme belgesi, dışa ve içe aktarma (export/import) işinin IFS uygulamasının parçası olmadığını, Oracle DBA'nın sorumluluğunda olduğunu açıkça yazıyor.
Yani IFS Cloud projesinin veritabanı ayağını kimin yürüteceğini projenin başında netleştirmek gerekir.
Kendi ekibiniz mi, dışarıdan destek mi?
Şirket içinde deneyimli bir Oracle DBA'nız varsa, yukarıdaki kontrollerin çoğunu kendiniz yapabilirsiniz. Yoksa ya da ekip başka işlere yetişemiyorsa, düzenli bakımı ve yükseltme projesinin veritabanı tarafını dışarıdan almak daha hızlı sonuç verir.
Dtech olarak IFS ERP kullanan firmalara Oracle veritabanı desteği veriyoruz: performans teşhisi, düzenli bakım ve IFS Cloud geçişinde veritabanı tarafı. Ayrıntılar Oracle veritabanı destek sayfamızda.
🗄️IFS'iniz yavaşladıysa veritabanı tarafına birlikte bakalım.
Görüşme PlanlaKaynaklar
- IFS Cloud: desteklenen platformlar (İngilizce)
- IFS Cloud: performans ve işletme önerileri (İngilizce)
- IFS Cloud: Lobby performansı (İngilizce)
- IFS Cloud: Gather Statistics görevi (İngilizce)
- IFS Cloud: Rebuild Indexes görevi (İngilizce)
- IFS Cloud: veri temizleme görevleri (İngilizce)
- IFS Cloud: sistem performansı ekranları (İngilizce)
- IFS Cloud: yükseltme öncesi dikkat edilecekler (İngilizce)
- IFS Cloud: Unicode ve karakter seti (İngilizce)
- IFS Community: IFS Applications 9'dan IFS Cloud'a iki adımlı geçiş, IFS çalışanının cevabı (İngilizce)
- IFS Community: IFS ile gelen Oracle lisansının kapsamı, IFS çalışanının cevabı (İngilizce)
- Oracle Database 19c lisans bilgileri (İngilizce)
- Oracle lisanslama temelleri, PDF (İngilizce)
Bu yazıyı faydalı buldunuz mu? Ekibinizle paylaşın.
