İÇİNDEKİLER
- •Express sınırlarına mı yaklaşıyorsunuz?
- •SQL Server Express Nedir?
- •SQL Server Express Sınırları: Standard ve Developer ile Karşılaştırma (SQL Server 2025)
- •Sürümü ve Sınırları T-SQL ile Kontrol Edin
- •Hangi sürüm ve derleme çalışıyor?
- •Instance kaç işlemci kullanıyor?
- •Buffer pool ne kadar bellek kullanıyor?
- •Veritabanlarınız 50 GB’a ne kadar yakın?
- •SQL Server Agent Olmadan Yedekleme
- •Adım 1: Yedekleme betiğini oluşturun
- •Adım 2: Batch dosyasını oluşturun
- •Adım 3: Batch dosyasını zamanlayın
- •Adım 4: Yedeklerin gerçekten alındığını kontrol edin
- •LocalDB: Geliştiriciler İçin Express
- •Developer Sürümü Canlı Ortam İçin Bir Seçenek Değil
- •Express’e Sığmadığınızı Gösteren İşaretler
- •Express’ten Standard’a Nasıl Geçilir?
- •Ne Zaman Uzmana Başvurmalı?
- •Sık Sorulan Sorular
- •Kaynaklar
- •Express’ten çıkma zamanı geldi mi, birlikte bakalım
SQL Server Express, Microsoft’un ücretsiz SQL Server sürümüdür. SQL Server 2025’te en fazla bir soket veya dört çekirdekten düşük olanı, 1.410 MB arabellek havuzu (buffer pool) ve veritabanı başına 50 GB kullanabilir; SQL Server Agent içermez. Veri boyutu, bellek baskısı, zamanlanmış işler veya yüksek erişilebilirlik ihtiyacı bu sınırları aştığında Standard’a geçmek gerekir.
Bu yazıda SQL Server 2025 Express sınırlarını Standard ve Developer ile yan yana koyuyor, sunucunuzun bu sınırlara ne kadar yaklaştığını gösteren T-SQL sorgularını paylaşıyor, SQL Server Agent olmadan yedeklemenin nasıl zamanlanacağını anlatıyor ve Standard’a sürüm yükseltme (Edition Upgrade) adımlarını sıralıyoruz. T-SQL komutları Docker üzerinde SQL Server 2025 Express (17.0.5015.4, CU9) ve SQL Server 2022 Express (16.0.4305.5, CU27) ile test edildi.
Express sınırlarına mı yaklaşıyorsunuz?
Aryasoft, Express sunucularınızın CPU, bellek, veritabanı boyutu ve yedekleme durumunu inceler; Standard'a geçiş gerekip gerekmediğini ve geçişin nasıl yapılacağını sizinle birlikte netleştirir.
SQL Server Express Nedir?
SQL Server Express, SQL Server veritabanı motorunun giriş seviyesindeki ücretsiz sürümüdür (edition). Microsoft bu sürümü öğrenme, masaüstü uygulamaları ve küçük sunucu uygulamaları için, bir de ürünüyle birlikte veritabanı dağıtan yazılım firmaları için konumlandırır. Motor, ücretli sürümlerle aynıdır: T-SQL, veri tipleri, indeksler ve programlama özelliklerinin büyük kısmı aynı şekilde çalışır. Farkı yaratan, ölçek sınırları ile yönetim ve yüksek erişilebilirlik özellikleridir.
SQL Server 2025 ile birlikte tek bir Express sürümü kaldı. Eskiden “Express with Advanced Services” adıyla ayrı dağıtılan özellikler, örneğin Full-Text Search, artık Express’in içinde; LocalDB de Express kurulum paketiyle geliyor. Express Linux’ta ve konteynerlerde de çalışır; orada sürümü MSSQL_PID=Express ile seçersiniz.
SQL Server Express Sınırları: Standard ve Developer ile Karşılaştırma (SQL Server 2025)
| Express | Standard | Enterprise Developer / Standard Developer | |
|---|---|---|---|
| Kullanım | Sınırlar içinde canlı ortamda kullanılabilir | Canlı ortam | Yalnızca geliştirme ve test; canlı ortam için değil |
| Lisans | Ücretsiz | Ücretli (çekirdek başına veya sunucu + CAL) | Ücretsiz |
| Instance başına işlemci | 1 soket veya 4 çekirdekten düşük olanı | 4 soket veya 32 çekirdekten düşük olanı | Enterprise / Standard ile aynı |
| Buffer pool belleği | 1.410 MB | 256 GB | Enterprise / Standard ile aynı |
| Columnstore segment önbelleği | 352 MB | 32 GB | Enterprise / Standard ile aynı |
| Veritabanı başına memory-optimized veri | 352 MB | 32 GB | Enterprise / Standard ile aynı |
| En büyük veritabanı boyutu | 50 GB (SQL Server 2022 ve öncesinde 10 GB) | 524 PB | 524 PB |
| SQL Server Agent | Yok | Var | Var |
| Yedek sıkıştırma (backup compression) | Yok | Var | Var |
| Database Mail | Yok | Var | Var |
| Yüksek erişilebilirlik | Log shipping, failover cluster instance veya availability group yok | Log shipping, failover cluster instance, basic availability group (iki replika, tek veritabanı) | Enterprise / Standard ile aynı |
| Resource Governor | Yok | Var | Var |
Tabloda kolayca gözden kaçan üç nokta var:
- 1.410 MB sınırı buffer pool içindir, yani veri ve indeks sayfalarının tutulduğu önbellek için. Columnstore segmentleri ve memory-optimized tabloların ayrı 352 MB sınırları vardır; bu yüzden SQL Server sürecinin toplam bellek kullanımı 1.410 MB’ı geçebilir. Geçemeyen şey, önbellekte tutulan veri sayfalarıdır: sunucuda ne kadar RAM olursa olsun yaklaşık 1,4 GB.
- İşlemci sınırı mantıksal işlemciyle değil çekirdekle sayılır. Hyper-threading açıksa dört çekirdek sekiz mantıksal işlemci olarak görünebilir. Sanal makinelerde ise sınır mantıksal işlemci sayısına göre uygulanır, çünkü sanal makine fiziksel çekirdek yapısını göremez.
- SQL Server 2025, Express’te yalnızca veritabanı boyutu sınırını değiştirdi: 10 GB’tan 50 GB’a. İşlemci ve bellek sınırları SQL Server 2022 ile aynı kaldı; Standard ise 32 çekirdek ve 256 GB’a çıktı.
Testimizde buffer pool sınırı açıkça görüldü. Aynı makinede, SQL Server 2025 Express ve Standard Developer üzerinde 3,1 GB’lık aynı tabloyu birkaç kez taradık. Express’te buffer pool bellek görevlisi (memory clerk) yaklaşık 1.408 MB’ta sabitlendi ve her yeni tarama yaklaşık 1,7 GB’ı yeniden diskten okudu (read-ahead). Standard Developer’da tablonun tamamı bellekte kaldı ve tekrar eden taramalar diske hiç gitmedi. “Express’e sığmamak” pratikte böyle görünür: sunucuda boş RAM vardır, ama instance sürekli diske döner.
Sürümü ve Sınırları T-SQL ile Kontrol Edin
Aşağıdaki sorguları SQL Server Management Studio veya sqlcmd ile çalıştırabilirsiniz. Yalnızca meta veri okurlar, canlı sunucuda güvenle kullanılabilirler.
Hangi sürüm ve derleme çalışıyor?
SELECT
SERVERPROPERTY('Edition') AS edition,
SERVERPROPERTY('EngineEdition') AS engine_edition, -- 4 = Express
SERVERPROPERTY('ProductVersion') AS product_version,
SERVERPROPERTY('ProductUpdateLevel') AS update_level;
Test sunucumuzda sorgu Express Edition (64-bit), motor sürümü 4 ve CU9 ile 17.0.5015.4 döndürdü. Standard veya Standard Developer’a geçtikten sonra EngineEdition 2 döner.
Instance kaç işlemci kullanıyor?
SELECT COUNT(*) AS visible_online_schedulers
FROM sys.dm_os_schedulers
WHERE status = 'VISIBLE ONLINE';
EXEC sys.xp_readerrorlog 0, 1, N'based on SQL Server licensing';
Hata günlüğündeki (error log) bu satır, sunucuda kaç mantıksal işlemci olduğunu ve SQL Server’ın sürüm nedeniyle bunlardan kaçını kullandığını yazar. 12 çekirdek ve 24 mantıksal işlemcili bir makinede Express “using 8 logical processors based on SQL Server licensing” yazdı; aynı makinedeki Standard Developer 24’ünü de kullandı. Günlükte görünen işlemci sayısı instance’ın kullandığından çok fazlaysa, işlemci sınırı performansınızı şimdiden belirliyor demektir.
Buffer pool ne kadar bellek kullanıyor?
SELECT CAST(SUM(pages_kb) / 1024.0 AS decimal(12,1)) AS buffer_pool_mb
FROM sys.dm_os_memory_clerks
WHERE type = 'MEMORYCLERK_SQLBUFFERPOOL';
SELECT cntr_value AS page_life_expectancy_sec
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Page life expectancy'
AND object_name LIKE '%Buffer Manager%';
Sorguyu yeniden başlatmanın hemen ardından değil, mesai saatlerinde çalıştırın. Gün boyunca 1.400 MB civarında duran bir buffer pool, düşük page life expectancy (sayfaların bellekte kalma süresi) ve yavaş okumalarla birlikte görülüyorsa, kullanıcılarınızın eriştiği veri Express’in izin verdiği önbelleğe sığmıyor demektir.
Veritabanlarınız 50 GB’a ne kadar yakın?
SELECT
DB_NAME(database_id) AS database_name,
CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8 / 1024.0 AS decimal(12,1)) AS data_mb,
CAST(SUM(CASE WHEN type_desc = 'LOG' THEN size END) * 8 / 1024.0 AS decimal(12,1)) AS log_mb,
CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8 / 1024.0 / 51200 * 100 AS decimal(5,1)) AS data_pct_of_50gb
FROM sys.master_files
WHERE database_id > 4
GROUP BY database_id
ORDER BY data_mb DESC;
SQL Server 2022 ve öncesinde 51200 yerine 10240 yazın. Bir veritabanı sınırın üzerine çıkacak olduğunda, yer isteyen komut 1827 numaralı hatayla durur: “CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size would exceed your licensed limit of 51200 MB per database.” SQL Server 2022 Express’te aynı mesaj 10240 MB der. Planlama eşiği olarak %80’i kullanın; sınıra dayanan bir veritabanı, iş gününün ortasında yeni kayıt alamaz hale gelir.
SQL Server Agent Olmadan Yedekleme
Express’te SQL Server Agent olmadığı için zamanlanmış iş (job) veya bakım planı (maintenance plan) da yoktur. Microsoft’un önerdiği yöntem, yedekleme betiğini sqlcmd ile çalıştırmak ve Windows Görev Zamanlayıcı (Task Scheduler) ile zamanlamaktır. Express yedekleri sıkıştıramaz da: BACKUP ... WITH COMPRESSION komutu 1844 numaralı “BACKUP DATABASE WITH COMPRESSION is not supported on Express Edition” hatasıyla durur. Disk alanını sıkıştırılmamış dosyalara göre planlayın.
Adım 1: Yedekleme betiğini oluşturun
Betiği D:\SQLBackups\backup_salesdb.sql olarak kaydedin. Her çalıştığında zaman damgalı yeni bir dosya adı üretir ve yedeği yazdıktan hemen sonra doğrular.
DECLARE @file nvarchar(260) =
N'D:\SQLBackups\SalesDb_' + FORMAT(SYSDATETIME(), 'yyyyMMdd_HHmm') + N'.bak';
BACKUP DATABASE [SalesDb] TO DISK = @file WITH CHECKSUM, INIT;
RESTORE VERIFYONLY FROM DISK = @file WITH CHECKSUM;
Adım 2: Batch dosyasını oluşturun
Aşağıdaki satırı D:\SQLBackups\Sqlbackup.bat olarak kaydedin. .\SQLEXPRESS, Express’in varsayılan adlandırılmış instance’ıdır; -E Windows kimlik doğrulamasını kullandığı için dosyada parola tutulmaz.
sqlcmd -S .\SQLEXPRESS -E -b -i "D:\SQLBackups\backup_salesdb.sql"
İpucu
-b parametresini asla çıkarmayın. Bu parametre olmadan sqlcmd yedek başarısız olsa bile 0 çıkış kodu döndürür ve Görev Zamanlayıcı başarısız yedeği başarılı gösterir. -b ile başarısız bir yedek 1 döndürür.
Adım 3: Batch dosyasını zamanlayın
Her gün 23:00’te çalışan bir görev oluşturun. Görev, onu oluşturan hesapla çalışır; bu hesabın veritabanlarını yedekleme yetkisi olmalıdır.
schtasks /create /tn "SQL Express full backup" /tr "D:\SQLBackups\Sqlbackup.bat" /sc daily /st 23:00
Adım 4: Yedeklerin gerçekten alındığını kontrol edin
Görev Zamanlayıcı’daki başarılı durumu, yedeğin alındığının kanıtı değildir. msdb’deki yedek geçmişini düzenli olarak kontrol edin:
SELECT TOP (3) database_name, type, backup_start_date, backup_finish_date, physical_device_name
FROM msdb.dbo.backupset AS bs
INNER JOIN msdb.dbo.backupmediafamily AS bmf
ON bs.media_set_id = bmf.media_set_id
ORDER BY backup_start_date DESC;
Bu yöntemde iş geçmişi, yeniden deneme ve hata uyarısı yoktur; eski dosyaları da silmez. Yedekleri sunucu dışına kopyalayın, eski dosyaları düzenli olarak temizleyin ve zaman zaman geri yükleme testi yapın. Belirli bir zamana geri dönüş (point-in-time recovery) için işlem günlüğü (transaction log) yedeği gerekiyorsa veritabanı full (veya bulk-logged) kurtarma modelinde olmalı ve BACKUP LOG içeren ikinci bir betik zamanlanmalıdır. Yedek sıklığını RPO ve RTO hedeflerinize göre belirlemek için SQL Server backup planı yazımıza göz atabilirsiniz.
LocalDB: Geliştiriciler İçin Express
SQL Server Express LocalDB, Express motorunu geliştirici bilgisayarında çalıştırmanın hafif bir yoludur. Az sayıda dosya kurar, bir uygulama bağlandığında kendiliğinden başlar ve Windows hizmeti olarak değil, kullanıcı oturumunda çalışır. Server=(localdb)\MSSQLLocalDB;Integrated Security=true bağlantı dizesi otomatik instance’a bağlanır. LocalDB, Express ile aynı sınırlara sahiptir ve geliştirme içindir; uygulamaların ağ üzerinden bağlandığı ortak bir sunucu için normal bir Express veya Standard instance kullanın.
Developer Sürümü Canlı Ortam İçin Bir Seçenek Değil
SQL Server 2025’te Developer sürümü ikiye ayrıldı: tüm Enterprise özelliklerini içeren Enterprise Developer ve birebir Standard özellik setine sahip Standard Developer. Canlıda Standard ile çalışacak bir uygulamayı test ediyorsanız Standard Developer daha doğru seçimdir; canlıda sahip olmayacağınız özellikleri kullanmanıza izin vermez.
Uyarı
Developer sürümleri ücretsizdir ama yalnızca geliştirme ve test için lisanslanır. Express sınırlarından kurtulmak için canlı iş yükünü Developer üzerinde çalıştırmak bir çözüm değil, lisans koşullarının ihlalidir.
Express’e Sığmadığınızı Gösteren İşaretler
- Bir veritabanı 50 GB sınırının %80’ini geçti ya da yalnızca sınırın altında kalmak için veri arşivliyor veya siliyorsunuz.
- Buffer pool mesai saatlerinde 1,4 GB civarında duruyor, page life expectancy düşük ve okumalar diski bekliyor; oysa sunucuda kullanılmayan RAM var.
- Hata günlüğü, SQL Server’ın sunucudaki işlemcilerin yalnızca bir kısmını kullandığını gösteriyor ve yoğun saatlerde bu işlemcilerde CPU yüksek.
- Görev Zamanlayıcı betiklerinin güvenilir şekilde karşılayamadığı zamanlanmış işlere, uyarılara veya Database Mail bildirimlerine ihtiyacınız var.
- İş birimi yüksek erişilebilirlik ya da bekleyen bir yedek sunucu istiyor: log shipping, failover cluster veya basic availability group.
- Yedekler sıkıştırılamadığı için çok uzun sürüyor ya da çok fazla disk kaplıyor.
Tek bir işaret her zaman Standard gerektirmez: yavaş bir sorgunun ihtiyacı daha büyük bir sürüm değil, bir indeks olabilir. Önce iş yükünü inceleyin, sonra karar verin. Daha geniş seçim için SQL Server’ın hangi sürümünü kullanmalısınız yazımıza göz atabilirsiniz.
Express’ten Standard’a Nasıl Geçilir?
SQL Server kurulum programı, Express’ten aynı versiyondaki Standard veya Enterprise’a yerinde sürüm yükseltmeyi (Edition Upgrade) destekler; yeniden kurulum yapmanız veya veritabanlarını taşımanız gerekmez. SQL Server 2025’te Express için desteklenen hedefler Standard, Enterprise ve Developer’dır. Aynı yöntemle yapılan bir Standard’dan Enterprise’a geçişin bir sunucuda 16 yerine 192 çekirdeğin kullanılmasını nasıl sağladığını bu başarı hikayemizde anlattık.
- Önce lisans. Standard ürün anahtarı ve sunucu için yeterli çekirdek lisansı hazır olsun. Çekirdek başına ve sunucu + CAL modellerini SQL Server lisanslama yazımızda anlattık.
- Her şeyi yedekleyin. Tüm kullanıcı veritabanlarının ve master, model, msdb sistem veritabanlarının tam yedeğini alın.
- Kısa bir kesinti planlayın. Kurulum, yeni sürümü etkinleştirmek için SQL Server hizmetlerini yeniden başlatır; bu sürede uygulamalar çalışmaz.
- Edition Upgrade’i çalıştırın. Standard kurulum medyasından setup.exe’yi başlatın, Maintenance bölümünde Edition Upgrade’i seçin, ürün anahtarını girin ve Express instance’ını seçin.
- Yapılandırmayı tamamlayın. SQL Server Agent hizmetini etkinleştirin, hizmet hesabını SQL Server Configuration Manager ile ayarlayın, Express’in oluşturduğu BUILTIN\Users gibi oturum açma hesaplarını gözden geçirin ve Express ayarlarını koruyan tempdb ile model veritabanlarını yeniden boyutlandırın.
- Doğrulayın ve iyileştirin. Yukarıdaki sürüm sorgusunu çalıştırın;
EngineEdition2 dönmelidir. Ardından Görev Zamanlayıcı yedeklerini SQL Server Agent işlerine taşıyın, yedek sıkıştırmayı açın ve uyarıları tanımlayın.
Instance adı değişmez; yeni bir instance’a taşınmadığınız sürece sunucu adı yükseltmeden sonra da .\SQLEXPRESS olarak kalır. Standard’dan Express’e geri dönüş yerinde yapılamaz; SQL Server’ı kaldırıp yeniden kurmak gerekir.
Ne Zaman Uzmana Başvurmalı?
Sürüm yükseltmenin kendisi kısa bir kurulum işidir. Asıl zor olan, neye ihtiyacınız olduğuna karar vermek ve Express’in gizlediği sorunları düzeltmektir. Şu durumlarda deneyimli bir ekiple çalışın:
- Bir uygulama sağlayıcısı Express ile kurulum yapmış ve veriniz boyut sınırına yaklaşıyor.
- Yavaşlığın sürüm sınırlarından mı, sorgu ve indekslerden mi kaynaklandığından emin değilsiniz.
- Birden fazla Express instance’ı tek bir lisanslı Standard instance’ta birleştirilebilir.
- Yedekleme, izleme ve yüksek erişilebilirliğin zamanlanmış bir betiğe değil, sorumluluğu üstlenen birine emanet olmasını istiyorsunuz.
Aryasoft’un yalnızca kıdemli uzmanlardan oluşan SQL Server ekibi instance’larınızı inceler, doğru sürümü ve lisansı belirler, yükseltmeyi yapar; ardından yedekleme, iş ve izleme düzenini kurar. Ayrıntılar için SQL Server danışmanlık hizmetlerimize göz atabilirsiniz.
Sık Sorulan Sorular
Kaynaklar
Bu yazıdaki teknik bilgiler 9 Kasım 2026 tarihinde aşağıdaki belgelerle karşılaştırıldı.
- Microsoft Learn: Editions and supported features of SQL Server 2025
- Microsoft Learn: Editions and supported features of SQL Server 2022
- Microsoft Learn: Compute capacity limits by edition of SQL Server
- Microsoft Learn: Troubleshoot slow performance after an edition change
- Microsoft Learn: Schedule and automate backups of SQL Server Express databases
- Microsoft Learn: sqlcmd utility
- Microsoft Learn: schtasks create
- Microsoft Learn: SQL Server Express LocalDB
- Microsoft Learn: In-place change of a SQL Server edition (Setup)
- Microsoft Learn: Supported version and edition upgrades (SQL Server 2025)
- Microsoft Learn: SERVERPROPERTY (Transact-SQL)
- Microsoft Learn: Configure SQL Server settings with environment variables on Linux
SQL Server Sürüm Seçimi
Express’ten çıkma zamanı geldi mi, birlikte bakalım
Aryasoft’un kıdemli SQL Server ekibiyle görüşün. Instance’larınızın Express sınırlarına ne kadar yaklaştığını ölçer, doğru sürümü ve lisansı önerir, yükseltmeyi yedekleme ve izleme düzeniyle birlikte yaparız. Fiyat teklifi almak için bize ulaşabilirsiniz.