Poprawka: Niska wydajność w programie SQL Server podczas tworzenia indeksu na typu dane przestrzenne w dużej tabeli w wystąpieniu programu SQL Server 2012 lub 2014 serwera SQL

Nr błędu: 194032 (Obsługa zawartości) programu VSTS: 1484606

Objawy

Podczas tworzenia indeksu (za pomocą instrukcji CREATE INDEX lub ALTER INDEX) na typu dane przestrzenne w dużej tabeli w 2014 r. programu SQL Server lub Microsoft SQL Server 2012, rywalizacji jest wysoka na CMEMTHREAD typu oczekiwania i wydajność programu SQL Server zmniejszy się.

Rozwiązanie

Ten problem został po raz pierwszy rozwiązany w następujących aktualizacji zbiorczej programu SQL Server.

Zbiorcza aktualizacja 1 dla programu SQL Server 2014/en-us/help/2931693

7 aktualizację zbiorczą dla programu SQL Server 2012 z dodatkiem SP1/en-us/help/2894115

Każda nowa aktualizacja zbiorcza dla programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzedniej zbiorczej aktualizacji. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:


Informacje o pakiecie aktualizacji poprawkiObsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę.

Jeśli poprawka jest dostępna do pobrania, pojawi się sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma tej sekcji, należy przesłać żądanie do centrum obsługi klienta firmy Microsoft i obsługi technicznej w celu uzyskania poprawki.

Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów działu obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:

http://support.microsoft.com/contactus/?ws=supportUwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których dostępna jest poprawka. Jeśli odpowiedni język nie jest widoczny, to dlatego, że poprawka nie jest dostępna dla danego języka.

Więcej informacji

CMEMTHREAD typu oczekiwania wskazuje czas oczekiwania na obiekty pamięci wewnętrznej, wątków. Wyższe poziomy równoległości prostych kwerend może wywołać oczekiwania, która prowadzi do zmniejszenia wydajności działań przestrzennych.

Ta poprawka partycje CMEMTHREAD kojarzy z "Obiekt przestrzenny pamięci" za pomocą partycjonowanie węźle NUMA . Zmniejsza współbieżność aktywność pracownika do liczby aktywnych w jednym węźle pracownikom. Dla systemów z wyższym poziomem pracownikom na węzeł śledzenia Flaga – T8048 może służyć do dalszego partycji pamięci wszystkich obiektów, które pozwalają na partycjonowanie przez harmonogram. Użyj flagi śledzenia ostrożnie, małą ilością pamięci to wprowadza obciążenie dla wszystkich obiektów pamięci na partycje węzeł NUMA .

Uwaga: Obiekt pamięci przestrzennej jest tworzony, gdy SqlServerSpatial110.dll jest ładowany do przestrzeni adresowej procesu programu SQL Server. W większości warunków Aby zastosować efekty flagi śledzenia wymaga ponownego uruchomienia procesu serwera SQL.

CMEMTHREAD typu oczekiwania jest zwiększany dla dowolnego wątku bezpieczne pamięci obiektu oczekiwania, nie tylko obiekt przestrzenny. Następujące XEvent sesji definicji i używania symboli publicznych może służyć do identyfikowania wiersza określonego kodu, który generuje twierdzeń :CREATE EVENT SESSION wait_stacksON SERVER
ADD EVENT sqlos.wait_info
(
action(package0.callstack)
where opcode = 1 -- wait completed
and wait_type = 191 -- CMEMTHREAD
)
add target package0.asynchronous_bucketizer (SET source_type = 1, source = 'package0.callstack'),
add target package0.ring_buffer (SET max_memory = 4096)
With (MAX_DISPATCH_LATENCY = 1 SECONDS)
Go
alter event session wait_stacks on server state = start
go

Run the repro

select event_session_address, target_name, execution_count, cast (target_data as XML)
from sys.dm_xe_session_targets xst
inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address)
where xs.name = 'wait_stacks'
go

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Author: rdorr; jannaw
Writer: v-shysun
Weryfikacja tech.: rdorr; brellwei; ajayj; jannaw; sqlprev
Editor:

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×