Ki törölte a táblát???

Hol volt, hol nem volt, volt egyszer egy SQL Server 2008 R2 ahol se DDL Trigger, se audit, se semmi sem volt beállítva és dbo joga volt a fejlesztőknek az éles környzetben. Történt egy nap – nevezetesen szerdán – hogy valaki törölt egy táblát. E miatt sajnos a program nem az elvárásoknak megfelelően működött. Szerencsére mentés volt, de meg szerettük volna tudni, hogy ki követte el a dolgot, illetve, hogy mikor is történt az egész. Az időpontra azért volt szükség, hogy a point-in-time restore re... [More]

Aktuális wait statisztika

Vannak olyan esetek, amikor kíváncsi vagyok a wait stat-ra. Ezt a sys.dm_os_wait_stats DMV-ből lehet kiszedni, igen ám, de ez az SQL Server legutóbbi indulása óta összegyűlt adatokat adja vissza. Ez azért lehet problémás, mert lehet nem is az összesre – indulástól eltelt idő alatt összesített, hanem az éppen akuális állapotra vagyok kíváncsi. Ezt két módon érhetem el: Kitörlöm a DMV-ből az adatokat és ezek után az új adatokat nézem meg (nem ajánlott): -- Clear Wait Stats DBCC SQLPERF('s... [More]

SQL Server elérése az internet felől

Alapvetően nem ajánlom az SQL Server-t direkt kitenni az internetre, de bátraké a szerencse :-). Ma valaki megkérdezte, ha mégis így tenne, mi az a minimum beállítás, amit ajánlok. az alábbi listában összefoglaltam: statikus port beállítása az SQL Server publikus IP címére az SSCM segítségével, soha ne használjuk az alapértelmezett 143... [More]

xp_readerrorlog paraméterei

Mivel magyarul nem igazán találtam "dokumentációt" az xp_readerrorlog extended "tárolt eljárásról" - de utálom lefordítani :) - ezért arra gondoltam, hogy majd én dokumentálom :) Ezen az oldalon elérhető amit találtam: http://www.iamberke.com/page/xp_readerrorlog.aspx  

Mikor használ a DBCC több processzort?

Na ez már érdekes téma! Van egy szerverem, amiben van 4 processzor (mag), de mindig csak egyet használt a DBCC CHECKDB. Kicsit utánajártam a dolognak: Csak akkor használja a több procit, amikor Enterprise Edition, illetve Developer vagy Eval edition van telepítve, A vizsgált táblán/táblákon nincs se CLR, se T-SQL alapú számított oszlop (computed column), A párhuzamos ... [More]

Adatbázisok méretének lekérdezése

Az alábbi lekérdezés segít megnézni, hogy mely adatbázisok, mennyi helyet foglalnak.   USE [tempdb] CREATE TABLE #DatabaseSize ( [database_name] sysname, [type_desc] nvarchar(50), [state_desc] nvarchar(50), [size_in_MB] bigint ); EXEC sp_MsForEachDb 'USE [?] INSERT INTO #DatabaseSize SELECT DB_NAME(), type_desc, state_desc, SUM(size * 8 / 1024) FROM sys.database_files GROUP BY type_desc, state_desc ' SELE... [More]

Lock escalation on partitioned tables

Locking is a necessary thing for better concurrency. SQL Server manages its locks automatically. In general: when a statement issues about 5000 locks on a single table or index, lock manager issues an escalation. Lock escaltion details can be found in BOL at here: http://msdn.microsoft.com/en-us/library/ms184286.aspx What if I have partitioned table? Do I really need to lock the whole table or index? I believe, most of the cases, answer is no. It may be enough to lock that particular ... [More]