Prettylib-tuoteratkaisut - Wiki

Tempdb-tietokannan ongelmien selvittäminen

Mikäli olet kohdannut jonkin seuraavista virheilmoituksista:

  • 3958 : Transaction aborted when accessing versioned row in table 'dbo.xxxxxx' in database 'xxxxxx'. Requested versioned row was not found. Your tempdb is probably out of space.

Kannattaa selvitää SQL Serverin tempdb-tietokannan tilaa seuraavilla komennoilla. Ota yhteyttä ohjelmiston tuotetukeen, kun olet suorittanut nämä kyselyt ja ottanut ylös vastaukset kyselyihin:


1. Tempdb-tietokannan tiedostojen viemä tila:

SELECT SUM(size)*1.0/128 AS [size in MB]
FROM tempdb.sys.database_files



2. tempdb-tietokannan tyhjän tilan selvittäminen:

SELECT SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;



3. tempdb-kannan version storen käyttämä tila:

SELECT SUM(version_store_reserved_page_count) AS [version store pages used],
(SUM(version_store_reserved_page_count)*1.0/128) AS [version store space in MB]
FROM sys.dm_db_file_space_usage;



4. Pisimpään käynnissä ollut transactio:

SELECT transaction_id
FROM sys.dm_tran_active_snapshot_database_transactions
ORDER BY elapsed_time_seconds DESC;



5. Tempdb-kannan sisäisten objektien viemä tila:

SELECT SUM(internal_object_reserved_page_count) AS [internal object pages used],
(SUM(internal_object_reserved_page_count)*1.0/128) AS [internal object space in MB]
FROM sys.dm_db_file_space_usage;



6. Tempdb-tietokannassa käyttäjän objektien viemä tila:

SELECT SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;



Lisätietoja Microsoftin artikkelista: https://technet.microsoft.com/en-us/library/ms176029%28v=sql.105%29.aspx