Impact Of Processes Over Time By Looking At How Long They Run
Query
// Use Case: Identifying long-running processes with high resource utilization on a system for performance analysis and optimization.
Process
| project ProcessName, StartDateTime, ElapsedTimeInMinutes = ElapsedTimeMilliseconds / 60000, ThreadCount, HandleCount
| where ElapsedTimeInMinutes > 0 // Ensuring we only look at processes that have a reported elapsed time
| order by ElapsedTimeInMinutes desc, ThreadCount desc, HandleCount descExplanation
This query is designed to help identify processes on a system that have been running for a long time and are using a lot of resources. Here's a simple breakdown of what it does:
-
Selects Information: It looks at processes and selects specific details about them, including their name, when they started, how long they've been running (in minutes), and how many threads and handles they are using.
-
Calculates Elapsed Time: It converts the elapsed time from milliseconds to minutes for easier understanding.
-
Filters Processes: It only considers processes that have been running for some time (more than 0 minutes).
-
Orders Results: It sorts the processes, showing the ones that have been running the longest first. If two processes have been running for the same amount of time, it further sorts them by the number of threads and handles they are using, in descending order.
Overall, this query helps in identifying which processes might be impacting system performance due to their long runtime and high resource usage.
Details

Ugur Koc
Released: December 13, 2024
Tables
Keywords
Operators