SQL Clone
SQLServerCentral is supported by Redgate
Log in  ::  Register  ::  Not logged in

Which Process ID is SQL Server running on?

There was an interesting question posted on a forum recently, asking how can you tell which sqlservr.exe process (shown in task manager) is mapped to which specific instance of SQL Server running on a server, if you have a multi-instance server and the account running each separate SQL Service is the same. I won’t go into the details of the post, but I thought the answer worth of a post of my own. As with most things in SQL Server there is more than one way to obtain this information.

Let’s assume that you, like me, have two instances running on you server: when you go to task manager you will see two sqlservr.exe processes listed under the processes tab


The first thing that I would do is add a column called PID to this view. Select <View> <Select Columns…> from the toolbar menu. Select the PID (Process Identifier) column checkbox and select <OK>


This will give you the process ID of each process running on your machine and displayed in task manager including your two sqlservr.exe processes.


Now you have the process id of each process you can either:

  • Open up SQL Configuration Manager
  • On the SQL Services tab right click on the SQL instance that you want to match up to a process
  • Select <Properties> and click the <Services> tab
  • On the general tab you should see a process id property


The other alternative, is to connect to each instance in SSMS (Management Studio) and open the SQL Server log. When the service starts up it writes the process ID to the SQL Server log. So if you go to the start of your log file you should see an entry similar to the following:



Posted by Steve Grant on 5 January 2011

We decided to have each instance run under it's own unique service account, there by you can identify the sql server process as well by which service account it is running under

Posted by robertmcook on 6 January 2011

here is some powershell tested against sql server 2008 on windows 2008:

Get-WmiObject Win32_Process -Filter "Name like 'sqlservr%'" | ForEach-Object {$Cmd = $_.Commandline; $Cmd = $Cmd.Replace('"', ' ').Replace("  ", " "); $InstanceName = $Cmd.Substring($Cmd.IndexOf("sqlservr.exe -s")+15, $Cmd.Length - ($Cmd.IndexOf("sqlservr.exe -s")+15)); Write-Output $InstanceName, $_.Handle}

Leave a Comment

Please register or log in to leave a comment.