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

Objawy

Rozważ następujący scenariusz:

  • Serwer połączony jest skonfigurowane między serwera lokalnego i zdalnego serwera, że oba muszą wystąpienia programu Microsoft SQL Server 2012.

  • Lokalny serwer jest skonfigurowany przy użyciu jednego sortowanie, takich jak sortowanie bez uwzględniania wielkości liter.

  • Zdalny serwer ma obiekt, który jest skonfigurowany w różnych sortowanie z lokalnego serwera, takich jak sortowanie z uwzględnieniem wielkości liter.

  • Nawiązaniu połączenia ze sterownika JDBC firmy Microsoft dla programu SQL Server, sterownik Microsoft ODBC dla programu SQL Server, dostawcy SQL OLE DB lub SQL Native Client do serwera lokalnego.

  • Sterownik wykonuje zapytanie języka Transact-SQL update jako gotowa instrukcja, która wywołuje procedurę sp_prepexec przechowywane na lokalnym serwerze.

  • Kwerenda jest aktualizowana tabela na serwerze zdalnym. Obejmuje to obiekt kolumny, który używa różnych sortowanie z lokalnego serwera.

W tym scenariuszu może wystąpić niska wydajność wykonywania zapytania. Jeśli zaznaczysz plan wykonania kwerendy aktualizującej, możesz zobaczyć, że zdalne skanowanie jest wykonywane w tabeli, w serwerze zdalnym bez filtrowania. Kwerenda może wykonywać wiele odczytów, gdy skanuje tabeli zdalnej i następnie pobiera wszystkie wiersze do serwera lokalnego.

Na przykład kwerenda jest przygotowany na serwerze lokalnym, który ma sortowanie domyślne bez uwzględniania wielkości liter, a serwer zdalny ma tabeli T1 zawiera kolumnę, która jest uwzględniana wielkość liter. Aktualizacja skanuje wszystkie wiersze tabeli T1.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Przyczyna

Ten problem występuje, ponieważ kwerendy aktualizującej przygotowany skanuje tabeli zdalnej podczas sortowania nie pasuje na obu serwerach.

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 poprawceObsł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.

Wymagania wstępneAby zastosować tę poprawkę, musi mieć zainstalowany program SQL Server 2012.

Informacje dotyczące rejestruNie masz zmiany w rejestrze, po zastosowaniu tej poprawki.

Informacje dotyczące zastępowania poprawekTa poprawka nie zastępuje żadnych innych poprawek.


Stan

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

Obejście problemu

Do pracy mnożą problemu, skorzystaj z jednej z następujących metod:

  • Nie należy używać przygotowanych instrukcji w kodzie źródłowym aplikacji klienta. Służy sprawozdań ad hoc lub nieopłacona instrukcji, takie jak procedury przechowywane w zamian, gdy sterownik obsługuje tych interfejsów.

  • Użyj dopasowania sortowanie na obu serwerach.

Więcej informacji

Aby włączyć flagę śledzenia, należy dodać parametr uruchamiania -T4199 lub DBCC TRACEON(4199,-1) przed gotowa instrukcja jest skompilowany w celu umożliwienia zachowanie.

Aby włączyć flagę śledzenia, można użyć jednej z następujących metod:

  • Przed rozpoczęciem programu SQL Server, użyj Menedżer konfiguracji Microsoft SQL Server, kliknij prawym przyciskiem myszy wystąpienie usterce i dodać parametr uruchamiania -T4199 tak, że utrzymuje się po ponownym uruchomieniu i przez wszystkie połączenia do wystąpienia w przyszłości.

  • Dynamicznie Włącz ustawienie w czasie wykonywania, gdy usługa zostanie uruchomiona i globalnie dla wszystkich połączeń "(-1)." Pamiętaj zwolnić pamięć podręczna procedury, jeżeli masz zamiar zrobić testów z przełącznikiem włączony lub wyłączony.

    Aby włączyć ustawienie za pomocą następujących globalnie i dynamicznie:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Aby wyłączyć ustawienie za pomocą następujących globalnie i dynamicznie:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


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

×