2009-01-06 15 views
22

Masaüstü uygulaması için SQL Server Compact kullanımı mantıklı mı?Masaüstü uygulaması için Sql Server Compact kullanıyor musunuz?

  • Ne kadar veri işleyebilir?
  • Birden çok kullanıcıyla kullanmak mümkün mü? Kısıtlamalar nelerdir?
  • Veritabanı dosyaları bozulduğunda ne olur? Programlı olarak kurtarılabilir mi, yoksa sorunu uzaktan çözmek kolay mıdır?
+0

Neden bunun yerine SQL Express kullanmıyorsunuz? – ChrisW

+2

Karar vermeye çalışıyoruz. SQL Express, daha fazla alan gerektirir, ayrı bir hizmet olarak çalışır (hizmet sayısı bizim için bir sınırlamadır), kullanılmadığında bile kaynak kullanır, msi kurulumu gerektirir vb. –

cevap

32

Kesinlikle yapardım (ve yapardım). SQL Compact (SQLCE) bazı senaryolarda belirgin bir avantaj sunar. Artık hiçbir şekilde SQL Server'ın yerini alması gerekmiyor. Ölçeklendirilmez, binlerce eşzamanlı bağlantıyı çalıştırmak için yapılmaz, raporlama hizmetleri için tasarlanmamıştır, vb.

Ancak küçük ayak izine sahiptir. Yükleme, sadece DLL'ler üzerinde kopyalama meselesidir. Yedeklemek basit bir dosya kopyasıdır. Tablo doğrudan veya BCP kullanıyorsanız, depolama ve alma için hızlıca daraltılmış olabilir. Oh, ve bedava. Bir uygulama için yerel bir veri deposuna ihtiyacınız varsa, SQL Server dağıtmak ve yapılandırmak için bir acıdır. SQLCE basittir. Ayrıca, aynı sanal alanda, bir çoğaltma abonesi (çoğu küçük DB'nin yapamayacağı) olarak tam SQL Server olarak oynayabilir.

Düzenleme:

  • Ne kadar veri işleyebilir: Belirli sorulara cevap Unuttum? Neye göre? DB boyutu? Üretilen? Masa boyutu? Satır büyüklüğü mü? Deneyimlerim, DB'yi hiçbir sorun olmadan birkaç yüz MB'ye yayınlamamdır. Ben 4GB (4.0) olarak tutabilir düşünüyorum. Verimlilik, verileri nasıl eklediğiniz veya çıkardığınızla doğrudan ilgilidir. Bunu, 1k satırlık bir problemi çözmeden saniyede yakaladığımız bir çözümde kullanıyoruz. 1024 sütun ve maksimum satır boyutu 8k olabilir.
  • Birden çok kullanıcı var mı? Peki, birden fazla simülatör bağlantıyı (3.5'den itibaren) halledebilir, bu yüzden işe yarayacak. Bir kullanıcıdan birden çok bağlantı kullandım, asla çoklu değil.
  • Bozuk veritabanları? "Kırılmış" ı tanımlayın. Motorun "kompakt ve tamir" yöntemi vardır. Diğerleri gibi bir dosya - kırık bir yürütülebilir dosyayı nasıl düzeltirsiniz? Alanda herhangi bir yolsuzluk görmedim, eğer sormak istediğin buysa (iyi bir depolama kartına sahip olan bir CE cihazında yaptık, ama bu motorun hatası değil).
+0

Bozuk: bozuk db dosyası. Örneğin Bilgisayar aniden kapanırsa ne olur? Db dosyası bozuk olabilir mi? Bu olursa, otomatik olarak kurtarılabilir mi? –

+2

Veritabanı diğer dosyalara benzer. Eğer gücünüzü açıp açarsanız, o zaman yazıyorsanız, bu yolsuzluğa neden olabilir. Aynı veritabanı ile söylenebilir. Motorun kendisi ACID'dir ve testteki bozulmalar için Onarım işlevi ile iyi bir başarı elde ettik. – ctacke

+2

SqlCeDataReader ve SqlCeResultSet'i keşfettiğimizde kesinlikle CE'ye tapıyorum. Hızlıca kötüler. –

0

olduğunu ve iyi çalıştı. Sahip olduğum tek sorun, SQL Server 2005 Management Studio'nun bazı nedenlerden dolayı SQL Server CE'nin en son sürümü için tüm tasarımcı özelliklerini desteklememesidir (örneğin, tabloları düzenleyemezsiniz). Sanırım 2008 versiyonunu kullanmalısın.

Yeterince hızlı ama itiraf etmeden küçük veri kümeleri için kullandım.

İlgili konular