When I queried sysprocesses to see what the spid was doing, it had FT BATCH CMPLETE in the cmd column. Does anyone know what this command is?
It is related to Full text catalog.
You can find out more info using sys.dm_fts_outstanding_batches
e.g. from Pro Full-Text Search 2008 book, Below will give you the Number of Full-Text Index Population Batches in progress
SELECT
OBJECT_NAME(ob.table_id) AS table_name,
fc.name AS catalog_name,
COUNT(*) AS outstanding_batches
FROM sys.dm_fts_outstanding_batches ob
INNER JOIN sys.fulltext_catalogs fc
ON ob.catalog_id = fc.fulltext_catalog_id
INNER JOIN sys.databases d
ON ob.database_id = d.database_id
GROUP BY
ob.table_id,
fc.name;
Also, you can use sys.dm_fts_index_population
to get details about full-text index populations currently in progress.
I can't figure out what the process is doing, even tracing it comes up with nothing.
You can use Adam Machanic's - sp_WhoIsActive to get a more detailed view.
As a side note, sysprocesses
is deprecated and is not accurate as per KB - Information on CPU and Physical_io Columns of Sysprocesses
sysprocesses.cpu is accurate but only updated at certain points. For lengthy operations that do not return any data to the client, it may not be updated for long intervals of time. Some of these operations may include DBCC CHECKDB, CREATE INDEX, database recovery, long-running joins, and so on. From a practical standpoint, it may often appear to be updated only at the end of each command.
If high CPU utilization is a frequent symptom on your server due to FullText, then highly suggest you to look into Improve the Performance of Full-Text Indexes
A good practice would be to baseline your server instance.