SQL MCM online tréning–1. hét

Már a 4. hetében járok a 7 hetes Quickstart’s SQL Server 2008 Microsoft Certified Master (MCM) Accelerated Exam Preparation Program tréningnek. Arra gondoltam, hogy a heti két alkalom főbb témáit és érdekességeit megosztom. Sajnos arra nem kaptam lehetőséget, hogy a Power Point prezentációkat és a trénerek által bemutatott mintakódokat, adatbázisokat megosszam, de így is érdekes lesz remélem Első körben egy rövid összefoglalással kezdeném, majd a heti téma kielemzésével folytatom: Az eddigi ... [More]

Backup WITH CHECKSUM

I’m attending on the Quickstart’s SQL Server 2008 Microsoft Certified Master (MCM) Accelerated Exam Preparation Program and a question came up yesterday: Can we use the WITH CHECKSUM with transaction log backups? The answer is pretty simple: yes, we can. Here is a sample script for evidence USE [master]; GO BACKUP DATABASE [AdventureWorks2012] TO DISK='c:\DbBackups\AW2012\aw2012full.bak' WITH INIT, CHECKSUM; GO BACKUP LOG [AdventureWorks2012] TO DISK='c:\DbBackups\AW2012\aw2012tr.bak' WIT... [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]

Adatbázis szintű jogok kilistázása

Az utóbbbi időben sokszor kérdezték különböző fórumokon, hogyan lehet kilistázni az adatbázis szintű jogokat. az alábbi script ezt megcsinálja: USE [?] GO SELECT DB_ID() AS [db_id], DB_NAME() AS [db_name], DPER.[class_desc], DPER.[permission_name], DPER.[state_desc], DPRI.[name], DPRI.[type_desc], CASE WHEN DPER.[class_desc] = 'DATABASE' THEN DB_NAME() WHEN DPER.[class_desc] = 'OBJECT_OR_COLUMN' AND DPER.[minor_id] = 0... [More]

SSMS kapcsolatok szinkódolása

Kedves kolléga Horváth Zoltán felfedezte, hogy az SQL Server Management Studio a query ablak alsó része más-más szinekben pompázik, amikor a fejlesztői vagy az éles rendszerhez kapcsolódik. Ennek az az oka, hogy az én regisztrált szervereimet importálta be a saját SSMS-ébe. Én pedig minden szervercsoporthoz külön szinkódot használok. A szinezésnek történelmi okai vannak: amikor először megjelent az SQL 2005-höz kiadott SSMS elkezdtem használni. Ez egy nagy változás volt az addigi Enterprise m... [More]

Hasznos funkció: fnIsGuid

Ismét alkotni kellett, bár most a saját hülyeségem miatt  Van egy táblám, amiben nvarchar(max) típusú oszlopba sokfajta adatot tartok, de nekem csak azok kellenek, amik uniqueidentifier típusúak. Találtam egy függvényt (ezen az oldalon: http://weblogs.sqlteam.com/mladenp/archive/2005/08/16/7545.aspx), ami ezt a problémát megoldja: CREATE FUNCTION [dbo].[fnIsGUID] ( @input varchar... [More]

Hierarchikus adatok kezelése SQL Server segítségével – 1. rész

Az utóbbi időben igen sok esetben kellett hierarchikus adatokkal foglalkoznom, illetve interjúk során is fel szoktam tenni ezzel kapcsolatban kérdéseket. Az alábbiakban szeretném bemutatni, hogy a különböző SQL Server verziók esetében ezen adattípusokat hogyan lehet/érdemes kezelni. Mi lehet hierarchikus adat? Ezt az egyszerű kérdést talán a legjobban egy példával lehe... [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]

SQL Server custom EventLog logger

I’m active on several forums (TechNet, MSDN, etc.) and found some interesting questions, I’d like to blog about. One of the topic is a custom event logging module for SQL Server. I can use a built in function to log any error to the Application Event Log with the following code snippet: RAISERROR ('Error sample', 16,1) WITH LOG;   Ok, this works if I want to use Application log. What can I do if I have to have my custom Event Log? If I have SQL Server 2005 or later, obvious answer ... [More]