Blog'a Dön SQL & Teknik

Sistem Yavaşlığına SQL Çözümleri: Logo'da Indexleme ve Veritabanı Bakımı

24 Aralık 2025 12 dk okuma

Özet: Logo ERP'de sistem yavaşlığının %80'i veritabanı performansından kaynaklanır. Bu yazıda, index oluşturma, istatistik güncelleme ve bakım planları ile %40-50 performans artışı sağlamayı öğreneceksiniz.

Neden Logo Yavaşlar?

Logo ERP kullanıcılarının en sık şikayeti "Sistem çok yavaş" olur. Bunun temel nedenleri:

  • Eksik veya bozuk index'ler: Logo'nun standart index'leri büyük verilerde yetersiz kalır
  • Güncellenmeyen istatistikler: SQL Server'ın sorgu planları eskir
  • Fragmentasyon: Tablolar zamanla parçalanır
  • Büyüyen log dosyaları: Transaction log kontrolsüz büyür

1. En Kritik Tablolar ve Index Stratejisi

Logo'da en çok sorgu çalışan tablolar şunlardır:

Tablo Önerilen Index Alanları Etki
LG_XXX_YY_STLINE DATE_, STOCKREF, LINETYPE Stok raporları %50 hızlanır
LG_XXX_YY_CLFLINE DATE_, CLIENTREF, TRCODE Cari ekstreler %60 hızlanır
LG_XXX_YY_INVOICE DATE_, CLIENTREF, TRCODE Fatura listeleri %40 hızlanır
LG_XXX_YY_EMFLINE DATE_, ACCREF Mizan raporları %45 hızlanır

2. Covering Index Oluşturma

Aşağıdaki SQL komutları ile STLINE tablosuna performans index'i ekleyebilirsiniz:

-- STLINE için Covering Index
CREATE NONCLUSTERED INDEX IX_STLINE_Performance
ON LG_001_25_STLINE (DATE_, STOCKREF, LINETYPE)
INCLUDE (AMOUNT, PRICE, TOTAL)
WITH (ONLINE = ON, FILLFACTOR = 90);

-- CLFLINE için Covering Index  
CREATE NONCLUSTERED INDEX IX_CLFLINE_Performance
ON LG_001_25_CLFLINE (DATE_, CLIENTREF)
INCLUDE (DEBIT, CREDIT, TRCODE)
WITH (ONLINE = ON, FILLFACTOR = 90);

Not: ONLINE = ON parametresi sayesinde index oluşturulurken sistem çalışmaya devam eder. Büyük tablolarda bu işlem 10-30 dakika sürebilir.

3. İstatistik Güncelleme

SQL Server, sorgu planları için istatistiklere bakar. Güncel olmayan istatistikler yanlış plan seçimine neden olur:

-- Tüm istatistikleri güncelle (haftalık çalıştırın)
EXEC sp_updatestats;

-- Belirli bir tablonun istatistiklerini güncelle
UPDATE STATISTICS LG_001_25_STLINE WITH FULLSCAN;

-- Auto update istatistikleri aktif et
ALTER DATABASE LogoDB SET AUTO_UPDATE_STATISTICS ON;

4. Index Fragmentasyonu Temizleme

Zamanla index'ler parçalanır. Fragmentasyon %30'u geçtiğinde REBUILD yapılmalıdır:

-- Fragmentasyon oranını kontrol et
SELECT 
    OBJECT_NAME(ips.object_id) AS TableName,
    i.name AS IndexName,
    ips.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'LIMITED') ips
INNER JOIN sys.indexes i ON ips.object_id = i.object_id AND ips.index_id = i.index_id
WHERE ips.avg_fragmentation_in_percent > 10
ORDER BY ips.avg_fragmentation_in_percent DESC;

-- Index Rebuild (Fragmentasyon > 30%)
ALTER INDEX IX_STLINE_Performance ON LG_001_25_STLINE REBUILD;

-- Index Reorganize (Fragmentasyon 10-30%)
ALTER INDEX IX_STLINE_Performance ON LG_001_25_STLINE REORGANIZE;

5. Haftalık Bakım Planı

Aşağıdaki bakım planını SQL Server Agent Job olarak tanımlayın:

Haftalık Bakım Checklist

  • İstatistik güncelleme (sp_updatestats)
  • Index fragmentasyon kontrolü
  • %30+ fragmentasyon için REBUILD
  • Transaction log shrink (gerekirse)
  • DBCC CHECKDB (veri bütünlüğü)
-- Otomatik Bakım Script'i
-- Her Pazar gece 02:00'de çalıştırın

-- 1. İstatistik güncelle
EXEC sp_updatestats;

-- 2. Tüm index'leri reorganize et
EXEC sp_MSforeachtable 'ALTER INDEX ALL ON ? REORGANIZE';

-- 3. Veri bütünlüğü kontrolü
DBCC CHECKDB WITH NO_INFOMSGS;

6. Yavaş Sorguları Tespit Etme

Hangi sorguların sistemi yavaşlattığını bulmak için:

-- En yavaş 10 sorguyu bul
SELECT TOP 10
    qs.total_elapsed_time / qs.execution_count AS avg_elapsed_time,
    qs.execution_count,
    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1, 100) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY avg_elapsed_time DESC;

Sonuç

Bu optimizasyon adımlarını uygulayarak:

  • Stok ve cari raporlarda %40-60 hızlanma
  • Fatura kayıt sürelerinde %30 iyileşme
  • Genel sistem tepki süresinde belirgin artış

Profesyonel SQL Optimizasyonu

Logo veritabanınızı analiz edip özel optimizasyon raporu hazırlayalım.

Ücretsiz Analiz Al