AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Destek › SymptomChains › SYM-PERFORMANS

Belirti zinciri — Yavaşlık / performans / index

SYMPTOM_CHAINMOD-SISTEMERPGOLD_COREACTIVEMEDIUMSUPPORT_OBSERVED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Belirti

Tipik ticket ifadeleri: "program yavaş", "program yavaşlığı giderildi", "hesap açılışı dakikalarca sürüyor", "işlem listesi çok yavaş", "bakiye ekstresi zaman aşımı", "EDS çok yavaş", "index yapıldı", "hizmet (sunucu) yavaş". "program" (16), "yavaş/yavaşlık/yavaşlığı" (17), "hizmet" (8). Alt kategoriler: Eğitim/Destek 21, Program Yavaşlığı 13, Program Yavaş 8. RAPOR temasında Trigger 14 / Index 13 alt kategorileri de bu zincire aittir.

Gözlem ile sebep ayrımı

  • Gözlem: belirli bir işlem (hesap seçimi, rapor, EDS) uzun sürüyor ya da zaman aşımı veriyor; ya da genel olarak "program yavaş".
  • Ayrım: yavaşlık dört katmandan gelebilir — (a) ağ/uzak bağlantı (kopma ile birlikte, SYM-BAGLANTI), (b) sunucu kaynakları (RAM/disk/antivirüs), (c) veritabanı (indeks eksikliği, şişmiş Sistem.Kurlar, büyük hesaplar), (d) sorgu/fonksiyon (rapor SQL'i). Ticket başlığı katmanı söylemez; "index yapıldı" kapanış notu katman (c)'yi işaret eder.
  • "Her şey yavaş" ile "yalnız X yavaş" ayrımı ilk soru olmalıdır: tekil yavaşlık neredeyse her zaman (c)/(d), genel yavaşlık (a)/(b).

Muhtemel nedenler

# Neden Kanıt
1 Cari.Islemler üzerinde hesap bazlı indeks eksik → çok işlemli hesapta liste/hesap bilgisi sorgusu yavaş H-163, PROC-176, PROC-159; mevcut indeks listesi TBL-CARI.ISLEMLER (26 indeks; HesapId öncülü olan yok — DERIVED)
2 Sistem.Kurlar'da yılların birikmiş kaydı → EDS ve kur bağımlı sorgular yavaş H-160, PROC-105
3 Bakiye ekstresi / rapor fonksiyonu büyük veri setinde yavaş → zaman aşımı H-127, PB-052, PROC-42, PROC-15, FN-REPORTS.BAKIYELISTESI
4 Antivirüs/güvenlik duvarı SQL trafiğini tarıyor; uzak bağlantı kopmaları PB-003, PROC-7
5 Tetikleyici her kayıtta defterleri sil-yeniden yazar; cursor kullanır → kayıt başına maliyet, hata dalında cursor sızıntısı BR-STOK-006, TRG-CARI.ACCEPTTRANSACTION, TD-03 — SOURCE_IMPLEMENTED
6 Maden maliyeti fonksiyonu TOP 50 ve güncel kurla çalışıyor → maliyet gösteren listeler yavaş/yanlış TD-23, FN-STOK.GETMADENMALIYETI
7 Sunucu kaynakları / SQL Express sınırları / uyumluluk düzeyi PB-052 yükseltme notu — GAP: sunucu asgari gereksinimi wiki'de yok
8 Fiş numarası MAX(FisNo)+1 kilitsiz üretim → yoğun anlarda çakışma/bekleme TD-02, H-102, BR-GENEL-002

İlk sorulacak sorular

  1. Her şey mi yavaş, yoksa belirli bir işlem/rapor/hesap mı?
  2. Tek bilgisayarda mı, hepsinde mi? Ana bilgisayarda da mı?
  3. Ne zamandan beri; o gün ne değişti (güncelleme, antivirüs, yeni kullanıcı, devir)?
  4. Yavaş hesap kaç işlemli? Rapor tarih aralığı ne kadar?
  5. Sistem.Kurlar kaç yıl tutuyor; EDS var mı?
  6. Sunucu: RAM/disk, SQL sürümü (Express?), veritabanı boyutu?

İlgili ekran(lar)

SCR-ISCREEN (hesap açılışı/işlem listesi) · SCR-FSHESAPEXTRESI · SCR-FRMREPORTLIST · SCR-FRMMADENSTOKLARI (Maliyeti Göster) · SCR-FRMKURGIRISEKRANI · SCR-FRMSQLEDITOR

İlgili müşteri varyantı

DOVIZ (ERPGOLDV2): Cari.Islemler 1.580.655 satır, peşin ağırlıklı (%83) — işlem listesi ve kur tablosu yükü. KUYUMCU: 677.183 satır; cari işlemlerin %60'ı stok da ürettiğinden tetikleyici kayıt başına daha fazla satır yazar (BR-DEFTER-URETIMI); takoz milyem hesapları eklenir. EDS yavaşlığı DOVIZ'e özgü.

Kontrol edilecek Settings

Sistem.Settings.KurRefreshInterval (kur yenileme sıklığı; çok küçükse yük) · Sistem.Settings.MutabakatLock (mutabakat bilgisi sorgusu — H-160 indeks) · antivirüs/güvenlik duvarı (kurulum standardı PROC-7). Kaynak: CONFIGURATION.

Salt okunur SQL teşhis sorgusu

-- 1) En çok işlemli hesaplar (H-163 / PROC-176)
SELECT TOP 10 I.HesapId, H.HesapAdi, COUNT(*) AS IslemAdedi
FROM Cari.Islemler I LEFT JOIN Cari.Hesaplar H ON H.Id = I.HesapId
GROUP BY I.HesapId, H.HesapAdi ORDER BY COUNT(*) DESC;

-- 2) Kur tablosu yıllara göre (H-160 / PROC-105)
SELECT YEAR(K.Tarih) AS Yil, COUNT(*) AS Satir FROM Sistem.Kurlar K GROUP BY YEAR(K.Tarih) ORDER BY Yil;

-- 3) Cari.Islemler üzerinde HesapId ile başlayan indeks var mı? (H-163)
SELECT i.name, c.name AS IlkKolon
FROM sys.indexes i
JOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id AND ic.key_ordinal = 1
JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
WHERE i.object_id = OBJECT_ID('Cari.Islemler');

-- 4) Eksik indeks önerileri (SQL Server DMV; salt okunur)
SELECT TOP 10 d.statement AS Tablo, d.equality_columns, d.inequality_columns, d.included_columns, s.avg_user_impact
FROM sys.dm_db_missing_index_details d
JOIN sys.dm_db_missing_index_groups g ON g.index_handle = d.index_handle
JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle
ORDER BY s.avg_user_impact DESC;

İlgili iş kuralı

BR-STOK-006 (her kayıtta sil-yeniden yaz) · BR-GENEL-002 (fiş no üretimi) · BR-BAKIYE-014 (hesabın son işlem tarihi — hesap açılış sorgusu) · BR-MUTABAKAT-004 (üst paneldeki mutabakat mesajı — sorgu)

Geçmiş ticket teması

PRB-PERFORMANS-000 — 42 çağrı, ERPGOLDV2 çağrılarının %0,4'ü. Ortalama kapanış 2,9 saat. Yavaşlık şikâyetlerinin bir kısmı RAPOR (Trigger/Index alt kategorileri) ve BAGLANTI temalarına sınıflanmıştır.

İlgili süreç

PROC-105 hız problemi · PROC-176 indeks yapma rehberi · PROC-159 SQL indeksleme · PROC-15 / PROC-42 rapor zaman aşımı · PROC-7 bilgisayar ayarları · PROC-193 trigger işlemleri

Çözüm

PB-052: kısa vadede tarih aralığı daraltma; destek tarafında PROC-42 fonksiyon sürümü, PROC-176/159 indeks rehberi, PROC-105 kur temizliği (yedek sonrası). Genel yavaşlıkta PB-003 / PB-010 kurulum standardı.

Workaround

Rapor: tarih ve şube süzgeci; hesap: işlem listesi tarih aralığı daraltılır; EDS: kur temizliğine kadar kurlar elle KOPYALA ile; yoğun saatte toplu rapor alınmaz.

Yazılımcıya escalate koşulu

İndeks ve kur temizliği sonrası da yavaşsa sunucu kaynakları/uyumluluk düzeyi (teknik destek); rapor fonksiyonu (Reports.BakiyeListesi, Stok.GetMadenMaliyeti) sürüm değişikliği; tetikleyici cursor sızıntısı (TD-03) ürün düzeltmesi gerektirir (destek tarafında çözülmez).

Kalıcı önlem

Kurulumda indeks rehberi uygulanır; yılbaşında Sistem.Kurlar arşiv temizliği (H-168 listesine eklenir — öneri); sunucu asgari gereksinim belgesi (GAP); büyük müşterilerde yıllık devir ile tablo boyutu kontrolü (SYM-DEVIR).

Kaynaklar

  • TICKET_THEME:PRB-PERFORMANS-000 (SRC-TKT-ERP, 42 çağrı)
  • DOCUMENT:12_Support/Playbooks/PB-052.md, PB-003.md, PB-010.md
  • DOCUMENT:12_Support/KnownIssues/H-102, H-127, H-160, H-163
  • DOCUMENT:12_Support/Processes/PROC-105, PROC-159, PROC-176, PROC-15, PROC-42
  • DERIVED:17_Quality_And_TechnicalDebt/Items/TD-02.md, TD-03.md, TD-23.md; 08_Database/Tables/TBL-CARI.ISLEMLER.md (satır/indeks listesi), TBL-CARI.BAKIYEISLEM.md, TBL-SISTEM.KURLAR.md (kolon doğrulaması)
  • DB_OBJECT:Cari.AcceptTransaction (IslemCursor) → TRG-CARI.ACCEPTTRANSACTION