I came cross this article regarding Hash Joins. It explains the Hash Join/Match in great detail. Download it from here
Here is the place I found for the people who are willing to learn new features of SQL Server 2012.
Prior SQL Server 2012, you have the option to install Book Online for SQL Server. In SQl Server 2012, the option is still there, however, selecting this option will only install the document viewer rather than the library. You will have to take more steps to have the document downloaded. Here are the steps you can take to install the library.
By Default, libraries will be downloaded and installed in C drive. If this is not the location you want, you may want to follow steps here to change the path.
- Open SSMS, go to Help, and select Manage Help Settings. Help Library Manager will be opened
- Choose Install Content From On Line. The Help Library Manager will retrieve available libraries online.
- Scroll down to SQL Server 2012 and click on “add” for items Books OnLine, Developer Reference, and Installation.
- Click on Update.
New certifications are available very soon. They are MCSA – Microsoft Certified Solution Associate, MCSE – Microsoft Certified Solution Expert, MCSM – Microsoft Certified Solution Master, and MCA – Microsoft Certified Architect (stay the same).
Overview SQL: http://www.microsoft.com/learning/en/us/certification/cert-sql-server.aspx
This morning, as a routine of my regular day, I checked my emails and found a very special one which is from MVP Program. It says
Dear John Huang
Congratulations! We are pleased to present you with the 2012 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in SQL Server technical communities during the past year.
I am proud of being a MVP and I appreciate this recognition of all my work done in our SQL Server Community. I would like take this opportunity to thank all professionals and MVPs here who brought me into the community, provided opportunities to let me grow, nominated me, and also ones who attended my events, read my blog, and asked me questions from various locations. Thanks for your continuous support.
One of my friends finds this issue in the systems he is managing. In my locking and blocking series, I mentioned that when a record is being modified it always acquires IX lock on the object, IX lock on the page, and X lock on the record. In rare case, this may also hold IX lock on another object. This is cased by sp_rename.
SQL Mail is removed from SQL Server 2012 as Microsoft promised in SQL 2008′s BOL. Configuration “SQL Mail XPs” is removed from SQL 2012, check sp_configure in SQL Server 2012. Supporting procedures are removed as well. Those procedures are removed from master database xp_startmail, xp_stopmail, xp_findnextmsg, xp_readmail, xp_deletemail, xp_sendmail, and sp_processmail. Ensure your SQL Server applications do not use them anymore. If do, have those contract procedures handy before upgrading SQL Servers to 2012.
Database snapshot is a great SQL Server built-in feature serving many situations for programmers and DBAs to quickly create a read only copy of a operational database. Sometime, creating a database snapshot is a daunting work especially when you have hundreds database files. Here I give you the code to generate database snapshot automatically with few parameters regardless number of files the database has.
create procedure CreateDatabaseSnapshot ( @SnapshotName sysname, @SourceDatabaseName sysname = null ) as begin set xact_abort on select @SourceDatabaseName = ISNULL(@SourceDatabaseName, db_name()) declare @SQL nvarchar(max), @Proc sysname = quotename(@SourceDatabaseName)+'..sp_executesql' declare @t table(name sysname, physical_name sysname, i int identity(1,1)) insert into @t exec @Proc N'select name, physical_name from sys.database_files where type = 0' select @SQL = 'create database '+ QUOTENAME(@SnapshotName) + ' on ' select @SQL = @SQL + '(name = '+QUOTENAME(name)+', filename = '''+physical_name+'.'+@SnapshotName+'''),' from @t where i>1 select @SQL = @SQL + '(name = '+QUOTENAME(name)+', filename = '''+physical_name+'.'+@SnapshotName+''')' from @t where i=1 select @SQL = @SQL + ' AS SNAPSHOT OF '+QUOTENAME(@SourceDatabaseName)+' ;' exec(@SQL) end go
exec CreateDatabaseSnapshot 'AdventureWorks2008R2_snapshot', 'AdventureWorks2008R2'
I really missed updating my dormant blog, http://sqlx.blogspot.com for long time. I can’t leave without it. Finally, I managed to setup my home on my own server. I will be writing my blog here. All my blog posts in http://sqlx.blogspot.com will be gradually moved to here. I am excited. Here is the picture from the celebration of my blog