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ć.

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 z dodatkiem Service Pack 1 (SP1) lub Microsoft SQL Server 2012 w jednym pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do 2008 wcześniejszego wydania aktualizacji z dodatkiem Service Pack 1 (SP1) lub Microsoft SQL Server 2012.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Na komputerze jest zainstalowane wystąpienie programu Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2012.

  • W wystąpieniu są wykonywane jednoczesne instrukcje podobne do następujących:

    CREATE PROC p AS RETURN (
    query
    ); EXEC p;

    Możesz też uruchomić zapytanie zawierające następujący kod:

    IF EXISTS(
    subquery
    );
  • Użycie procesora jest stale wysokie, a wątki pracy są w stanie runnable.

  • Rywalizacja o QUERY_EXEC_STATS SpinLock jest wysoka. Na przykład liczba obrotów, możliwe kolizje oraz wartości odwracania dla QUERY_EXEC_STATS spinlock szybko.Uwaga Aby uzyskać więcej informacji na temat monitorowania QUERY_EXEC_STATS spinlock, zobacz sekcję "więcej informacji".

W tym scenariuszu może wystąpić niska wydajność.

Przyczyna

Ten problem występuje, ponieważ program SQL Server 2008 R2 lub SQL Server 2012 tworzy i niszczy niektóre struktury pamięci na temat globalnych statystyk zamiast ich buforowania. Spowoduje to wąskie gardło wydajności.

Rozwiązanie

Informacje o aktualizacji zbiorczej

Program SQL Server 2012

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2012. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2679368 Pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2012Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2012. Firma Microsoft zaleca zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2692828 Kompilacje programu SQL Server 2012 wydane po wydaniu programu SQL Server 2012 Musisz zastosować poprawkę SQL Server 2012 do instalacji programu SQL Server 2012.

Pakiet aktualizacji zbiorczej 5 dla programu SQL Server 2008 R2 z dodatkiem SP1

Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 5. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2659694 Pakiet aktualizacji zbiorczej 5 dla programu SQL Server 2008 R2 z dodatkiem SP1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2 SP1. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

2567616 Kompilacje programu SQL Server 2008 R2 wydane po opublikowaniu programu SQL Server 2008 R2 SP1

Więcej informacji

Aby monitorować QUERY_EXEC_STATS spinlock, Dostosuj opóźnienie i liczbę iteracji stosownie do środowiska w poniższym kodzie, a następnie uruchom go:

SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10      BEGIN            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins

Stan

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

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ę!

×