úterý 22. června 2010

Zjištění velikosti jednotlivých tabulek v DB

Dneska jsem potřeboval zjistit velikosti jednotlivých tabulek v databázi. Sice jsem v SQL Manageru našel možnost zobrazení nějakého takového reportu, ale selhalo to na chybě. Kolega mi poskytl zajímavý skriptík, který hezky přehledně zobrazí jednotlivé velikosti tabulek v databázi. Člověk hned zjistí, která z tabulek je ta nenasytná ;-)


DECLARE @DATABASE varchar(100)
DECLARE @tablename varchar(100)
DECLARE @Space TABLE (name varchar(100), rows varchar(100), reserved varchar(100), DATA varchar(100), index_size varchar(100), unused varchar(100))

SET @DATABASE =  DB_NAME()

DECLARE State_Cursor CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'   AND TABLE_CATALOG = @DATABASE ORDER BY TABLE_NAME
OPEN State_Cursor
FETCH NEXT FROM State_Cursor INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
  INSERT INTO @Space EXEC sp_spaceused @tablename
  FETCH NEXT FROM State_Cursor INTO @tablename
END
CLOSE State_Cursor
DEALLOCATE State_Cursor

SELECT * FROM @Space

neděle 20. června 2010

Subversion na Asus WL500gP

Je to až k neuvěření, co všechno tento router dokáže. Pomocí tohoto návodu se mi podařilo zprovoznit Subversion. Nečekal jsem od toho žádný extra výkon vzhledem k hardware, ale byl jsem příjemně překvapen, že se s tím dá v pohodě pracovat. Jeden uživatel sice není žádná zátěž, ale i tak je to dostačující. Zatím jediný problém, na který jsem přišel, je při odpojení disku. Samba to nějak nerozdýchá a zkolabuje, takže při opětovném připojení disku se musí provést reboot. Škoda, musím nějak vymyslet, jak to obejít, aby se na noc dal disk vypínat a zbytečně neběžel.

úterý 15. června 2010

Povolení MSDTC se vzdáleným MS SQL

Potřeboval jsem zapnout distribuované transakce mezi vývojovým počítačem a MS SQL databází, která běží na jiném stroji. Chyba ve VS byla celkem jasně popsaná, ale kdyby MS před náma neměl neustále nějaké tajnosti :-/ V XP je to celkem jednoduché. Přes Správu počítače se tam dá dostat. Bohužel u Vist je to jiné. Musí se ručně spustit comexp.msc. Následně se ve stromečku vybere Služba komponent -> Počítače -> Tento počítač -> Koordinátor distribuovaných transakcí -> Místní koordinátor DTC. Na poslední položce zvolit Vlastnosti. Na kartě Zabezpečení nastavit vše dle obrázku.
Tím je první část hotovo, ale ještě není vše vyřešeno ;-) Ještě je potřeba povolit na firewallu patřičný port pro komunikaci. Když se jedná o standardní systémový firewall od MS, tak to lze nastavit následovně. V Ovládacích panelech se vybere Centrum zabezpečení. V levé nabídce zvolit Brána firewall systému Windows. V dalším okně opět zleva vybrat Povolit program v bráně firewall systému Windows. Na záložce Výjimky nejprve Přidat program..., kde pomocí Procházet... se musí vybrat ze systémového adresáře windows - tj. %windir%\system32 - soubor msdtc.exe. Potvrdit a poté Přidat port..., kde se doplní nějaký název - např. MSDTC - nastaví se číslo portu 135 a zvolí protokol TCP. Všechno potvrdit, zavřít a když pánbůh dá (rozuměj Bill Gates ;-)) tak to začne fungovat :-D