Oprava: Používané prostor v růstu databáze tempdb průběžně při spuštění dotazu, který vytvoří vnitřní objekty v databázi tempdb v SQL Server 2005

Chyba č: 50002301 (SQL Hotfix)
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2005 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každá nová verze tedy obsahuje všechny opravy hotfix a verzí oprav všech oprav zabezpečení, které byly součástí předchozích SQL Server 2005.

Příznaky

V Microsoft SQL Server 2005 při spuštění dotazu, který vytvoří vnitřní objekty v databázi tempdb . Při spuštění dotazu mnohokrát využité místo v databázi tempdb zvyšuje nepřetržitě. Konečně zaplnění databáze tempdb . Kromě toho je nutné restartovat službu SQL Server vyčistit databázi tempdb .

Když nastane tento problém, můžete spusťte následující příkaz pro databázi tempdb mnohokrát.
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;

Pokud to provedete, zvyšuje hodnotu sloupce internal_object_reserved_page_count při každém spuštění tohoto příkazu.

Potom dotaz zobrazení dynamickou správu sys.dm_db_session_space_usage. Když toto provedete, zvyšuje hodnotu sloupce internal_objects_alloc_page_count bez odpovídajícího zvýšení hodnoty sloupce internal_objects_dealloc_page_count.

Příčina

Při každém spuštění dotazu serveru SQL Server vytvoří vnitřní objekty v databázi tempdb . Za určitých podmínek SQL Server není navrátit stránky, které jsou přiděleny pro vnitřní objekty v databázi tempdb .

Řešení

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 6. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2005 Service Pack 2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
946608 kumulativní aktualizace 6 pro SQL Server 2005 Service Pack 2
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a verzí oprav všech oprav zabezpečení, které byly součástí předchozích SQL Server 2005. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
937137 SQL Server 2005 vytvoří, které byly vydány po vydání serveru SQL Server 2005 Service Pack 2
Opravy hotfix pro Microsoft SQL Server 2005 jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. Opravy hotfix serveru SQL Server 2005 Service Pack 2 musí použít k instalaci aplikace SQL Server 2005 Service Pack 2. Ve výchozím žádné opravy hotfix, která je poskytována v aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Další informace

Další informace o úplný seznam operací, které používají vnitřní objekty naleznete na následujících webech společnosti Microsoft:Chcete-li určit problematické relace ID (SPID), který přidělit stránek v databázi tempdb , můžete zkontrolovat přidělení cyklické vyrovnávací paměti. Chcete-li to provést, musíte nejprve povolit příznak trasování 1106. Ve výchozím nastavení není povolen příznak trasování 1106. Potom je nutné spustit následující příkaz, chcete-li zobrazit informace o přidělování a navracení zpět informace v databázi tempdb .
SELECT record.value('(Record/@id)[1]', 'int') AS record_id,
CONVERT (varchar, DATEADD (ms, -1 * ((inf.cpu_ticks / inf.cpu_ticks_in_ms) - [timestamp]), GETDATE()), 126) AS EventTime,
[timestamp] ,
record.value('(Record/@id)[1]', 'int') AS RingBuffer_Record_Id,
record.value('(Record/ALLOC/Event)[1]', 'int') AS AllocationEventType,
record.value('(Record/ALLOC/SpId)[1]', 'int') AS SpId,
record.value('(Record/ALLOC/EcId)[1]', 'int') AS EcId,
record.value('(Record/ALLOC/PageId)[1]', 'nvarchar(50)') AS AllocatedPageId,
record.value('(Record/ALLOC/AuId)[1]', 'nvarchar(50)') AS AllocationUnitId,
record.value('(Record/ALLOC/LsId)[1]', 'nvarchar(50)') AS LsId
FROM sys.dm_os_sys_info inf CROSS JOIN (
SELECT timestamp, CONVERT (xml, record) AS record
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_ALLOC_TRACE'
AND ( record LIKE '%<Event>23</Event>%' -- uniform extent allocation
OR record LIKE '%<Event>22</Event>%' -- uniform extent deallocation
OR record LIKE '%<Event>24</Event>%' -- mixed extent allocation
OR record LIKE '%<Event>25</Event>%' -- mixed extent deallocation
OR record LIKE '%<Event>10</Event>%' -- page allocation
OR record LIKE '%<Event>11</Event>%' -- page deallocation
)) AS t
ORDER BY record.value('(Record/@id)[1]', 'int') ASC

Tyto informace můžete porovnávat informace z SQL Server Profiler Chcete-li zjistit dotazy, které přidělit stránek a který není navrátit stránek v databázi tempdb .

Poznámka: Doporučujeme, nepoužívejte příznak trasování 1106 na provozních serverech, protože příznak trasování 1106 ovlivňuje výkon serveru SQL Server.

Další informace o jaké soubory byly změněny a informace o všechny požadavky nutné pro instalaci balíčku kumulativní aktualizace obsahující opravy hotfix popsané v tomto článku znalostní báze Microsoft Knowledge Base klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
946608 kumulativní aktualizace 6 pro SQL Server 2005 Service Pack 2

Odkazy

Další informace o seznamu sestavení, které jsou k dispozici po SQL Server Service Pack 2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
937137 SQL Server 2005 vytvoří, které byly vydány po vydání serveru SQL Server 2005 Service Pack 2
Další informace o přírůstkové Model servis pro SQL Server získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
935897 dílčí Model obsluhy je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže
Další informace o možnostech získání aktualizace SQL Server 2005 Service Pack 2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
913089 jak získat nejnovější aktualizaci service pack pro SQL Server 2005
Další informace o nových funkcích a vylepšeních v aktualizaci SQL Server 2005 Service Pack 2 naleznete na následujícím webu společnosti Microsoft:Další informace o schéma názvů pro aktualizace serveru SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499 nové schéma přidělování názvů pro Microsoft SQL Server software balíčky aktualizací.
Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Vlastnosti

ID článku: 947204 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor