MSDE nebo WMSDE? Jak se od sebe liší? Jak je to opravdu s maximální velikostí databáze? 2 GB, 4 GB, 16 GB nebo neomezeně? A jak je to s tím omezeným výkonem těchto databází? Co je SQL Server 2005 Express Edition? A proč vlastně nepoužívat pro DB aplikace Access?
Takže hezky popořadě:
Microsoft SQL Server 2000 Desktop Engine, aneb MSDE, je databázové jádro SQL Serveru 2000, které je dostupné zcela zdarma a je volně šiřitelné.
Ve srovnání s plnou verzí SQL Serveru však MSDE obsahuje řadu omezení (je zadarmo, tak se není čemu divit, že). Omezení, jak uvádí Microsoft, spočívají v omezení maximální velikosti databáze, v omezeném výkonu databázového stroje a v omezeném počtu souběžných instancí.
MSDE podporuje databázi o maximální velikosti 2 GB, tečka, tady se není moc o čem bavit.
U omezení výkonnosti už to však tak jednoduché není. MSDE a rovněž SQL Server 2000 Personal Edition obsahuje proces „workload governor“, který omezuje výkon databáze při překročení určitého počtu souběžných databázových operací (typicky spuštěný příkaz SQL).
Workload governor je navržen tak, aby omezoval výkon instance databázového stroje v případě, kdy databáze vykonává více než 8 souběžných operací.
MSDE, ostatně jako všechny verze SQL Serveru 2000 a SQL Serveru 2000 Personal Edition, podporuje 32 767 připojení k instanci databázového stroje. Neexistuje přitom žádné omezení pro počet připojení, které mohou v jednom okamžiku spouštět operace. Jediným efektem workload governoru je, že „zpomaluje běh databázového stroje“ v případe, kdy v databázi dochází ke zpracování více než 8 operací současně.
Jakmile je workload governer aktivován, omezuje výkon databáze tím, že vždy na několik milisekund odloží zpracování každé běžící operace, typicky čtení či zápisu dat.
Tolik teorie, kterou si můžete přečíst na webu Microsoftu. Jak je to však v praxi? Nezávislé testy (např. http://fox.wikis.com/wc.dll?Wiki~MSDEBenchMarks~SoftwareEng) dokazují, že i při souběžném provádění více než 8 databázových operací NENÍ pozorováno zpomalení běhu databázového stroje.
A jak je to s omezením počtu instancí MSDE na jednom serveru? Podle základního popisu lze na jednom stroji instalovat stejný počet instancí MSDE jako plnohodnotného SQL Serveru, tedy 16. Uvádí se to na http://www.microsoft.com/sql/msde/productinfo/features.asp, avšak informace o praktickém použití se hledají těžko a nelze se tedy na číslo 16 spolehnout. (informace převzata z časopisu QUAS č. 49, vydává společnost DAQUAS.)
Microsoft SQL Server 2000 Desktop Engine (Windows), aneb WMSDE, je obdoba klasického MSDE dodávaná se službou Windows SharePoint Services. Od klasického MSDE se liší v několika podstatných funkcích. WMSDE především nemá žádný limit velikosti databáze (no popravdě – 16 GB by měl být údajně strop, v praxi jsem to ale nezkoušel. Vyzkoušeno mám zatím to, že 2 GB limit tam opravdu není, až budu mít v DB víc než 16 GB dat, dám vám vědět. Oficiálně se však říká, že žádný limit velikosti u WMSDE není). Na jedno omezení velikosti však v praxi při používání WMSDE s Windows SharePoint Services stejně narazíte – do jedné knihovny dokumetů WSS lze uložit max 2 GB dat! Zkoušel jsem to několikrát a vždy to tak bylo. WSS vám u dané knihovny oznámí „Vykreslení se nezdařilo“ a hotovo.
WMSDE, na rozdíl od MSDE, také nemá žádné umělé omezování výkonu, nicméně jak jsme si již řekli, není to zase takový problém. Je tu však jedna podstatná informace – WMSDE nepodporuje žádné uživatelsky definové databáze, funkčně je navázaná výhradně na službu Windows SharePoint Services! WMSDE lze spravovat pouze lokálně.
V praxi je rovněž poměrně obtížné poznat, máme-li nainstalováno MSDE, nebo WMSDE. Zmínka o tom je např. v článku KB823465 ("You may not be able to distinguish between instances of Microsoft SQL Server 2000 Desktop Engine or Microsoft SQL Server 2000 Desktop Engine (Windows) in the Add or Remove Programs entry in Control Panel", http://support.microsoft.com/default.aspx?scid=kb;en-us;823465).
Používáte-li jako DB engine Microsoft Access, pak největšímu problému, kterému můžete čelit je pravděpodobně způsob systému zápisu dat do tabulek. Access totiž patří k tzv. "raw" databázím, tzn. že data zapisuje přímo do tabulek a musí se čekat, až se dotaz zpracuje, což jednak zpomaluje běh aplikace a jednak nastávají problémy, pokud např. dva uživatelé chtějí modifikovat jednu tabulku popřípadě jeden záznam.
No a SQL Server 2005 Express Edition? V polovině letošního roku nahradí MSDE. Maximální velikost databáze bude 4 GB, podpora 1 CPU a 1 GB RAM. Dostupné zdarma.