Schweregrad 17 zeigt an, dass SQL Server keine erforderliche Ressource mehr hat. Dies wird normalerweise angezeigt, wenn in einer Datenbank nicht genügend Speicherplatz vorhanden ist. In diesem Fall scheint Tempdb zum Lesen festgeschriebener Snapshot-Isolationsversionszeilen für eine Abfrage verwendet zu werden, die auf Tempdb übertragen werden musste.
Dies kann durchaus vorkommen, wenn tempdb eine begrenzte maximale Größe hat und eine schlecht geschriebene Abfrage versucht wird, die beispielsweise einen sehr großen Cross-Join ausführt.
Mit dieser Abfrage können Sie die aktuelle Größe des Versionsspeichers in tempdb anzeigen:
SELECT *
FROM sys.dm_os_performance_counters dopc
WHERE dopc.counter_name LIKE 'Version %';
Technet hat einen interessanten Artikel zur Verwendung des Versionsspeichers unter https://technet.microsoft.com/en-us/library/cc966545.aspx#EDAA
Diese MSDN-Seite erwähnt den Fehler 3967:
Wenn tempdb nicht mehr über genügend Speicherplatz verfügt, erzwingt das Datenbankmodul, dass die Versionsspeicher verkleinert werden. Während des Verkleinerungsprozesses werden die am längsten laufenden Transaktionen, die noch keine Zeilenversionen generiert haben, als Opfer markiert. Für jede Opfertransaktion wird im Fehlerprotokoll eine Nachricht 3967 generiert. Wenn eine Transaktion als Opfer markiert ist, kann sie die Zeilenversionen im Versionsspeicher nicht mehr lesen. Wenn versucht wird, Zeilenversionen zu lesen, wird die Nachricht 3966 generiert und die Transaktion wird zurückgesetzt. Wenn der Verkleinerungsprozess erfolgreich ist, wird Speicherplatz in Tempdb verfügbar.
Keine der oben verlinkten Seiten enthält explizite Hinweise zur maximalen Größe des Versionsspeichers in Tempdb. Dies lässt mich glauben, dass die einzige Einschränkung die maximal konfigurierte Größe der Tempdb selbst ist, abzüglich des in Tempdb verwendeten Speicherplatzes andere Objekte.