November 20, 2009 at 12:23 pm
I was reviewing activity thru the activity monitor trying to determin why my CPU is @ 99%....anyways I noticed a process with a large wait time. This process shows it was a SQL Agent JOb running however the name is in hexidecimal format so I have no idea what the actual job is.
Here is the name:
SQLAgent - TSQL JobStep (Job 0xF1CA1968020D2647B0E1D42483AA2695 : Step 1)
I've searched the titles of all my jobs (some of which use an alphanumeric name) but none match this or any part of it.
Do I need to run the DTSRun command such as:
DTSRun /~0xF1CA1968020D2647B0E1D42483AA2695 !X !C ??
November 20, 2009 at 1:19 pm
Look in the Job Activity Monitor under SQL Server Agent node. That must show you the jobs that are running and that may help you.
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
November 20, 2009 at 2:11 pm
Bru,
That's where I was looking. Thanks for the reply though.
November 20, 2009 at 2:24 pm
AVB (11/20/2009)
I was reviewing activity thru the activity monitor trying to determin why my CPU is @ 99%....anyways I noticed a process with a large wait time. This process shows it was a SQL Agent JOb running however the name is in hexidecimal format so I have no idea what the actual job is.Here is the name:
SQLAgent - TSQL JobStep (Job 0xF1CA1968020D2647B0E1D42483AA2695 : Step 1)
I've searched the titles of all my jobs (some of which use an alphanumeric name) but none match this or any part of it.
Do I need to run the DTSRun command such as:
DTSRun /~0xF1CA1968020D2647B0E1D42483AA2695 !X !C ??
AVB (11/20/2009)
Bru,That's where I was looking. Thanks for the reply though.
Your initial post says you are using Activity Monitor and I am suggesting you to look at the Job Activity Monitor.
Activity Monitor and Job Activity Monitor are 2 separate Monitoring tools in SSMS.
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
November 20, 2009 at 2:59 pm
Bru,
Yes you are correct... however there can be many jobs running at any one given time. I could see what jobs are running by using the Job Activity Monitor but I need to know the specific one that is causing the high wait time.
November 20, 2009 at 4:17 pm
In the Jobs tab of Enterprise Manager or the Job Activity Monitor of SSMS, what jobs does it show actively running at the time you were experiencing the high CPU usage?
Joie Andrew
"Since 1982"
November 20, 2009 at 4:25 pm
AVB (11/20/2009)
Bru,Yes you are correct... however there can be many jobs running at any one given time. I could see what jobs are running by using the Job Activity Monitor but I need to know the specific one that is causing the high wait time.
Yes I agree...
I found a work around which might not be the best possible one. Currently working on it, will post here as soon as I am done.
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
November 20, 2009 at 11:36 pm
AVB (11/20/2009)
Bru,Yes you are correct... however there can be many jobs running at any one given time. I could see what jobs are running by using the Job Activity Monitor but I need to know the specific one that is causing the high wait time.
Hi,
Please follow the link below to my article on this topic. It would have been a huge reply, so I made an article and I am providing link below.
Find a SQL Agent Job Name based on the Activity Monitor[/url]
Edited to inlcude the new URL for the blog...
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
November 21, 2009 at 7:38 am
Bru,
Interesting article and script. I am not in front of SQL again till monday however I will give this a go as soon as I can. If I get some down time this weekend I may tackle it then. Thank you. I'll post back here soon...
November 23, 2009 at 7:54 am
Bru,
I had a chance to run your script and it does work. One word of advice is you should run that procedure as soon as you see the offending Process. I waited too long the first time and I couldn't retrieve the name. However I was ready the next time around!
I'm assuming your not running SQL 2000. Is that correct? I had to edit the proc to run on 2000. You had "master.sys.sysprocesses" I had to change it to "master.dbo.sysprocesses". Aside from that it worked well.
Good work and Thanks again! Now I have to dig into your procedure to understand the inner workings.
November 23, 2009 at 7:59 am
Thanks,
I am actually planning to improve that Stored Proc and make it a list for all SQL Agent Jobs instead of passing a parameter.
So sometime later next week check my site or I would update here about it.
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
November 23, 2009 at 11:21 am
AVB (11/23/2009)
Bru,I'm assuming your not running SQL 2000. Is that correct? I had to edit the proc to run on 2000. You had "master.sys.sysprocesses" I had to change it to "master.dbo.sysprocesses". Aside from that it worked well.
Yes, I was working on my SQL Server 2005 system.
It was late on Friday night (around 1 30 AM Saturday) and I had no time to test it on SQL 2000.
Blog -- LearnSQLWithBru
Join on Facebook Page Facebook.comLearnSQLWithBru
Twitter -- BruMedishetty
December 6, 2009 at 10:39 pm
How to link sysprocesses to sysjobs 🙂
Re:
sysprocesses.program_name 'SQLAgent - TSQL JobStep (Job 0xF1CA1968020D2647B0E1D42483AA2695 : Step 1)'
but how to match it to relevant sysjobs.job_id
There is a simpler way to get the same results... found a post from another user 🙂
-- link sysprocesses to sysjobs and sysjobsteps
select
p.spid,
p.program_name,
j.job_id,
job_name = coalesce(j.[name], ''),
jobstep_id = coalesce(js.[step_id], ''),
jobstep_name = coalesce(js.[step_name], '')
from master.dbo.sysprocesses p
--left outer join msdb.dbo.sysjobs j on substring(p.program_name,32,32) = substring(master.dbo.fn_varbintohexstr(j.job_id),3,100)
left outer join msdb.dbo.sysjobs j on master.dbo.fn_varbintohexstr(j.job_id) = substring(p.program_name,30,34)
left outer join msdb.dbo.sysjobsteps js on j.job_id = js.job_id and js.step_id = substring( p.program_name, 72, len(p.program_name)-72 )
where
p.spid >= 50
and p.status <> 'sleeping'
and p.spid <> @@spid
Per:
http://www.sqlservercentral.com/Forums/Topic233404-110-1.aspx#bm829591
http://www.sqlservercentral.com/Forums/Topic829628-8-1.aspx#bm829636
Viewing 13 posts - 1 through 12 (of 12 total)
You must be logged in to reply to this topic. Login to reply