İÇİNDEKİLER
- •ERP sisteminiz neden yavaş, birlikte bulalım
- •Kısaca: Belirtiden Kaynağa
- •1. Sorun Veritabanında mı?
- •2. Blocking: ERP’lerde En Sık Görülen Neden
- •3. Ay Sonu ve Dönem Kapanışı
- •4. Büyüyen Veri ve Bakım
- •5. Donanım ve Sürüm Sınırları
- •6. Uygulama Üreticisiyle Çalışmak
- •Hızlı Teşhis Kontrol Listesi
- •Aryasoft ile ERP Veritabanı Performansı
- •Sıkça Sorulan Sorular
- •Kaynaklar
- •ERP sisteminizi yeniden hızlandırın
ERP yavaşlığının nedeni her zaman veritabanı değildir; ancak SQL Server üzerinde çalışan ERP sistemlerinde yavaşlığın büyük bölümü veritabanı katmanında başlar: kilitlenen (blocking) işlemler, yoğun saatlerde çalışan ağır raporlar, büyüyen tablolar ve eksik indeksler, yetersiz donanım veya sürüm sınırları. Sorunun gerçekten veritabanında olup olmadığını anlamak için belirtilere değil ölçümlere bakmak gerekir. Bu rehber, ERP kullanıcılarının “sistem yavaş” şikâyetini adım adım teşhis etmenize yardımcı olur.
Rehber; Logo, Mikro, Microsoft Dynamics veya SQL Server üzerinde çalışan başka bir ERP kullanan kurumların BT yöneticileri ve sistem yöneticileri için hazırlandı. Belirli bir ürüne özgü değil, ERP’lerin ortak veritabanı davranışlarına odaklanıyor.
ERP sisteminiz neden yavaş, birlikte bulalım
Aryasoft'un kıdemli SQL Server uzmanları ERP veritabanınızı inceler, yavaşlığın kaynağını kanıtıyla gösterir ve uygulama üreticisinin destek koşullarını gözeterek çözümü uygular.
Kısaca: Belirtiden Kaynağa
| Belirti | Olası kaynak | İlk kontrol |
|---|---|---|
| Herkes aynı anda yavaşlıyor, sonra düzeliyor | Blocking: bir işlem diğerlerini bekletiyor | Çalışan istekler ve blocking zinciri |
| Ay sonu veya dönem kapanışında sistem kilitleniyor | Ağır kapanış işlemleri ve raporların aynı anda çalışması | Kapanış saatlerinde çalışan işler ve raporlar |
| Belirli bir rapor veya ekran çok yavaş | Verimsiz sorgu, eksik indeks | O ekranın çalıştırdığı sorgu ve yürütme planı |
| Sistem aylar içinde yavaş yavaş yavaşladı | Büyüyen tablolar, arşivlenmeyen veri, eskiyen istatistikler | Tablo büyüklükleri ve bakım işlerinin durumu |
| Yalnızca belirli şube veya kullanıcılar yavaş | Ağ gecikmesi, terminal sunucu veya istemci sorunu | Aynı işlemin farklı lokasyonlardan süresi |
| Yükseltmeden sonra yavaşladı | Yürütme planı değişikliği, uyumluluk seviyesi | Query Store, sürüm notları |
1. Sorun Veritabanında mı?
ERP yavaşlığında ilk iş, sorunun hangi katmanda olduğunu ayırmaktır. ERP sistemleri genellikle istemci, uygulama veya terminal sunucusu, ağ ve veritabanı katmanlarından oluşur. Şu sorular kaynağı daraltır:
- Aynı işlem, veritabanı sunucusuna yakın bir yerden (örneğin aynı veri merkezindeki bir sunucudan) çalıştırıldığında da yavaş mı?
- Yavaşlık sırasında veritabanı sunucusunun CPU, disk ve bellek kullanımı normalden farklı mı?
- Veritabanında uzun süren veya bekleyen sorgular var mı?
Veritabanı tarafında hiçbir bekleme ve yük görülmüyorsa sorun büyük olasılıkla ağda veya uygulama katmanındadır. Özellikle uzak şubelerden bağlanan istemcilerde, çok sayıda küçük sorgu gönderen ERP ekranları ağ gecikmesine çok duyarlıdır.
2. Blocking: ERP’lerde En Sık Görülen Neden
ERP sistemlerinde birçok kullanıcı aynı tablolara (stok, cari, fatura) aynı anda yazar. Uzun süren bir işlem bu tablolarda kilit tuttuğunda, diğer kullanıcılar bekler ve sistem “donmuş” görünür. Aşağıdaki sorgu, başkalarını bekleten ama kendisi kimseyi beklemeyen oturumu, yani zincirin başını gösterir:
SELECT s.session_id,
s.login_name,
s.host_name,
s.program_name,
r.status,
r.wait_type,
DATEDIFF(SECOND, COALESCE(r.start_time, s.last_request_start_time), GETDATE()) AS running_sec,
t.text AS last_statement
FROM sys.dm_exec_sessions AS s
LEFT JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id
OUTER APPLY sys.dm_exec_sql_text(COALESCE(r.sql_handle,
(SELECT c.most_recent_sql_handle FROM sys.dm_exec_connections AS c
WHERE c.session_id = s.session_id))) AS t
WHERE s.session_id IN (SELECT blocking_session_id FROM sys.dm_exec_requests WHERE blocking_session_id <> 0)
AND s.session_id NOT IN (SELECT session_id FROM sys.dm_exec_requests WHERE blocking_session_id <> 0);
host_name ve program_name kolonları, kilidi tutan işlemin hangi kullanıcıdan ve hangi modülden geldiğini gösterir. Sık görülen bir durum, “sleeping” durumunda olduğu halde açık bir işlem tutan oturumdur: kullanıcı bir işleme başlamış ama tamamlamamış, uygulama da işlemi kapatmamıştır.
Uyarı
ERP veritabanında bir oturumu sonlandırmadan önce ne yaptığını mutlaka kontrol edin. Yarıda kesilen bir fatura veya stok işlemi, geri alınana kadar daha uzun süre kilit tutabilir. Mümkünse işlemi başlatan kullanıcıyla iletişime geçin ve kararı uygulama sahibiyle birlikte verin.
3. Ay Sonu ve Dönem Kapanışı
Dönem kapanışlarında maliyet hesaplama, stok değerleme ve mali raporlar gibi ağır işlemler aynı saatlerde çalışır. Bir üretim firmasında yaşadığımız örnekte ay sonu raporu tüm sistemi kilitlemişti; zincirin başındaki oturum tespit edilip sonlandırıldı ve sistem 12 dakikada normale döndü. Ardından rapor iyileştirildi ve çalışma süresi 4 saatten 19 dakikaya indi.
Kapanış dönemleri için öneriler:
- Ağır raporları ve toplu işlemleri yoğun saatlerin dışına planlayın.
- Raporlama yükünü mümkünse ayrı bir raporlama veritabanına veya okunabilir bir replikaya taşıyın.
- Kapanış öncesi istatistik ve indeks bakımının tamamlandığından emin olun.
- En uzun süren kapanış işlerini ölçün ve bunları iyileştirme listesinin başına koyun.
4. Büyüyen Veri ve Bakım
ERP veritabanları yıllar içinde sürekli büyür: hareket tabloları, log tabloları ve geçmiş dönem verileri. Yıllardır silinmeyen veya arşivlenmeyen veri, sorguların taradığı veri miktarını ve bakım sürelerini artırır.
| Kontrol | Neden önemli? |
|---|---|
| En büyük tablolar ve büyüme hızı | Hangi tabloların arşiv veya bölümleme adayı olduğunu gösterir. |
| İstatistik güncelliği | Eskiyen istatistikler, sorgu iyileştiricinin yanlış plan seçmesine yol açar. |
| İndeks parçalanması ve bakım işleri | Bakım işleri sessizce başarısız olmuş olabilir. |
| Log dosyası boyutu | Log yedeği alınmayan veritabanlarında log sürekli büyür. |
| tempdb kullanımı | Ağır raporlar tempdb’yi yoğun kullanır. |
Bakım işlerinin nasıl kurulacağını SQL Server bakım planları rehberimizde anlattık.
5. Donanım ve Sürüm Sınırları
Küçük ve orta ölçekli işletmelerde ERP’ler zaman zaman SQL Server Express üzerinde çalışır. Express sürümünün veritabanı boyutu (SQL Server 2025’te 50 GB), bellek ve CPU kullanımı sınırlıdır; veri büyüdükçe bu sınırlar doğrudan performans sorununa dönüşür. Standard sürümde de kullanılabilecek çekirdek ve bellek sınırları vardır.
Sanal sunucularda ise sanal makineye atanan kaynaklar ile SQL Server’ın gerçekten kullanabildiği kaynaklar farklı olabilir. Paylaşımlı depolama ortamlarında disk gecikmesi, ERP yavaşlığının sık rastlanan ama gözden kaçan bir nedenidir. Bu durumda sanallaştırma ve depolama ekibine IOPS, gecikme ve kuyruk uzunluğu gibi ölçümlerle gitmek çözümü hızlandırır. Ayrıntılar için SQL Server kaç CPU kullanabilir ve disk depolama yazılarımıza göz atabilirsiniz.
6. Uygulama Üreticisiyle Çalışmak
ERP veritabanlarında yapılacak değişiklikler, uygulama üreticisinin destek koşullarıyla uyumlu olmalıdır:
| Değişiklik | Dikkat edilecek nokta |
|---|---|
| Yeni indeks eklemek | Çoğu durumda performansı belirgin şekilde artırır; ancak üreticinin güncellemeleri tarafından silinebilir veya çakışabilir. Eklenen indeksleri belgeleyin ve güncellemelerden sonra kontrol edin. |
| Tablo veya kolon değişikliği | Yapmayın. Uygulamanın beklediği şemayı bozar ve destek hakkınızı riske atar. |
| Sunucu ve veritabanı ayarları | Bellek, paralellik ve tempdb gibi ayarlar genellikle uygulamadan bağımsızdır; üreticinin önerileriyle birlikte değerlendirin. |
| Sorgunun kendisi | Uygulama içindeki sorguyu yalnızca üretici değiştirebilir. Sorunlu sorguyu kanıtıyla birlikte üreticiye iletin. |
İpucu
Üreticiye bir performans sorunu bildirirken “sistem yavaş” demek yerine somut kanıt sunun: hangi ekran veya rapor, hangi sorgu, kaç saniye sürüyor, kaç okuma yapıyor ve yürütme planı. Kanıtla gelen bildirimler çok daha hızlı çözülür.
Hızlı Teşhis Kontrol Listesi
- Yavaşlık herkes için mi, belirli bir ekran veya lokasyon için mi?
- Yavaşlık sırasında blocking zinciri var mı ve başında hangi oturum var?
- Veritabanı sunucusunda CPU, disk gecikmesi ve bellek normal mi?
- Yavaş ekranın çalıştırdığı sorgu kaç okuma yapıyor ve hangi indeksleri kullanıyor?
- Bakım işleri (yedekleme, indeks, istatistik) son günlerde başarıyla çalıştı mı?
- Son zamanlarda uygulama güncellemesi, SQL Server yükseltmesi veya sunucu değişikliği oldu mu?
- SQL Server sürümünün (Express, Standard) sınırlarına yaklaşıldı mı?
Teşhis akışının ayrıntılı ve sorgularla desteklenmiş halini SQL Server performans sorunları teşhis rehberimizde bulabilirsiniz.
Aryasoft ile ERP Veritabanı Performansı
Aryasoft, SQL Server üzerinde çalışan ERP sistemlerinin veritabanı katmanında uzmanlaşmış kıdemli bir ekiple çalışır. Yavaşlığın kaynağını ölçümle gösterir, acil durumları kontrol altına alır ve uygulama üreticisinin destek koşullarını gözeterek kalıcı çözümü uygular. ERP’ye özel hizmetlerimiz için Logo, Mikro ve Microsoft Dynamics sayfalarımıza göz atabilirsiniz.
Sıkça Sorulan Sorular
Kaynaklar
Bu rehberdeki teknik bilgiler Kasım 2026’da aşağıdaki resmi dokümantasyonla karşılaştırıldı.
- Microsoft Learn: Understand and resolve SQL Server blocking problems
- Microsoft Learn: sys.dm_exec_sessions
- Microsoft Learn: Editions and supported features of SQL Server 2025
- Microsoft Learn: Statistics
ERP Veritabanı Performansı
ERP sisteminizi yeniden hızlandırın
Aryasoft yavaşlığın kaynağını ölçümle gösterir ve uygulama üreticisinin destek koşullarını gözeterek kalıcı çözümü uygular.