Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Domyślnie dodatku Service Pack 1 dla programu SQL Server 2014 i dodatku Service Pack 3 dla programu SQL Server 2012 zawierają tę poprawkę i nie trzeba dodawać żadnych flag śledzenia, aby włączyć tę poprawkę. Aby włączyć tę poprawkę po zainstalowaniu jednego z aktualizacji zbiorczej w sekcji rozwiązanie, należy uruchomić program Microsoft SQL Server przez dodanie flagi śledzenia 1236 parametry startowe.

Objawy

Załóżmy, że uruchomić wystąpienie 2014 Microsoft SQL Server, programu SQL Server 2012, program SQL Server 2008 lub SQL Server 2008 R2 na komputerze, który zawiera wiele procesorów. Gdy liczba blokad (typ zasobu = bazy danych) dla konkretnej bazy danych przekracza określony próg, występują następujące problemy z wydajnością:

  • Podwyższone wartości występują dla licznika spinlock LOCK_HASH .

    Uwaga Zobacz sekcję "Więcej informacji", aby uzyskać informacje dotyczące monitorowania tego spinlock.

  • Kwerendy lub operacji, które wymagają blokad bazy danych zająć dużo czasu do uzupełnienia. Na przykład można zaobserwować następujące opóźnienia wydajności:

    • Logowania do programu SQL Server

    • Kwerendy serwera połączonego

    • sp_reset_connection

    • Transakcje

Uwaga: Aby zlokalizować na liście blokad (typ zasobu = bazy danych) na danej bazy danych, zobacz sekcję "Więcej informacji". Wartość progowa zależy od środowiska.

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 poprawce
Obsł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 Dodatkowych problemów lub konieczności rozwiązania problemu, być może trzeba utworzyć osobne zlecenie usługi. Koszty obsługi zwykłych zastosuje się 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.

Stan

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

Więcej informacji

Gdy aplikacja nawiązuje połączenie z SQL Server, najpierw ustanawia kontekstu bazy danych. Domyślnie połączenie próbuje uzyskać blokady bazy danych w trybie SH. Blokada Bazy danych SH ukaże się po zatrzymaniu połączenia lub kontekstu bazy danych został zmieniony w czasie istnienia połączenia. Jeśli masz wiele aktywnych połączeń, które sam kontekstu bazy danych może mieć wiele blokad typu zasobu bazy danych dla określonej bazy danych.

Na komputerze, który ma 16 lub więcej procesorów tylko obiekty tabeli korzystają ze schematu blokada podzielonym na partycje. Jednakże nie są odseparowane blokad bazy danych. W związku z tym tym większy blokuje numer bazy danych, tym dłużej będzie trwało dla programu SQL Server uzyskać blokadę bazy danych. Większość aplikacji nie będą występować problemy, które są spowodowane przez ten projekt. Ale tak szybko, jak liczba przekroczy określony próg, dodatkowa praca i czas jest wymagane do uzyskania blokady. Mimo, że koszt jest tylko micro sekund dla każdej dodatkowej blokady, aby szybko zwiększyć całkowity czas ponieważ blokada Wiadra mieszania są chronione przy użyciu spinlock. To powoduje, że dodatkowe cykle Procesora i czeka na dodatkowych pracowników do uzyskania blokady.

Ta poprawka wprowadza partycjonowanie blokada bazy danych po włączeniu flagi śledzenia T1236 podczas uruchamiania systemu. Partycjonowanie blokada bazy danych utrzymuje głębokość listy blokady w zarządzaniu w każdej partycji lokalnych. To znacznie optymalizuje ścieżki dostępu, który jest używany do uzyskania blokada bazy danych .

Aby monitorować LOCK_HASH spinlock, można użyć następującej kwerendy.SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,
[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)
DECLARE @counter int = 1
WHILE @counter < 100
BEGIN
INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH'
WAITFOR DELAY '00:00:05'
SET @counter +=1
END
SELECT * FROM #spinlock_stats ORDER BY [CaptureTime]
DROP TABLE #spinlock_stats
Aby uzyskać więcej informacji dotyczących diagnostyki i usuwania spinlock Rywalizacja w programie SQL Server przejdź do następujących dokumentów:

Diagnozowanie i rozwiązywanie Spinlock Rywalizacja w programie SQL ServerUwaga: Chociaż ten dokument został napisany dla programu SQL Server 2008 R2, informacje są nadal stosowane do programu SQL Server 2012.

Powiązane artykuły

Aby uzyskać więcej informacji na temat flagi śledzenia programu SQL Server 2012 przejdź do następującej witryny sieci Web TechNet:

Informacje na temat flagi śledzenia programu SQL Server 2012
Aby uzyskać więcej informacji o tym, jak znaleźć liczbę blokad bazy danych w polu użytkownika na bazie danych należy użyć następującej kwerendy do obliczenia tej wartości:select Resource_database_id, resource_type, request_mode, request_status, count (*) 'LockCount' from sys.dm_tran_locks
group by Resource_database_id, resource_type, request_mode, request_status


Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×