Witam,
jeden z klientów mający SQL 2000 ma problem: podczas eksportu danych z SQL Server w aplikacji napisanej w Delphi 7 i korzystającej z BDE wyskakuje mu błąd "tempdb is full". Czytałem o tym na:
http://sqlserver2000.databases.aspfaq.com/why-is-tempdb-full-and-how-can-i-prevent-this-from-happening.html
http://technet.microsoft.com/en-us/library/cc966545.aspx
Eksport danych polega na wykonaniu zagnieżdżonego SELECTa który już jest podzielony na części:
sQuery := Format(''
+'SELECT TOP %1:d * FROM ('
+' SELECT TOP %2:d * '
+' FROM %0:s AS T1 '
+' ORDER BY %3:s) AS T2 '
+'ORDER BY %4:s',
[sTableName, iLimit, iCount-iOffset+1, sOrderFieldsDesc, sOrderFieldsAsc]);
Niestety to dzielenie na części w tym jednym przypadku też nie pomogło.
Proponowałem już adminnowi defragmentację indeksów zawerających pola po których jest robiony order by , zmiana ustawień autogrowth dla tempdb zgodnie z technetem. Na partycji na której jest tempdb jest 100GB wolnego miejsca, twierdzi admin
Pytanie: Czy jest w jakiś sposób możliwe monitorowanie przyrostu i użycia miejsca dyskowego tempdb ewentualnie dodatkowych danych na temat tempdb i zapisanie tego do pliku?
Ważne aby admin u klienta mógł to w miarę prosto uruchomić, wyniki zapisały się np. do jakiegoś TXT albo CSV abym mógł po naszej stronie to przeanalizować.--