Netsis tempdb Dolması: SQL Server Geçici Veritabanı Optimizasyonu

Blog › Hata Çözümü › Netsis tempdb Dolması

Netsis tempdb Dolması: SQL Server Geçici Veritabanı Optimizasyonu

Netsis raporları yavaşladı, “tempdb full” hatası alıyor musunuz? SQL Server ın geçici veritabanı (tempdb) konfigürasyonu Netsis performansını doğrudan etkiler. Bu rehberde tempdb optimizasyonunu adım adım yapıyoruz.

tempdb Nedir?

tempdb, SQL Server ın geçici tablolar, sıralama operasyonları, hash join, temp variables için kullandığı sistem veritabanıdır. Her SQL Server restart ında sıfırdan oluşturulur. Netsis raporları, sayım analizleri, MRP hesaplamaları yoğun olarak tempdb yi kullanır.

Yaygın tempdb Sorunları

  • tempdb full: Disk dolu, tempdb büyüyemiyor
  • Allocation contention: Çoklu kullanıcı tempdb tablosuna erişimde kilitleniyor
  • Slow performance: tempdb tek dosyada darboğaz
  • Disk I/O bottleneck: tempdb HDD üzerinde, yavaş

Optimizasyon Adımları

1. Multiple Data File

tempdb için CPU sayısı kadar (max 8) data file ayrılmalı:

-- 4 CPU lu sunucu için 4 data file
ALTER DATABASE tempdb ADD FILE (
  NAME = "tempdev2",
  FILENAME = "D:\\SQLData\\tempdev2.ndf",
  SIZE = 1024MB,
  FILEGROWTH = 256MB
);
-- Aynı boyut + filegrowth ile 3 file daha ekleyin

2. Ayrı Disk

tempdb i ana data ve log dosyalarından ayrı bir diske taşıyın. Tercihen SSD.

3. Initial Size

tempdb i 4-8 GB initial size ile başlatın. Auto-growth ile sürekli büyüme yerine sabit alan ayrımı performansı artırır.

4. Auto-growth Ayarı

%10 default değil, sabit MB değeri (örn. 256 MB) ile artış yapılandırın.

5. Trace Flag 1117 ve 1118 (eski sürümler için)

SQL Server 2014 ve öncesi için:

DBCC TRACEON (1117, -1);  -- Tüm files eşit büyür
DBCC TRACEON (1118, -1);  -- Mixed extent yerine uniform extent

SQL Server 2016+ da bu trace flagler default olarak aktiftir.

Doğrulama

-- tempdb file durumu
SELECT name, size*8/1024 AS size_mb, max_size*8/1024 AS max_size_mb
FROM tempdb.sys.database_files;

-- tempdb usage
SELECT 
  SUM(user_object_reserved_page_count) AS user_objects_pages,
  SUM(internal_object_reserved_page_count) AS internal_objects_pages
FROM tempdb.sys.dm_db_file_space_usage;

Önleyici Bakım

  • ✅ Aylık tempdb boyut kontrolü
  • ✅ SQL restart sonrası boyut otomatik resetlenir
  • ✅ Aşırı büyüme yaşıyorsanız uygulama tarafında temp tablo kullanımını gözden geçirin
  • ✅ Disk dolması için monitor (PRTG, Zabbix)

SQL Server tempdb optimizasyonu deneyim ister. Bakım anlaşmamızda haftalık tempdb sağlık kontrolü ve boyut analizi dahildir.

Bu konuda profesyonel destek mi gerekiyor?

Logo Yazılım yetkili Netsis bayisi olarak 7/24 hizmetinizdeyiz.

💬