• along the same line....try using this script to tell your most expensive users for the past minute. It will review the processes and tell you who is using the most CPU over the past minute.

    create procedure [dbo].[cspWhoCPU]

    as

    Select d.name as 'DatabaseName', spid, p.status, cmd,

    p.loginame, nt_username, hostname, program_name,

    cpu, physical_io, memusage, blocked

    into ##FirstLook

    from master.sys.sysprocesses p (nolock)

    join master.sys.sysdatabases d (nolock)

    on p.dbid = d.dbid

    order by D.name, nt_username

    waitfor delay '00:01:00'

    Select d.name as 'DatabaseName', spid, p.status, cmd,

    p.loginame, nt_username, hostname, program_name,

    cpu, physical_io, memusage, blocked

    into ##SecondLook

    from master.sys.sysprocesses p (nolock)

    join master.sys.sysdatabases d (nolock)

    on p.dbid = d.dbid

    order by D.name, nt_username

    Selectb.DatabaseName, b.spid, b.status, b.loginame,

    b.nt_UserName, b.hostName, b.Program_name, b.spid,

    B.cpu - isnull(A.cpu,0) as MinuteCPU,

    b.cpu as TotCPU,

    b.Physical_io - isnull(a.physical_io,0) as MinuteIO,

    b.physical_IO as totIO,

    b.memusage - isnull(a.memusage,0) as MinuteMem,

    b.memusage as TotMem, b.blocked as BlkBy

    from ##firstLook a

    right outer join ##secondLook b

    on a.spid = b.spid

    and a.databasename = b.databaseName

    and a.loginame = b.loginame

    order by 9 desc,11 desc,13 desc

    --select * from ##firstLook

    --select * from ##secondLook

    drop table ##firstLook

    drop table ##SecondLook