İçeriğe geç

Excel'e Aktar Neden Zaman Aşımına Düşer? Çözüm Yolları

Sunucu ve Performans
Excel'e Aktar Neden Zaman Aşımına Düşer? Çözüm Yolları

Excel'e aktar düğmesi uzun süre bekleyip sonunda hata veriyorsa sorun çoğu zaman Excel dosyasının kendisinde değil, isteğin tarayıcı beklerken bütün satırları tek seferde hazırlamaya çalışmasındadır. Kalıcı çözüm dosyayı istek süresi içinde üretmekten vazgeçmek, arka planda hazırlayıp bittiğinde kullanıcıya indirme bağlantısı vermektir. Aşağıda zaman aşımının hangi katmanda oluştuğunu nasıl ayırt edeceğinizi, dışa aktarmayı hafifletmenin yollarını ve CSV ile XLSX arasındaki pratik farkı bulacaksınız.

Zaman aşımı hangi katmanda oluşuyor?

Kullanıcı tek bir hata görür ama o hatanın kaynağı beş ayrı yerde olabilir. Teşhise başlamadan yapılan her iyileştirme tahmindir, çünkü yanlış katmanı hızlandırmak sonucu değiştirmez.

  • Tarayıcı: İstek açık kalır, kullanıcı sekmeyi yeniler ya da bağlantı kopar. Bu durumda sunucu tarafında iş sessizce devam eder, bazen ikinci kez başlar.
  • Web sunucusu: Bir isteğin ne kadar sürebileceği sınırlıdır. Sınır aşıldığında süreç kesilir, uygulama günlüğünde yarım kalmış bir iş görünür.
  • Uygulama: Satırlar bellekte biriktirilip sonunda dosyaya yazılıyorsa bellek sınırı dolar; süreç zaman aşımı yerine bellek hatasıyla düşer.
  • Veritabanı: Sorgu gereğinden fazla tablo birleştiriyor ya da uygun bir dizin kullanmıyorsa satır sayısı arttıkça süre doğrusal değil, çok daha hızlı büyür.
  • Aradaki vekil sunucu ve güvenlik katmanı: Uygulamanın kendi sınırından daha kısa bir süre sınırı koyabilir; uygulama hâlâ çalışırken kullanıcı hata alır.

Ayırt etmenin en hızlı yolu aynı dışa aktarmayı daraltarak denemektir. Tek günlük veriyle saniyeler içinde biten bir çıktı bir aylık veride düşüyorsa sorun hacimle büyüyen tarafta, yani sorguda ya da bellektedir. Küçük veride de yavaşsa sorgunun kendisi baştan ağırdır ve satır sayısıyla ilgisi yoktur.

Dosyayı arka planda üretmek

Doğru kurgu kullanıcının isteğini dosyaya değil, bir iş kaydına çevirmektir. Kullanıcı düğmeye bastığında sistem talebi kaydeder, ekranda durum gösterir ve kullanıcıyı serbest bırakır. Dosya hazır olduğunda indirme bağlantısı kullanıcının hesabında görünür.

Bu kurgunun işe yaraması için iş kaydının birkaç alanı olması gerekir: talebi kim açtı, hangi filtrelerle açtı, durumu nedir (bekliyor, üretiliyor, hazır, hata), kaç satır üretildi ve dosya nerede duruyor. Hata durumunda neden bilgisinin saklanması destek tarafında en çok zaman kazandıran alandır; kullanıcı yeniden denemeden önce sorunun geçici mi kalıcı mı olduğu görülür.

Aynı kullanıcının aynı filtrelerle üst üste talep göndermesi de sık görülen bir durumdur. Açık bir talep varken ikincisini üretmek yerine mevcut talebi göstermek hem sunucuyu hem kullanıcıyı korur.

Sorguyu ve dosyayı hafifletmek

Arka plana almak zaman aşımını kaldırır ama işi hızlandırmaz. Çıktının kendisi de hafifletilmelidir.

  • Parça parça okuma: Bütün sonucu tek hamlede almak yerine sıralı bir anahtara göre bloklar hâlinde okumak belleği sabit tutar.
  • Satır başına ek sorgu yapmamak: Her satır için ayrı bir bakış sorgusu çalışıyorsa süre satır sayısıyla çarpılır. İlgili veriler tek sorguda birlikte alınır.
  • Gereksiz sütunu çıkarmak: Hiç kullanılmayan kırk sütunlu çıktılar yaygındır. Kullanıcıya hangi sütunların gerektiğini sormak en ucuz iyileştirmedir.
  • Hesabı veritabanına bırakmak: Toplam, sayım ve gruplama uygulamada satır satır yapılmak yerine sorguda yapılır.
  • Akışlı yazma: Dosya biriktirilip sonunda yazılmaz; üretildikçe diske ya da yanıta akıtılır.
  • Ayrı okuma kaynağı: Ağır raporlar canlı işlemlerin çalıştığı yeri yavaşlatıyorsa okuma işleri ayrı bir kopyadan beslenir.

CSV mi XLSX mi?

İki biçimin tercih sebebi farklıdır ve yanlış seçim hem dosya boyutunu hem destek yükünü artırır.

ÖlçütCSVXLSX
Üretim maliyetiDüşük, satır satır akıtılabilirYüksek, biçim bilgisi de üretilir
Dosya boyutuAynı veride daha küçükSıkıştırılmış olsa da daha büyük
BiçimlendirmeYokBaşlık, sütun genişliği, sayı biçimi
Çoklu sayfaYok, her çıktı tek tabloVar, özet ve detay ayrılabilir
Türkçe karakterKodlama belirtilmezse bozuk görünebilirKodlama dosyanın içinde taşınır
Baştaki sıfır ve uzun numaraElektronik tabloda sayıya çevrilip kırpılabilirMetin olarak işaretlenebilir

Pratik kural şudur: başka bir sisteme veri aktarılıyorsa CSV, insan açıp okuyacaksa XLSX. Baştaki sıfırı korumak gereken stok kodu, vergi numarası ve barkod gibi alanlarda CSV tercih edildiğinde alanın metin olduğunu belirtmek gerekir, yoksa dosya doğru üretilse de ekranda yanlış görünür.

Dışa aktarılan dosya kimin elinde?

Dışa aktarma, yetki kurgusunun en kolay delindiği yerdir. Ekranda yalnızca kendi şubesini görebilen bir kullanıcı, dışa aktarmada filtre uygulanmadığı için bütün şubelerin verisini indirebiliyorsa sorun ekranda değil çıktıdadır. Dışa aktarma sorgusu, ekranı besleyen sorguyla aynı yetki süzgecinden geçmelidir.

Üretilen dosyanın kendisi de veridir. Tahmin edilemeyen bir adla saklanması, yalnızca talebi açan kullanıcıya açılması ve belirli bir süre sonra silinmesi gerekir. Kimin hangi kapsamda dışa aktarma yaptığının kaydı, veri kaybı tartışmalarında sonradan üretilemeyen tek kanıttır.

Kısa kontrol listesi

  • Hata hangi katmanda çıkıyor: küçük aralıkla deneyip hacme bağlı mı diye bakın.
  • Uzun süren çıktılar tarayıcı beklerken değil, arka planda üretiliyor mu?
  • İş kaydında durum, filtre, satır sayısı ve hata nedeni duruyor mu?
  • Sorgu parça parça okuyor mu, satır başına ek sorgu var mı?
  • Biçim seçimi doğru mu, metin alanları kırpılmıyor mu?
  • Dışa aktarma ekranla aynı yetki süzgecini kullanıyor mu, dosya ne kadar saklanıyor?

KAV Yazılım, mevcut sistemlerde raporlama ve dışa aktarma akışlarını bu başlıklara göre inceleyip arka planda çalışan, yetkiye saygılı bir kurguya taşıyor.

Sık sorulan sorular

Dışa aktarma kaç satıra kadar doğrudan yapılabilir?

Kesin bir satır sayısı yoktur; sınırı satır sayısı değil sorgunun ağırlığı ve sunucunun istek süresi belirler. Pratik yaklaşım, bir eşik belirleyip altındaki talepleri doğrudan, üstündeki talepleri arka planda üretmektir. Eşiğin kendisi ölçümle, en yavaş filtre denenerek bulunur.

Dosya üretilirken kullanıcı sayfadan çıkarsa ne olur?

Arka planda üretilen bir işte hiçbir şey olmaz, iş kendi akışında biter ve dosya kullanıcının talep listesinde görünür. Tarayıcı beklerken üretilen bir çıktıda ise bağlantı koptuğu anda iş yarıda kalır. Bu fark, arka plana almanın en görünür kazancıdır.

CSV dosyasında Türkçe karakterler neden bozuk görünüyor?

CSV düz metindir ve hangi kodlamayla yazıldığını kendi içinde taşımaz; elektronik tablo yazılımı tahmin eder ve yanlış tahmin ettiğinde harfler bozulur. Çözüm dosyayı yaygın bir kodlamayla üretip bunu açıkça işaretlemek ya da insanın açacağı çıktıları XLSX olarak vermektir.

Rapor çıktısı ile ekrandaki liste neden farklı satır sayısı veriyor?

En sık neden, dışa aktarma sorgusunun ekrandaki filtreleri ya da yetki süzgecini birebir uygulamamasıdır. İkinci neden, aradan geçen sürede verinin değişmesidir. Her ikisini de kapatmak için çıktıya hangi filtrelerle ve hangi anda üretildiği yazılır.
  • dışa aktarma
  • performans
  • rapor çıktısı
  • zaman aşımı