Jay's Blog

[coding, debugging, and troubleshooting with Microsoft Technologies]

Blog - About

About Jay's Blog

I am a Premier Field Engineer (PFE) working with Independent Software Vendors (ISVs) that develop solutions using Microsoft Technologies.  This affords me the opportunity to travel to many different places to work with customers that are doing a lot of interesting things with Microsoft Software.  When onsite, I am working with customers to help resolve performance issues or to find better ways to implement solutions using Microsoft products.  I also deliver onsite classes or customized training for development customers.  Most of my time is spent with software development, SQL Server, and Windows Azure.  I've been in the IT Industry for 17 years with most of that focused on database support and development.   This blog draws on my experiences "in the field" as a Microsoft PFE.

  • Jay's Blog

    Troubleshooting Slow Disk I/O in SQL Server

    • 5 Comments
    If you suspect you are experiencing poor disk performance you can use internal DMVs combined with a Performance Monitor collection to get a good picture of the health of the disk I/O subsystem and any latency SQL Server is experiencing from its poor performance...
  • Jay's Blog

    Required rights for SQL Server service account

    • 1 Comments
    This topic comes up from time to time in my daily support work, so I thought I would make a quick post on the rights required if you do not want the SQL Server service account to be a member of the Local Administrators group on Windows. Having the SQL...
  • Jay's Blog

    How can I get a list of installed SQL Server instances?

    • 7 Comments
    Today we’ll talk about how we can get a list of locally installed SQL Server instances on a system.   This information is stored in the registry at the following location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names...
  • Jay's Blog

    Sequence Objects in SQL 2012 and SQL 2008

    • 0 Comments
      Sequence Objects are new starting in SQL Server 2012.  They work similarly to an IDENTITY value, but where the IDENTITY value is scoped to a specific column in a specific table, the Sequence Object is scoped to the entire database and controlled...
  • Jay's Blog

    Why do we need trace flag 3604 for DBCC statements?

    • 0 Comments
    For many DBCC statements, we need to enable trace flag 3604 before executing the DBCC command.  This is done via: DBCC TRACEON(3604) GO But why do we need this?  Some DBCC commands are designed to send the output to the log, attached debugger...
  • Jay's Blog

    How can I create a dump of SQL Server?

    • 0 Comments
    You can create a memory dump of the SQL Server process space in several ways. There are many external tools that can help you accomplish this such as userdump.exe, debugdiag.exe, and ADPlus.exe. In this post, I’ll cover 3 common ways to accomplish...
  • Jay's Blog

    Using Windows 2008 R2 as a workstation (and a lab)

    • 5 Comments
    Lately there seems to be an increasing number of people that want to run Windows 2008 R2 Server as their primary OS on their laptop or desktop systems as opposed to Windows Vista or Windows 7.  I’ve been doing this for some time now, and I thought...
  • Jay's Blog

    The parameters of xp_readerrorlog

    • 2 Comments
      I find that few people know xp_readerrorlog accepts parameters to help you mine information out of the SQL Error log (as well as the SQL Agent error log).  The SQL Error log has a wealth of information.   In this post, we’ll look...
  • Jay's Blog

    Uninstalling a SQL Server Service Pack

    • 2 Comments
    Did you know that starting with service packs (Service Pack 1) in SQL Server 2008 you can uninstall them from Add/Remove Programs like any other update? But as always, backup both your user and system databases before applying any update, hot fix, cumulative...
  • Jay's Blog

    Proper I/O Capacity Planning and Configuration Resources for SQL Server

    • 1 Comments
    To understand and perform proper IO Capacity Planning for SQL Server, you must understand the IO characteristics and data access patterns of the workload that will be sent to the SQL Server.   Unless you are using a vendor or 3rd party product...
  • Jay's Blog

    Creating a custom performance monitor counter for SQL Server

    • 3 Comments
    If you have ever needed to monitor a value in SQL Server, or follow the trend of anything that can be expressed in a numerical value – then creating a custom performance monitor counter could be just what you need…. For this example, I...
  • Jay's Blog

    How do I set a breakpoint in a CLR Stored Procedure already deployed and running on a live SQL Server and debug is using Visual Studio?

    • 3 Comments
    For information on setup and debugging a CLR stored procedure in a direct-debug scenario by “stepping-through” the code from within Visual Studio, OR by using a test TSQL script from with Visual Studio, refer to the following MSDN article...
  • Jay's Blog

    Finding which queries were executing from a SQL Memory Dump – revisited

    • 8 Comments
    A message about the previous post on finding queries in a SQL Memory Dump file: Back in October I did a post on finding queries in SQL Server Memory Dumps.  It has been a popular topic, but some have had difficulties following it.  After reviewing...
  • Jay's Blog

    How does SQL Server perform deletes in my table?

    • 4 Comments
    In this post we’ll look at how SQL Server deletes records in a table.  In this example, we’ll be using a clustered index.  For performance, SQL Server does not actually delete a row of data when requested by a transaction.  By not incurring...
  • Jay's Blog

    How do I find what queries were executing in a SQL memory dump?

    • 8 Comments
    NOTE:  This post has been updated in a new post due to an issue found with the steps in this post.  The procedure is the same, but the steps here may only work with 32 bit dumps.  Please read the post located at the address below: http...
  • Jay's Blog

    Basic Debugging Concepts and Setup

    • 0 Comments
    In my blog, from time to time I will rely on debugging to explain or prove out a concept. In this context, I am talking about debugging the SQL Server engine itself – not debugging any TSQL code written to run within SQL Server (although I am sure...
  • Jay's Blog

    Default Trace and System Health

    • 1 Comments
    So it’s been a little while since my last posting – actually a long while.  Since my last post some 8 months ago I’ve changed customers in my role as a PFE here at Microsoft and that has had me quite busy. I have a couple of posts I wanted to write...
  • Jay's Blog

    Using DBCC PAGE

    • 0 Comments
    DBCC PAGE is an undocumented – and unsupported – DBCC statement in SQL Server for dumping the raw contents of a single database page.   It will return all the metadata stored in the page, and with the right detail level parameter – return the...
  • Jay's Blog

    Why is using “Instant File Initialization” on my SQL Server a potential security issue?

    • 0 Comments
    Starting in SQL Server 2005 and onward, data files can be “instantly” initialized.  This helps to drastically reduce the amount of time required for creating large databases, adding files to an existing database, increasing the size of an existing...
  • Jay's Blog

    Searching through the SQL Server Errorlogs

    • 0 Comments
    Sorry – It’s been a while since my last post.  The past few months have been very busy for me.  The other day, I had a brief discussion with a colleague on ways to search through all of the error logs in SQL Server.  Obviously there are...
  • Jay's Blog

    What is a slot array?

    • 0 Comments
    What is a slot array?  Though it sounds like a line of gambling machines at the nearest casino, the slot array in SQL Server serves a crucial role in record management on a page.  A database page (and all other page types) in SQL Server is 8KB...
  • Jay's Blog

    Do waiting or suspended tasks tie up a worker thread?

    • 0 Comments
    I had a discussion the other day with someone about worker threads and their relation to tasks. I thought a quick demo might be worthwhile. When we have tasks that are waiting on a resource (whether it be a timer or a resource like a lock) we are tying...
  • Jay's Blog

    Basic Debugging Concepts and Setup - Part 2 (Basic & Common Commands)

    • 0 Comments
    So if you read my previous post on Basic Debugging Concepts and Setup, you are familiar with how to open a SQL Server dump or attach to the SQL Server process (sqlservr.exe). You are also familiar with what symbols are and why we need them. If you missed...
  • Jay's Blog

    Orphaned Locks - Idle Session - and XACT_ABORT

    • 0 Comments
    Sometimes you might see a situation where a session is holding locks, blocking other sessions for an extended period of time, but does not have an active request and appears to be Idle.  This can happen in a few different scenarios, but here we’ll...
  • Jay's Blog

    Catching who dropped SQL Server logins

    • 1 Comments
    I recently had a situation where SQL server logins were getting deleted from the system and nobody could figure out why or by whom.   So in this post, we present a few ways to catch this. First, if you are using SQL Server 2008, the easiest...
Page 1 of 2 (36 items) 12