Úterý, listopad 18, 2008

Potíže s MS SQL Server Management Studiem

Jak jsem již psal, nainstaloval jsem novou Microsoft SQL databází verze 2008. Jde o zdarma šířenou verzi Express. Malá poznámka pro ty, kteří Management Studio nepoužívají: je to aplikace, která zajišťuje velkou část administrace Microsoft SQL serveru a interaktivní práci s jeho daty. Je poměrně náročná na hardware, ale celkem dobře se s ní pracuje.

MS SQL Management Studio mohu porovnávat například s aplikací SQLyog , která provádí podobné činnosti jako Management Studio, ale pro SQL databázi MySql. V tomto porovnání Microsoft prohrává. Je pomalejší, pomaleji startuje a SQLyog Community Edition je stejně zdarma jako MS SQL Management Studio. SQLyog má mnohem vícefunkcí a méně chyb.

Nejvíce mě na Management Studiu vadí tyto věci:

  • Nepodařilo se mi ho přesvědčit, aby přesunulo sloupce v tabulce tak jak potřebuji. Po této operaci, kterou Designer tabulky viditelně umí, dojde při uložení změn v tabulce k chybě, která se hlásí jako "Název změněné tabulky" . Ano, nepletu se. Tak se chyba opravdu hlásí. Chybu jsem vyřešil tak, že tuto operaci provádím pomocí Visual Studia, které toto zvládá bez problémů.
  • Velmi často při uložení změn v tabulce dojde k chybě ukládání. Netuším o jakou chybu jde, protože se hlásí stejně jako chyba předchozí. Možná jde dokonce o stejnou chybu? V každém případě to dost obtěžuje. Chybu opět řeším změnami tabulek v databázi přes Visual Studio. Ještě, že ho máme...
  • Strukturu databáze a data určená pro vývoj ukládám na Subversion server Assembla.com. Slouží mi o pro správu verzí struktury a dat SQL serveru. Na Subversion je ovšem lepší ukládat textové soubory a to rozhodně záloha MS SQL serverů není. Textový soubor si tedy vyrábím v Management Studiu pomocí Generate Scripts. Jsem rád, že to Microsoft umí. Bohužel průvodce neumím zkrátit a nastavené volby si nepamatuje. Je to velmi zdlouhavé, zdržující a protivé. řešení neznám.
  • Potřebuji se často podívat, jaký vlastně přesně příkaz nebo dotaz včetně hodnot SQL server zpracovává. To bych považoval za běžný požadavek, který už umělo bez problémů i FoxPro. SQL 2008 toto nezvládá. Není to sice snad ani tolik chyba Management studia, ale někde si postěžovat musím. Placené verze MS SQL serveru obsahují v Management Studiu profiler, který mimo jiné zvládá i zobrazování příkazů, které SQL server zpracovává. Je to mocný a jasný nástroj. Plně chápu, že v Express verzi, která je k dispozici zdarma, tato schopnost nemusí být obsažena. Na druhé straně by mohla být nahrazena například prostým logováním provedených příkazů do souboru. Bez toho je to špatné. Samozřejmě existují na toto nějaké náhradní berličky. Jedna z nich, která se jeví velmi dobře, je Open Source program SQL Server 2005 Express Profiler. Ten ovšem, jak je zřejmé již podle názvu, pracuje pouze pod verzí 2005 SQL serveru. Pod SQL 2008 se mi ho bohužel nepodařilo rozchodit. Samozřejmě je možné použít například log LINQ to SQL. Tento způsob ovšem není moc obratný a navíc není schopen ukázat všechny příkazy. Dobré řešení jsem zatím nenašel.
Nemohu samozřejmě vyloučit, že všechny výše uvedené nedostatky jsou zaviněny pouze mojí neznalostí. Nejsem na MS SQL žádný guru. Přesto jsem z SQL 2008 Express dost rozladěn.

Velmi zajímavá a užitečná reakce na tento článek od Jardy Jiravy.

2 komentářů:

Jarda Jirava řekl(a)...

Ahoj, řekl bych, že právě poslední odstavec přesně vystihuje důvod, proč jsi z SQL2008 rozladěn.
Krátké připomínky, trace lze zapnout pomocí procedur začínajících na sp_trace, pro prohlížení si potom můžeš vytvořit virtuální tabulku pomocí fn_trace_gettable. Pokud pohledáš, tak najdeš i předpřipravené SP, které spoustu nastavení již provádí za tebe.
Obdobně pak scriptování, které se dá nově řešit pomocí PowerShell a je to na několik málo řádků.
Pěkný den
--J.

DM řekl(a)...

Zdravim,
co se tyce profileru pro MS SQL 2008 Express, tak nefunkcnost zminovaneho free profileru v textu clanku je dana tim, ze autori dosud nepridali reference na assembly pro 2008 server..
V nize uvedenem linku je odkaz , kde je mozno stahnout upravenou verzi pro MS SQL Express 2008, funguje to (sam jsem odzkousel).

http://code.google.com/p/sqlexpressprofiler/issues/detail?id=87

MD