Nota: anche questo post potrebbe essere utile:
Problemi con il file mdf TempDB in costante aumento
A meno che tu non riesca a capire quale processo sta usando quella tabella di lavoro (e puoi tranquillamente ucciderla), dovrei essere d'accordo con ciò che le tue ricerche hanno già prodotto: ciclo il server e dovresti essere in grado di ridurre tempdb.
Una domanda diversa si è occupata di capire questo per le tabelle #temp; Non so se può essere adattato per i tavoli di lavoro:
Trova quale sessione contiene quale tabella temporanea
Ne ho anche scritto un blog (di nuovo, per le tabelle #temp):
http://sqlperformance.com/2014/05/t-sql-queries/dude-who-owns-that-temp-table
Dubito che la tabella di lavoro sia correlata all'isolamento dello snapshot / archivio versioni, ma nel caso in cui:
Trova le transazioni che stanno riempiendo l'archivio versione
Inoltre, non fare affidamento DBCC OPENTRAN;
: ho osservato molti scenari in cui so di avere una transazione attiva ma non viene visualizzata lì. E nota che il contesto del database è importante; il database in cui è attiva la transazione non è necessariamente tempdb. cosa vedi qui? Nulla?
SELECT * FROM sys.dm_tran_active_transactions
WHERE name = N'worktable';
Dopo aver ristretto tempdb
Certo, questa non è una soluzione permanente. Ridurrai tempdb e poi crescerà di nuovo. Questo può diventare molto noioso e noioso per giocare a questo gioco ogni volta che succede. E se tornerà a crescere, cosa intendi fare con quello spazio libero nel frattempo? Affittalo e sfratti le persone quando ne ha bisogno di nuovo tempdb? È necessario:
- In primo luogo, correggi il processo che sta facendo crescere tempdb in modo anomalo.
- Assegna abbastanza spazio per tempdb in modo che non abbia bisogno di crescere e smetti di ridurlo (specialmente se solo temporaneamente; questo è solo un lavoro sprecato!).
Un paio di altri suggerimenti:
- Non utilizzare
SHRINKDATABASE
(che dovrebbe essere chiamato frammento automatico) o l'interfaccia utente. Scrivi SHRINKFILE
comandi specifici e mirati per influire sui singoli file.
- Considerare l'utilizzo di più file per tempdb (che è possibile distribuire in archivi diversi se / quando possibile) e considerare i flag di traccia 1117 (purché questo comportamento non influisca anche sui database degli utenti) e 1118.
- Alcuni suggerimenti su come ridurre al minimo l'utilizzo di tempdb qui: