Lots of "FETCH API_CURSOR0000..." on sp_WhoIsActive ( SQL Server 2008 R2 )
It's a simple select. Why is this using fetch_cursor?
The SELECT
is system-generated by the Distributed Query framework, and is associated with the UPDATE
you found.
The Remote Update query plan operator uses the sp_cursor
model to fetch rows from the remote data source. This is the cause of all the cursor API calls.
I believe the cursor plan you show in your question is the internal cursor opened by the engine as part of this process, but I have not had time to try to reproduce this yet.