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]

max server memory beállítás

Az elmúlt időszakban több SQL Server beállítását is meg kellett vizsgálnom. Általban a max server memory beállítás mindenhol az alapértelmezett, dinamikus értéken volt: akár a szerver összes memóriáját is elviheti az SQL Server, ami igen komoly "lassuláshoz" vezethet. Alapvetően a max servever memory beálításnál az alábbi para... [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  

uniqueidentifier összehasonlítás SQL Server-ben

Na ez is egy őrült ötlet de miért ne... Vajon az alábbi lekérdezésnél melyik GUID nagyobb? DECLARE @A uniqueidentifier = '0CB2DC09-D93C-4CFF-8D49-000000000001'; DECLARE @B uniqueidentifier = '66454F18-F2D1-4934-85CD-000000000001'; SELECT @A AS [A], @B AS [B], CASE WHEN @A > @B THEN 'A' ELSE 'B' END AS [GuidCompare], CASE WHEN CAST(@A as varchar(36)) > CAST(@B AS varchar(36)) THEN 'A' ELSE 'B' END AS [StringCompare] GO Szerintem itt min... [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]

cliconfg.exe on different platforms

I love when people set up alias for their SQL Server installation; and wondering why it is not working (Of course complaining to DBA’s that the SQL Server remote access is not enabled ). Well, remote access is just fine, alias as well… then what can be the problem? Let’s see in a real world scenario: Running an application on Windows Server 2008 R2 can be both 32 and 64 bit application. If the alias created using the 64 bit version of cliconfg.exe and the application is built for 32 bit, it w... [More]