Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Да разгледаме следния сценарий:

  • Свързан сървър е конфигуриран между локалния сървър и отдалечен сървър, че имат екземпляри на Microsoft SQL Server 2012.

  • Локален сървър е конфигуриран чрез едно сравнение като подниз сравнение.

  • Отдалеченият сървър е обект, който е конфигуриран по различен сравнение от локален сървър, например главни сравнение.

  • Връзката се прави от Microsoft JDBC драйвер за SQL Server, Microsoft ODBC драйвер за SQL Server, SQL OLE DB доставчика или SQL Native Client локален сървър.

  • Драйверът се изпълнява Transact-SQL заявка за актуализация като подготвено изявление, което извиква sp_prepexec съхраняват процедура на локалния сървър.

  • Заявката актуализира на отдалечения сървър. Това включва колона обект, който използва различен сравнение от локален сървър.

В този случай можете да изпитате ниска скорост на изпълнението на заявката. Ако план за изпълнение на заявка за актуализиране, можете да видите, че дистанционно сканиране се извършва на таблицата на отдалечения сървър без филтриране. Следователно заявката може да изпълнява много чете сканира отдалечена таблица и след това извлича всички редове в локалния сървър.

Например заявката е готова на локален сървър, който е без сравнение по подразбиране и отдалеченият сървър е таблица В1 , който съдържа колона, която се препоръчва. Тя ще сканира всички редове на В1.
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

Причина

Проблемът възниква, защото готови актуализация заявката ще сканира отдалечена таблица при сравнение не отговаря на сървъра на сървъра.

Всеки нов сборна актуализация за SQL Server съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте най-новите сборни актуализации за SQL Server:


Информация за актуалната корекцияПоддържана актуална корекция се предлага от Microsoft. Тази актуална корекция обаче е предназначена да коригира само проблема, описан в тази статия. Прилагайте тази корекция само към системи, изпитващи този конкретен проблем.

Ако актуалната корекция е налична за изтегляне, има секция "Налично изтегляне предлага" в горната част на тази статия от базата знания. Ако тази секция не се появи, изпратете заявка за обслужване на клиенти на Microsoft и поддръжка, за да получите актуалната корекция.

Забележка: Ако възникнат допълнителни проблеми или проблеми, трябва да създадете отделна заявка за поддръжка. Обичайните такси за поддръжката ще важат за допълнителни въпроси и проблеми, които не спадат към конкретната актуална корекция. За пълен списък на телефонните номера на Microsoft за обслужване на клиенти и поддръжка или да създадете отделна заявка за поддръжка посетете следния уеб сайт на Microsoft:

http://support.microsoft.com/contactus/?ws=supportЗабележка: Формулярът "Налична актуална корекция изтегляне" показва езиците, за които е налична актуалната корекция. Ако не виждате вашия език, това е защото актуалната корекция не е налична за този език.

Необходими условия:За да приложите тази актуална корекция, трябва да имате SQL Server 2012 инсталиран.

Информация за системния регистърНе трябва да промените системния регистър, след като приложите тази актуална корекция.

Информация за заместване на актуалната корекцияТази актуална корекция не замества други спешни корекции.


Статус

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".

Заобикаляне на проблема

За да има много проблема, използвайте някой от следните методи:

  • Не използвайте готови отчети в програмният код на клиентски приложения. Можете да използвате специална отчети или изискуеми отчети-съхранени процедури вместо това, ако драйверът поддържа тези връзки.

  • Използвайте съвпадение сравнение на двете сървъри.

Допълнителна информация

За да разрешите флаг за проследяване, добавете стартиране параметър -T4199 или DBCC TRACEON(4199,-1) преди подготвен израз е съставен, за да разрешите.

Можете да използвате един от следните методи, за да разрешите флаг за проследяване:

  • Преди да стартирате SQL Server, използвайте Microsoft SQL Server Configuration Manager, с десния бутон върху екземпляр на засегнатите и добавите параметъра за стартиране на -T4199 така, че той продължава в се рестартира и всички връзки с екземпляра в бъдеще.

  • Динамично разрешите настройката по време на изпълнение, след като се стартира услугата и глобално за всички връзки "(-1)." Не забравяйте да освободите кеша на процедура, ако планирате да направите тестване с ключа включено или изключено.

    Използвайте следните, за да разрешите настройката глобално и динамично:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Използвайте следните да забраните настройката глобално и динамично:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×