The CPU Time is no longer displayed as zero for a connection making heavy use of intra-query parallelism.
When a connection makes use of the intra-query parallelism feature, it spawns a number of internal child connections which do most of the work;
e.g., one INT: EXCHANGE child connection for each available processor.
SQL Anywhere tends to report the total CPU time used by all the child connections as the ApproximateCPUTime value for each child connection in use,
and almost none for the parent connection. This inflates the amount of CPU time used by each child connection without reporting any CPU usage
by the parent connection.
In an attempt to make sense of this behavior, Foxhound now calculates the average non-zero ApproximateCPUTime for the child connections
and reports it as as the CPU time for the parent connection.
The inflated values reported by SQL Anywhere for each child connection are still shown by Foxhound; only the parent connection CPU time is adjusted.
One consequence of this improvement is that AutoDrop #5 CPU Usage now works on parent connections using intra-query parallelism whereas before it did not.
Note that the AutoDrop process is never performed on a child connection or any other internal connection that isn't directly associated with a client application.