Tagi na forum.

Windows 14205 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

tempdb is full - jak diagnozować?

robert_niestroj 2011-04-06 09:52:35
0
avatar
 
 
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ć.--


rokub  2011-04-06 12:29:31 #1
0
avatar
 
 
dla 2000
 



[Kod]
use tempdb
go
dbcc showfilestats






lub



[Kod]
dbcc sqlperf(logspace)
--patrz tempdb





lub



[Kod]
SELECT * FROM master.dbo.sysperfinfo
WHERE object_name ='SQLServer:Databases'
AND instance_name ='tempdb'





opis cntr_type i interpretacje wyników masz tu  http://sqlgeek.pl/2011/04/04/pl-sql-server-dla-dba-sys-dm_os_performance_counters/ 
 
dla 2005 dochodzi ci
 



[Kod]
SELECT
SUM (user_object_reserved_page_count)*8 AS user_objects_kb,
SUM (internal_object_reserved_page_count)*8 AS internal_objects_kb,
SUM (version_store_reserved_page_count)*8 AS version_store_kb,
SUM (unallocated_extent_page_count)*8 AS freespace_kb
FROM sys.dm_db_file_space_usage
WHERE database_id = 2;






i zmienia się sysperfinfo na



[Kod]
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name ='SQLServer:Databases'
AND instance_name ='tempdb'





jeżeli to administrator to i tak może mu być najłatwuiej wyklikać perfmon----------------------
pozdrawiam
http://rkubalski.blogspot.com

--------------------

pozdrawiam

http://rkubalski.blogspot.com

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony