There are a few reasons that one might need to restore a SQL Server backup.  Perhaps it is time to refresh a test database with a copy from production. Maybe there has been a disaster and this is how the disaster recovery plan is getting the system back online.  Another common restore reason is to recover a single data element that was removed or modified in production by accident.  Whatever the reason, being able to restore a database and understanding some of the basic options thereof is an essential skill for the SQL Server DBA. For this demo I will cover the topic using theRead More →

Thank you to those of you that came to see my presentation on full text indexes at SQL Saturday #615 in Baltimore!  As promised, please find the slide deck and table builder/ sample queries script at these links.  Also, I have included a few links to useful Microsoft documentation pages below to help you continue to expand your knowledge. CONTAINS FUNCTION FREETEXT FUNCTION FULL TEXT EXAMPLE LIST A few notes: I received an explanation for the strange query plan functionality I showed at the end of the class.  It turns out I was 100% wrong.  The plan was showing just fine and will show aRead More →

Meet the Enemy: Sure, it looks all innocent and helpful.  Just sitting there informing you of your business activities.  But all too often I’ve seen this hideous monster ruin a SQL Server.   Let’s take a moment and talk about why this TV is our enemy.  Then we can follow up with a few ways to fix the problem. It’s becoming more and more commonplace to place these monitors around an office.  It’s becoming so common in my industry, transportation, that when I get a call saying that system performance is falling off suddenly I have learned to ask about any new TVs early inRead More →

I have been selected to present at SQL Saturday #615 in Baltimore!  I’m am honored, excited, and maybe a little scared.  Come see me (and a huge list of all star presenters) on May 6 at Loyola University in Columbia, MD. My session is “Full Text indexing!” or…”What is that service I never turn on?”.  In this session I’ll talk about what Full Text Indexing is, why it is a separate service, how to set it up, and how to use it.Read More →

In the previous blog entries we talked about the different data files, recovery models, and how they interact.  Today’s entry will talk about Native SQL Server Backups.  Having an understanding of the files and recovery models will help this entry make more sense.  We’ll cover restoring these backup files in the next installment. The most basic backup of a SQL Server database is a full backup.  This takes a snapshot of the data and log files for the moment in time that the backup was invoked.  It includes all of the objects of the database including tables and code objects.  This file can be restoredRead More →

This series is aimed at beginners in the SQL Server world or at those thrust into the role of DBA with little or no training.  As such we’ll be focusing on some common concepts and doing so at a very high level.  This series will not get especially technical nor will it cover topics in extreme detail.  Also, the demo information will be done using mostly UI from SSMS and wizards as applicable rather than scripting.  If being a full time SQL Server DBA is among your career goals you should consider this series of posts as only a starting point and seek further knowledgeRead More →

Thank you to everyone that attended my class “SSMS Tips and Tricks: Shortcuts for Impatient DBAs”.  As promised, please find the scripts and links below. Session Scripts:   Session Links: Apex SQL Refactor – http://www.apexsql.com/free/ AutoHotKey – https://autohotkey.com SentryOne Plan Explorer – https://www.sentryone.com/plan-explorer sp_whoisactive – http://sqlblog.com/files/folders/release/tags/who+is+active/default.aspxRead More →

This series is aimed at beginners in the SQL Server world or at those thrust into the role of DBA with little or no training.  As such we’ll be focusing on some common concepts and doing so at a very high level.  This series will not get especially technical nor will it cover topics in extreme detail.  Also, the demo information will be done using mostly UI from SSMS and wizards as applicable rather than scripting.  If being a full time SQL Server DBA is among your career goals you should consider this series of posts as only a starting point and seek further knowledgeRead More →

If you read my last post, you’ll find this to the be exact opposite.  Instead of determining the best way to find rows that exist in one dataset but not another, we’ll be looking for rows that exist in 2 different datasets. The obvious answer is a join statement, but does that always perform the best?  Certainly, if you require other fields from the secondary table then a join will always be best.  For this test we are looking for rows that appear in a table called orderheader that are also in a temporary table called #ords.  The field that we are comparing is anRead More →

It is a pretty common need to find rows that exist in one dataset, but not in another.  The question I will look to answer today is, “which way is best?”.  For this test we are looking for rows that appear in a table called orderheader that aren’t also in a temporary table called #ords.  The field that we are comparing is an INT called ord_hdrnumber and it is the Clustered Primary Key of each table. We’ll compare the pros, cons, and performance of 4 popular methods to complete the task.   –NOT IN SELECT a.ord_hdrnumber FROM orderheader a WHERE a.ord_hdrnumber NOT IN (SELECT b.ord_hdrnumberRead More →