Poprawka: Niska wydajność podczas wyzwalacz po na podzielonym na partycje tabeli programu SQL Server 2008 R2 lub SQL Server 2012

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 2606883 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Rozważ następujące scenariusze:
  • Utworzyć partycje dla tabeli, w Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2012.
  • Możesz utworzyć PO wyzwalacz wszelkich WSTAW lub USUŃ operacji, która jest wykonywana dla tabeli.
  • Możesz wykonać WSTAW lub USUŃ Operacja na tabeli.

W tym scenariuszu może wystąpić niska wydajność. Ponadto wiele logicznych odczytów może wystąpić, jeśli uruchomienie programu SQL Profiler.

Przyczyna

Ten problem występuje z następujących powodów:
  • Aparat magazynu utrzymuje wewnętrznie łańcucha pojedynczej wersji dla każdego sprawozdania.
  • Wykonanie kwerendy wyszukiwania partycje łańcucha całego wersji, aby znaleźć wiersze, które są wstawiane do jednej z partycji.

Rozwiązanie

Aby rozwiązać ten problem, należy zastosować następującą poprawkę, a następnie użyć flagi śledzenia T2470

Zbiorcza aktualizacja informacji

SQL Server 2012 Poprawkę dotyczącą tego problemu został opublikowany w zbiorczej aktualizacji 1 dla programu SQL Server 2012. Aby uzyskać więcej informacji na temat tego pakietu aktualizacji zbiorczej kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2679368 Zbiorczy pakiet aktualizacji 1 dla programu SQL Server 2012
Uwaga Ponieważ kompilacje kumulują się, każde nowe wydanie poprawka zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzednich 2012 serwera SQL naprawić wydania. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający 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 SQL Server 2012 tworzy wydane po wydaniu programu SQL Server 2012
Do instalacji programu SQL Server 2012, należy zastosować poprawkę programu SQL Server 2012.

Dodatek Service Pack 1 dla programu SQL Server 2008 R2

Zbiorcza aktualizacja informacji

Poprawka usuwająca ten problem został opublikowany w zbiorczej aktualizacji 3 dla dodatku Service Pack 1 dla programu SQL Server 2008 R2. Aby uzyskać więcej informacji na temat uzyskania tego pakietu aktualizacji zbiorczej, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2591748 Skumulowany pakiet aktualizacji 3 dla dodatku Service Pack 1 dla programu SQL Server 2008 R2
Uwaga Ponieważ kompilacje kumulują się, każde nowe wydanie poprawka zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały zawarte w poprzednich programu SQL Server 2008 R2 naprawić wydania. Zaleca się, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający 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 SQL Server 2008 R2 buduje, które zostały wydane po wydaniu dodatku Service Pack 1 dla programu SQL Server 2008 R2

Informacje o poprawce

Obsługiwana poprawka jest dostępna w firmie Microsoft. Jednak ta poprawka jest przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Tylko w systemach, w których występuje ten problem, należy zastosować tę poprawkę.

Jeśli poprawka jest dostępna do pobrania, istnieje sekcja "Poprawka dostępna do pobrania" na początku tego artykułu z bazy wiedzy Knowledge Base. Jeśli nie ma w tej sekcji, należy przedłożyć wniosek z działem pomocy technicznej firmy Microsoft w celu uzyskania poprawki.

Uwaga Wystąpienia dodatkowych błędów lub konieczności rozwiązania problemu, należy utworzyć osobne zlecenie usługi. Zwykle z pomocy technicznej będą pobierane dodatkowych pytań i problemów, które nie kwalifikują się do tej poprawki. Aby uzyskać pełną listę numerów telefonów z działem pomocy technicznej firmy Microsoft lub utworzyć osobne zlecenie usługi odwiedź następujące witryny firmy Microsoft:
http://support.microsoft.com/contactus/?ws=support
Uwaga "Poprawka dostępna do pobrania" zawiera listę języków, dla których poprawka jest dostępna. Jeśli język nie jest widoczny, jest to, ponieważ poprawka nie jest dostępna dla danego języka.

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) zainstalowane.

Wymaganie dotyczące ponownego uruchomienia

Nie trzeba ponownie uruchomić komputer po zastosowaniu tej poprawki.

Informacje dotyczące zastępowania poprawek

Ta poprawka zastępuje poprawki wydane wcześniej.

Informacje o pliku

Wersja globalna ma atrybuty pliku (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom są wymienione w skoordynowanego czasu uniwersalnego (UTC). Podczas wyświetlania informacji o pliku jest konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć Strefa czasowa Karta w Data i godzina element w Panelu sterowania.

Wszystkie obsługiwane x 86 wersje programu SQL Server 2008 R2 z dodatkiem SP1
Zwiń tę tabelęRozwiń tę tabelę
Nazwa plikuWersja plikuRozmiar plikuDataCzasPlatforma
Sqlservr.exe2009.100.2776.043,053,92015-Wrz-201101: 47x 86

Dla wszystkich obsługiwanych 64-bitowego zSQL Server 2008 R2 z dodatkiem SP1

Zwiń tę tabelęRozwiń tę tabelę
Nazwa plikuWersja plikuRozmiar plikuDataCzasPlatforma
Sqlservr.exe2009.100.2776.062,176,60815-Wrz-201100: 57x 64

Wszystkie obsługiwane wersjeopartym IA-64SQL Server 2008 R2 z dodatkiem SP1

Zwiń tę tabelęRozwiń tę tabelę
Nazwa plikuWersja plikuRozmiar plikuDataCzasPlatforma
Sqlservr.exe2009.100.2776.0122,105,69615-Wrz-201100: 23IA-64


Obejście problemu

Aby obejść ten problem, należy zmienić wyzwalacz po wyzwalacz Zamiast WSTAWIAĆ lub wyzwalacz Zamiast usuwać .

Na przykład uruchom następujące instrukcje, aby utworzyć wyzwalacz po :
CREATE TRIGGER TR_Test ON Test FOR INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED END GO
W takim przypadku zmiana wyzwalacza poZamiast WSTAWIAĆ za pomocą następujących instrukcji:
CREATE TRIGGER TR_Test ON Test INSTEAD OF INSERT AS BEGIN DECLARE @groupe INT SELECT TOP 1 @groupe=Groupe FROM INSERTED INSERT INTO Test (Groupe) SELECT @groupe FROM INSERTED END

Stan

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

Właściwości

Numer ID artykułu: 2606883 - Ostatnia weryfikacja: 16 kwietnia 2012 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2012 Developer
Słowa kluczowe: 
kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB2606883 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:2606883

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com