Transazioni molto alte al secondo


8

Il nostro server di produzione esegue in media 4.000 transazioni al secondo. Negli ultimi giorni la media è passata a 175.000 transazioni al secondo. Non è un refuso, è 175K al secondo.
Guardando i DMV per le transazioni, non possiamo collegarlo direttamente alle sessioni utente, ma vediamo questo:

SELECT NAME,
       COUNT(*)
FROM   sys.dm_tran_active_transactions
GROUP  BY NAME
ORDER  BY 2 DESC 

-

+------------------------------+-------+
|             Name             | Count |
+------------------------------+-------+
| WorkFileGroup_fake_worktable |   627 |
| LobStorageProviderSession    |   217 |
| workfile                     |   171 |
+------------------------------+-------+

Qualcuno può fare luce su questo tipo di transazioni? O sto inseguendo i fantasmi qui?


Forse puoi profilare il server eseguendo sp_whoisactive ripetutamente. Quali domande sorgono più spesso?
usr

Probabilmente non è chiaro ma nel testo originale, ho affermato che non vi è alcuna correlazione tra i processi utente e le transazioni. Normalmente abbiamo circa 4000 utenti connessi e in un dato momento, tra 40-60 di essi sono spide eseguibili. Durante questo periodo di transazione gonfiato, c'erano ancora 40-60 spide eseguibili - nessuna differenza.
paulbarbin,

Aggiornamento: tps è tornato al suo valore normale e non vediamo alcun motivo reale per ciò che accade. L'unica cosa che ha senso è che avevamo una query del server collegato in esecuzione in cui sembrava che l'intera tabella fosse trascinata attraverso il filo nel tempdb. Quel processo stava impiegando molto più tempo del solito. È possibile che il tps venisse conteggiato come 1 riga nella tabella = 1 transazione ?? La tabella contiene 50K righe e viene eseguita ad hoc dagli utenti, quindi viene chiamata 3 volte al secondo e POTREBBE sommarsi ma non sembra probabile.
paulbarbin,

2
Se fosse il mio server, eseguirò una rapida traccia sul lato server. Forse solo una traccia di 5 minuti per vedere se c'è qualche possibilità che il conteggio dei tps sia falso. Avrei sicuramente sp_whoisactive di spam per osservare anche le query in volo.
Peter,

Risposte:


1

Guarda di nuovo per l'alta attività; quando lo vedi, avvia una traccia lato server o, se necessario, usa brevemente Profiler per vedere cosa sta succedendo.

In alternativa, utilizzare uno sniffer di pacchetti come Wireshark per acquisire l'attività del filo grezzo.

Controlla dm_exec_cached_plans per vedere se questo dà un'idea di cosa sta succedendo.

Guarda dm_io_virtual_file_stats per vedere quali file, in particolare, vengono colpiti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.