Ho una strana situazione. Usando sp_whoisactive
posso vedere questo:
Ok, con questa query, posso vedere cosa sta scatenando (questa parola esiste in inglese?):
SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text
FROM sys.dm_exec_cursors (SPID) c --0 for all cursors running
CROSS APPLY sys.dm_exec_sql_text (c.sql_handle) t
il risultato:
è un semplice select
. Perché sta usando f etch_cursor
?
Inoltre, vedo molti sql_texts "vuoti". Questo ha qualcosa con questo "cursore"?
DBCC INPUTBUFFER (spid)
mi mostra questo:
c'è questa domanda qui (fatta da me) ma non so se questa è la stessa cosa.
Edit1:
Utilizzando la query fornita da kin, vedo questo:
EDIT2:
Utilizzando Activity Monitor, posso vedere questo:
È la query più costosa (la prima è intenzionale, lo sappiamo).
E ancora, vorrei sapere, perché questa select * from...
è la ragione di FETCH CURSOR
...
Edit3:
Questo " select * from
..." è in esecuzione da un altro server (via linked server
).
Bene, ora ho problemi a capire cosa ha detto @kin.
Questo è il execution plan
della query (in esecuzione nello stesso server del database):
questo è ora, il piano di esecuzione, in esecuzione nell'altro server, tramite server collegato:
Ok, non è un problema. E adesso! il piano di esecuzione, tramite **activity monitor**
(lo stesso select * from
):