2

I was trying to figure out what was causing high cpu usage in our sql server and found two processes that were consuming high CPU. 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? Nothing came up when I looked at the sql_handle.

Is it related to full text? I can't figure out what the process is doing, even tracing it comes up with nothing. Seems like the process is just idle but yet it has high CPU usage. We are using SQL Server 2012 SP1 on Windows 2012 R2.

Thanks!

1 Answer 1

2

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.

1
  • Thank you, this is really helpful. Is there anyone to stop this process from running? It looks line it's not a user process so it can't be killed?
    – kaitlyn
    Jul 30, 2014 at 14:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.