Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Simptome

Să luăm în considerare următorul scenariu:

  • Un server legat este configurat între un server local și un server la distanță că ambele au instanțe Microsoft SQL Server 2012.

  • Serverul local este configurat utilizând o asamblare, cum ar fi o asamblare.

  • Serverul la distanță are un obiect care este configurat în o asamblare diferită de la serverul local, cum ar fi sensibil la aranjare.

  • De la Microsoft JDBC driver pentru SQL Server, driverul Microsoft ODBC pentru SQL Server, SQL OLE DB provider sau SQL Native Client este realiza o conexiune la serverul local.

  • Driverul se execută o interogare de actualizare Transact-SQL ca o instrucțiune pregătită care apelează procedura sp_prepexec stocate pe serverul local.

  • Interogarea actualizează un tabel pe serverul la distanță. Aceasta include un obiect coloana care utilizează o asamblare diferită de la serverul local.

În acest scenariu, este posibil ca performanţa lentă de executare interogare. Dacă verificați în planul de executare de interogare de actualizare, este posibil să vedeți că se efectuează o scanare de la distanță tabelul de la serverul la distanță fără filtrare. De aceea, interogarea poate efectua multe citiri când se scanează tabelul de la distanță și apoi preia toate rândurile înapoi la serverul local.

De exemplu, interogarea este pregătit pe serverul local care are implicit aranjare și serverul la distanță are un tabel Depanarea 1 , care conține o coloană care sunt minuscule. Update va scana toate rândurile de Depanarea 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

Cauza

Această problemă apare deoarece interogarea pregătit update va scana tabelul de la distanță când asamblării nu corespunde pe ambele servere.

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Verifica cele mai recente actualizări cumulative pentru SQL Server:


Informații despre remedierea rapidăO remediere rapidă compatibilă este disponibilă de la Microsoft. Cu toate acestea, această remediere rapidă este destinată pentru a corecta doar problema descrisă în acest articol. Aplicați această remediere rapidă numai pentru sistemele care întâmpină această problemă anume.

Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcare remediere rapidă disponibilă" în partea de sus a acestui articol din baza de cunoștințe. Dacă nu apare această secţiune, trimite o solicitare de la serviciul pentru clienți Microsoft de asistență pentru a obţine remedierea rapidă.

Notă Dacă se produc probleme suplimentare sau este necesară depanarea, poate fi necesar să creați o solicitare de asistenţă separată. Costurile de obicei pentru suport se vor aplica pentru sprijin suplimentar, întrebări și probleme care nu sunt specifice pentru această remediere rapidă . Pentru o listă completă cu numerele de telefon ale clienților servicii și asistență Microsoft sau pentru a crea o solicitare de asistenţă separată, vizitați următorul site Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcare remediere rapidă disponibilă" afişează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs., înseamnă că o remediere rapidă nu este disponibilă pentru respectiva limbă.

Cerințe preliminarePentru a aplica această remediere rapidă, trebuie să aveţi SQL Server 2012 instalat.

Informații despre registryNu trebuie să modificați registry după aplicarea acestei remedieri rapide.

Informații despre înlocuirea remedierilor rapideAceastă remediere rapidă nu înlocuiește nicio altă remediere rapidă.


Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Soluție

Pentru a lucra abundă problema, utilizați una dintre următoarele metode:

  • Nu utilizați declarații pregătite în codul sursă de aplicația client. Puteţi utiliza ad-hoc declarații sau declarații apelabilă, cum ar fi proceduri stocate în schimb dacă driverul acceptă aceste interfețe.

  • Utilizați potrivit aranjare pe ambele servere.

Mai multe informații

Pentru a activa semnalizatorul de urmărire, adăugați parametrul de pornire -T4199 sau DBCC TRACEON(4199,-1) înainte instrucțiunea pregătit este compilat pentru a activa un comportament.

Utilizați una dintre următoarele metode pentru a activa semnalizatorul de urmărire:

  • Înainte de a porni SQL Server, utilizaţi Microsoft SQL Server Configuration Manager, faceți clic dreapta pe instanța afectate și adăugați parametrul de pornire -T4199 , astfel încât persistă peste reporneşte şi peste toate conexiunile la instanța în viitor.

  • Activați dinamic setarea la runtime după ce serviciul este pornit și global pentru toate conexiunile "(-1)." Asigurați-vă că liber memoria cache de procedură dacă plănuiți să facă testarea cu parametrul activat sau dezactivat.

    Utilizați următoarele pentru a activa setarea global și dinamic:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Utilizați următoarele pentru a dezactiva setarea global și dinamic:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×