Labojums: Lēnu veiktspēju saistītu SQL Server 2012 serverī atjauninot datus kopā ar citu salīdzināšanas attālā servera

KĻŪDAS numurs: 190237 (satura uzturēšana) VSTS: 1427743

Pazīmes

Apsveriet šādu situāciju:

  • Saistīts serveris ir konfigurēts lokālais serveris un attālā servera gan ir Microsoft SQL Server 2012 gadījumus.

  • Lokālais serveris ir konfigurēts, izmantojot vienu salīdzināšana, piemēram, reģistrjutīga salīdzināšana.

  • Attālais serveris ir objektu, kas ir konfigurēts citu salīdzināšanas no lokālais serveris, piemēram, reģistrjutīgs salīdzināšana.

  • Tiek izveidots savienojums no Microsoft JDBC draivera SQL Server, SQL Server, SQL OLE DB nodrošinātājs vai SQL Native Client Microsoft ODBC draiveri lokālajā serverī.

  • Draiveri izpilda Transact-SQL atjaunināšanas vaicājumu kā sagatavots paziņojums, kas izsauc procedūru sp_prepexec saglabāts lokālajā serverī.

  • Vaicājumu tabula attālā servera atjauninājumus. Tas ietver kolonnu objekts, kas izmanto citu salīdzināšanas no lokālā servera.

Šādā gadījumā iespējama lēna veiktspēja vaicājuma izpilde. Atzīmējot atjaunināšanas vaicājumu izpildes plāns, tiek parādīts attālā pārbaude tiek veikta no attālā servera tabulu bez filtrēšanas. Tādēļ vaicājumu var veikt daudz lasa pārbauda attālā tabulas un pēc tam iegūst visas rindas uz lokālo serveri.

Piemēram, vaicājums ir gatava lokālajā serverī, kurā ir reģistrjutīga noklusējuma salīdzināšana un attālā servera ir tabulā T1 , kas ietver kolonnu, kurai ir reģistrjutīgs. Atjaunināšana skenēs T1visas rindas.
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

Cēlonis

Šī problēma rodas, jo gataviem atjaunināšanas vaicājums skenēs attālās tabulā ja salīdzināšanas neatbilst gan serveros.

Izšķirtspēja

Pēc šī labojumfaila lietošanas programma ir jāiespējo trasēšanas karodziņš 4199 uz lokālo serveri, kas vieso saistītie serveri. Kā iespējot traceflag, lūdzu, skatiet sadaļu papildu informāciju.

Piezīme. Šis labojumfails attiecas tikai ar lokālo serveri, kas vieso saistītie serveri un optimizē sagatavoti pārskati. Šis labojumfails netiek lietots attālais serveris.

Problēma pirmo reizi tika noteikts šo kumulatīvo atjauninājumu SQL Server.

Kumulatīvais atjauninājums 6 SP1 SQL Server 2012/en-us/help/2874879

Katra jaunā SQL Server kumulatīvais atjauninājums ietver visus labojumfailus un visus drošības labojumus, kas bija ietverti iepriekšējā kumulatīvajā atjauninājumā. Jaunākais kumulatīvo atjauninājumu skatiet SQL Server:


Informācija par labojumfailuKorporācija Microsoft piedāvā atbalstītu labojumfailu. Tomēr šis labojumfails ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lai lietotu šo labojumfailu tikai tām sistēmām, kurām ir radusies tieši šī problēma.

Ja labojumfails ir pieejams lejupielādei, sadaļa "Pieejama labojumfaila lejupielāde" ir pieejama šī zināšanu bāzes raksta augšpusē. Ja šādas sadaļas nav, pieprasiet, lai iegūtu labojumfailu Microsoft klientu apkalpošanas un atbalsta.

Piezīme. Ja rodas papildu problēmas vai nepieciešama problēmu novēršana, iespējams, būs jāizveido atsevišķs pakalpojuma pieprasījums. Parasti atbalsta izmaksas tiek piemērotas jautājumiem par papildu atbalstu un problēmām, kas neattiecas uz šo konkrēto labojumfailu. Lai iegūtu pilnīgu sarakstu ar Microsoft klientu apkalpošanas un atbalsta centra tālruņa numuru vai izveidotu atsevišķu pakalpojuma pieprasījumu, apmeklējiet šo Microsoft vietni:

http://support.microsoft.com/contactus/?ws=supportPiezīme. Veidlapā "Pieejama labojumfaila lejupielāde" norādītas valodas, kurām ir pieejams labojumfails. Ja tajā nav vajadzīgās valodas, tas nozīmē, ka šai valodai labojumfails nav pieejams.

PriekšnosacījumiLai lietotu šo labojumfailu, datorā jābūt instalētai instalēt SQL Server 2012.

Reģistra informācijaIzmaiņas nav jāveic reģistra pēc šī labojumfaila lietošanas.

Informācija par labojumfaila aizstāšanuŠis labojumfails neaizstāj nevienu citu labojumfailu.


SQL Server optimizators, lai veiktu attālo filtrēšanu, kad kur klauzula ir ievietots attālā servera minimizēt izgūts no attālā tabulas rindas izpildes plāns ļauj labojumfailu.

Statusa

Korporācija Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir minēti sadaļā "Attiecas uz".

Risinājums

Darbam ir daudz problēmu, izmantojiet kādu no šīm metodēm:

  • Nelietojiet sagatavoti pārskati klienta programmas avota kodu. Varat izmantot Ekspromta pārskati vai pieprasāmo paziņojumus, piemēram, saglabātās procedūras ja draiveris atbalsta šo interfeisu.

  • Izmantojiet atbilstošu salīdzināšanas gan serveros.

Papildinformācija

Iespējot trasēšanas karodziņš, pievienojiet startēšanas parametru -T4199 vai DBCC TRACEON(4199,-1) pirms iespējot darbība ir apkopoti sagatavots paziņojums.

Lai iespējotu trasēšanas karodziņš, varat izmantot vienu no šīm metodēm:

  • Pirms sākat SQL Server, lietojiet Microsoft SQL servera konfigurācijas pārvaldnieks, ar peles labo pogu noklikšķiniet uz attiecīgā instance un pievienojiet startēšanas parametru -T4199 , lai tas saglabājas tiek restartēts un visi savienojumi instances nākotnē.

  • Dinamiski iespējots iestatījums Runtime, kad tiek sākts pakalpojums un globāli visi savienojumi "(-1)." Pārliecinieties, vai ja domājat testēšana ar slēdzi izslēgts vai ieslēgts bez procedūras kešatmiņas.

    Izmantot šo iestatījumu Iespējot globāli un dinamiski:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Izmantot šo iestatījumu atspējot globāli un dinamiski:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Autors: jannaw; jasonh
Autors: v-shysun
Tehniskais redaktors: jasonh jayc; makohli; jannaw; sqlprev
Redaktors: v-mordew

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka jums varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta speciālistiem.

×