Üretim Veritabanları için SQL Server Express?


14

Her müşterinin kendi veritabanına sahip olduğu bir çift web / dahili işlem uygulaması sunmak üzereyiz. Her veritabanı çok küçüktür - her biri 50MB'ın altındadır, bu nedenle tam SQL Server yerine SQL Express 2008'i kullanmanın anlamlı olup olmadığını merak ediyorduk.

Bu, büyük $$$ tasarruf ederken disk G / Ç'yi sunucular arasında dağıtmanın avantajlarına sahip gibi görünüyor (çünkü küçük 15K sürücüler ve kullanılan çift çekirdekli sunucular hem ucuzdur). Bir noktada çok fazla sunucuya ihtiyacımız varsa, SQL Server'a yükseltebiliriz ... ancak düzinelerce dahili kullanıcıyla şu anda çok pahalı görünüyor (özellikle bir yük devretme kutusuna ihtiyacımız olduğu için).

1GB bellek ve 4 çekirdeğin tek bir işlemcide kullanılması, küçük veritabanı boyutlarımız göz önüne alındığında çok kısıtlayıcı gelmiyor. Asla 200'den fazla eşzamanlı kullanıcımız olmayacak ve çoğu işlem daha işlemsel olacak (ağır RAM / CPU üzerinde çok sayıda yüksek hızlı diski tercih ediyor gibi görünüyor, değil mi?)

SQL Server Standard'ın başlangıçta fazladan 5-20 bin dolarlık yatırımı haklı çıkarabilecek bir avantajı eksik mi?

Yanıtlar:


17

SQL sunucusunun diğer sürümleri, veritabanı bakımı ve diğer işleri zamanlayabilmeniz için SQL Aracısı gibi şeyler alır.

Veritabanınız Express sürümünün sınırlarına uyabildiği sürece iyi olacaksınız.

SQL sunucusu çok fazla RAM'i sever. Ne kadar çok, o kadar iyi. SQL Server, disklere ek yük getirecek önbelleğe veri yükleyemediğinden. SQL Server'ın Web Edition veya Workstation sürümüne bakmalısınız. Bu sürümlerin Express sürümünden daha yüksek sınırları vardır, ancak Standard Edition'dan daha düşük maliyetlidir.

Express sürümüyle başlarsanız, lisansı satın aldıktan sonra istediğiniz zaman Standart Sürüm'e geçebilirsiniz.


+1 bu yanıta başka bir şey ekleyemez
Nick Kavadias

Çalışma grubu ve web sürümü lisansının harici barındırılan iş uygulamaları için kullanılabileceğini düşünmüyorum.
Akash Kava

1
CPU Lisansları tüm sürümler için mevcuttur (CPU lisansına ihtiyaç duymayan Express hariç), bunu halka açık bir web sitesi için kullanabileceğiniz anlamına gelir. İşte Workgroup CPU License bit.ly/KDLDR bağlantısı . Web Edition'ı kolayca bulamadım, ancak herhangi bir VAR, etrafa fazla bakmadan bunu sağlayabilmelidir.
mrdenny

Ayrıca Express'in üstündeki bir şeyle başlamayı ve ekspresden başka bir sürüme geçmek bazen zor olabilir.
DanBig

3
SQL Express, diğer boyutlarla tam olarak aynı motor, sadece boyut sınırları mevcut. Express'ten başka bir sürüme geçmek, veritabanını Express sürümünden ayırma ve başka bir sürümü çalıştıran başka bir örneğe ekleme meselesidir.
mrdenny

15

Express sürümünde yaşadığım birkaç üretim sorunu ve geçici çözüm:

Zamanlanmış Yedeklemeler

SSIS

profil oluşturma


2
  1. SQL Server Lisansını okursanız, yalnızca yük devretme için kullanılıyorsa ve ilk sunucunuz başarısız olana kadar sorgu sunmazsa, pasif sunucu için ek lisans satın almanız gerekmez.

  2. SQL Server Express'i oldukça uzun süre kullandık ve önceki MSDE'den daha iyi ve çok daha iyi, 200'den fazla simulatenous bağlantımız var, ancak sadece 2GB boyutunda bir veritabanımız var ve her şey pürüzsüz. Pahalı birleşimlerden kaçınmamız ve iyi indeksleme yapmamız koşuluyla hiçbir sorun yaşamadık. Şimdi SQL Standard'ı kullanıyoruz, ancak veritabanı boyutunuz 4GB'tan fazla olana ve kullanıcı sayınız 200-500'den az olana kadar kesinlikle SQL Express ile yaşayabilirsiniz.

  3. SQL Server Express daha az bellek alanı kullanır ~ 200MB başka yerlerde Standart sürüm ~ 1.5GB kullanır, muhtemelen standart sürüm çok fazla önbellekleme yapar. Express'te sorgularınız, standart sürüme kıyasla birkaç milisaniyede daha yavaş olacaktır. Ne yazık ki Express sürümü çok çekirdekli cpus (bu sınırlı özellik) kullanmaz, bu nedenle 2 çekirdekli veya 4 çekirdekli olsanız da çok yardımcı olmaz.


SSE 2008'in çok çekirdekli olduğunu düşündüm (4'e kadar)?
Beep beep

@LuckyLindy Standard, soket başına sahip olduğunuz kadar çok sayıda çekirdeğe sahip 4 adede kadar soket kullanacaktır.
mrdenny

"ancak veritabanı boyutunuz 4 GB'tan fazla olana kadar" 4 GB bir örnek başına kısıtlamadır. Kullanılan örneklerin sayısında bir kısıtlama olduğunu hatırlayamıyorum
Gennady Vanin Геннадий Ванин

2

LuckyLindy - Bir saniye durmanızı ve SQL Agent'a ihtiyacınız olmadığını doğrulamanızı öneririm. Sen yazdın:

Her müşterinin kendi veritabanına sahip olduğu bir çift web / dahili işlem uygulaması sunmak üzereyiz. Her veritabanı çok küçüktür - her biri 50MB'ın altındadır, bu nedenle tam SQL Server yerine SQL Express 2008'i kullanmanın anlamlı olup olmadığını merak ediyorduk.

Yedekleme planınız nedir? SQL Agent kullanmak zorunda değilsiniz ama kesinlikle bir DBA'nın ömrünü kolaylaştırıyor. Yedeklemelerinizi yapan T-SQL / SMO / PowerShell / komut dosyalarını yazıp Zamanlanmış Görev kullanarak sqlcmd veya PowerShell ile çalıştırabilirsiniz.

Veritabanı bakımı için planınız nedir? Zamanla, bu veritabanlarının birleştirilmesi ve tutarlılık açısından kontrol edilmesi gerekecektir. Standart Sürüm'de bunu kolaylaştırmak için her türlü güzellik bulunurken, Express'te (yine komut dosyası oluşturma ve zamanlanmış görevlerle) çalışmanız gerekir.

Sunucudaki sorunlardan nasıl haberdar edileceksiniz? Temsilci, bir günlük dolduğunda, bir disk dolduğunda vb. Sizi bilgilendirmek için Uyarılar konusunda size yardımcı olur.


Bunlar kritik SQL Server DBA türü görevlerdir. Şirket içi bir uygulama için Express'i çalıştırmak bir şeydir, ancak bize bunları müşteriler için barındırdığınızı söylemeye başladığınızda endişeleniyorum :)


Bunun 2. bölümü, hem lansmanda hem de bir yıl sonra bu konuda ne kadar müşteri desteklemeyi planladığınızı soruyor. "100 istemci" derseniz, Express'te 100 50MB veritabanı yeterli olmayacaktır - yeterli belleğe sahip değilsiniz. Heck - ne kadar deltaya sahip olduğunuza bağlı olarak, 15 DB'de maksimum verebilirsiniz, bilmiyorum.

Asla 200'den fazla eşzamanlı kullanıcımız olmayacak ve çoğu işlem daha işlemsel olacak (ağır RAM / CPU üzerinde çok sayıda yüksek hızlı diski tercih ediyor gibi görünüyor, değil mi?)

INSERT'ler gibi işlem işlemleri hala belleğe yazılır, bu nedenle daha az bellek desteğine ihtiyacınız olmasını beklemeyin. Aslında, kaç tane INSERT eklediğinize bağlı olarak, bu sayıda kullanıcı için olduğundan daha fazla bellek gereksiniminiz olabilir. İnsanların gerçekten kullanmayacağı çok fazla veri yüklüyorsanız, yine de bellek kaplar. "Kullanıcıların sık sık sorguladığı veriler" ile "kullanıcıların yüklediği ve kimsenin bir süre sorgulamadığı veriler" arasında çekişme sorunlarıyla karşılaşabilirsiniz. SQL, insanların bellekte daha sık sorguladığı verileri koruyarak bizi korur, ancak yine de çekişmeye sahip olursunuz.

Bu noktada, başıboş dolaşıyorum. 200 eşzamanlı kullanıcı da Express için benimle dalga geçmiyor. Diyelim ki 64k ortalama bağlantı belleği gereksinimi, uygulamalarınız kaç bağlantı yapacak? Bağlantı havuzlaması kullanacak mısınız?

Sonuç olarak, açıklamanızı okumaktan duyduğum hisler, "Hayır - Express Edition yeterince güçlü değil" diyor. Ve Workgroup Edition'dan nefret ediyorum - bunun kötü bir anlaşma olduğunu düşünüyorum - Standard benim için doğru görünüyor.


2
Scott - Harika cevap. Anladığınız kadarıyla ... SQL Server Express'in veritabanlarında depolama alanı sınırı yoktur, 4GB'tan fazla veriye sahip tek bir veritabanınız olamaz. Test olarak tek bir sunucuda 10.000 100MB veritabanı (1 TB) oluşturdum ve SQL Server Express sorunsuz çalıştı. Ayrıca, her bağlantıyla ilgili bellek toplam 1 GB olarak sayılmaz. Tüm bu veritabanlarını yönetmenin biraz acı verici olabileceğini kabul ediyorum ... ama aslında 1000 veritabanına sahip olacağımızdan, muhtemelen komut dosyalarına ihtiyacımız olacak (bir veritabanına dokunmadan manuel olarak dokunmak istemem mümkün değil bozuk).
Beep beep

+1, bunun gr8 cevabı olduğunu kabul ediyorum ama aynı zamanda onu da iptal ettim
Gennady Vanin Геннадий Ванин

1

Ücretsiz DBMS (MySQL, PostreSQL ...) 'den birini kullanmayı düşündünüz mü? Bu, lisanslama endişelerinizi hafifletir mi?

Bu bir seçenek değilse, SQL Server Express iyi bir çözüm gibi görünüyor.


2
Aslında geçen yıl tüm önemli veritabanlarına karşı performans testleri yaptık - MySQL, PostgreSQL, Firebird, DB2, Oracle, SQL Server, SQL Server Express ve SQL Desktop. İşlemlerimiz için DB2, Oracle ve SQL Server'ın (ve Express değil, ama Masaüstü değil) Windows'ta MySQL ve PostgreSQL'i uçurduğunu gördük - performansın 2 / 2'si kadar. Linux'ta barındırıldığında, MySQL ve PostgreSQL biraz daha iyi yaptı, ancak yine de eşit değil.
Beep beep

1

Kesinlikle önemli üretim uygulamaları için kullanılabilir. Her gün milyonlarca işlemi işlemek için ayrı SQL Server Express örnekleri yüklü 1500'den fazla sağlık kliniğinde kullandık. Aşağıdakilerden birini kullanarak kolayca SQL Server Agent dezavantajını aşabilirsiniz:

  1. SQLAutomate gibi üçüncü taraf ürünleri
  2. Windows Görev Zamanlayıcı
  3. Ana sunucu özelliği 1 ve 2 kurulu olan bir SQL Server Standard veya Enterprise Edition çok düşük maliyetlidir veya ücretsizdir. 3, ortamınızda zaten mevcut olmadıkça pahalıdır.

Michael Proey'in "Üretimde SQL Server Express Kullanımı" konusundaki mükemmel sunumuna (google it) bakın.


Aslında 7 yaşında bir
yazıydı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.