The following script will allow the user to get information from all spids that have a program name associated with them. That is event info out of dbcc inputbuffer. Additional columns may be added and used in the table through simple modifications of the script. I just found it useful for troubleshooting and setting up with a hotkey. This way I have quick access to finding out which process is running for given cpu cycles etc or program name. I have included the basic script. Additional functionality may be added to the script for additional benefit.
One of the issues you'll face with SQL Server is blocking which is caused by other processes that are holding locks on objects. Until the locks are removed on an object the next process will wait before proceeding. This is a common process that runs within SQL Server to ensure data integrity, but depending on how transactions are run this can cause some issues. Are there ways to get around blocking by using different indexes to cover the queries that may be running?