KB4499423 - KORJAUS: Suorituskykyongelmia ja aikakatkaisuja voi ilmetä yhdistettäessä SQL Server 2017:ään

Ongelman ilmenemistapa

Oletetaan, että käytössäsi on SQL Server 2017 ja sinulla on useita SQL Server -integrointipalvelut (SSIS) -paketteja, saatat huomata, että SSIS- tai Power BI -raportit epäonnistuvat satunnaisesti seuraavilla yhteyden aikakatkaisuvirheillä:

"_Main_XXXXX:Error: SSIS-virhekoodi DTS_E_OLEDBERROR. On tapahtunut OLE DB -virhe. Virhekoodi: 0x80004005."

OLE DB -tietue on käytettävissä. Lähde: Microsoft SQL Server Native Client 11.0 Hresult: 0x80004005 Kuvaus: "Sisäänkirjautumisen aikakatkaisu on vanhentunut".

OLE DB -tietue on käytettävissä. Lähde: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Kuvaus: "Kirjautumisprosessia ei voitu suorittaa loppuun kirjautumisvastauksen viiveen vuoksi".

OLE DB -tietue on käytettävissä. Lähde: Microsoft SQL Server Native Client 11.0 Hresult: 0x80004005 Kuvaus: TCP-palvelu: Aikakatkaisuvirhe [258]. "."

Muussa tapauksessa ongelma ei rajoitu vain SSIS- tai Power BI -raportteihin. Minkä tahansa sovelluksen kohdalla voi esiintyä suorituskykyongelmia ja aikakatkaisuja muodostettaessa yhteyttä SQL Server.

Tämä korjaus esittelee sys.dm_os_buffer_descriptors DMV:ssä kaksi uutta saraketta, error_code ja op_history. Error_code sarake sisältää virhetiedot, kun kyseinen puskuri on täytetty edellisen kerran. Op_history sarake esittää puskurin toimintahistorian bittimuodossa (4 bittiä toimintoa kohden, yhteensä 16 toimintoa, viimeiset 4 bittiä edustavat viimeisintä toimintoa ja vasemmalle siirtymistä ajan myötä).

Huomautus Tämä korjaus ei ratkaise mitään tiettyjä virheitä, joita näet puskurisivuja täytettäessä. Se ainoastaan paljastaa tietoja virhekoodeista ja puskureissa suoritetuista toiminnoista, jotta lisävianmäärityksiä voidaan tehdä uusien tietojen avulla.

Perimmäinen syy

Aikakatkaisuun ja suorituskykyyn liittyvät ongelmat ovat yleisiä, ja niillä voi olla useita perimmäisiä syitä. Tässä nimenomaisessa tapauksessa havaitaan useita virheitä ja uudelleenyrityksiä, kun datasivuja yritetään lukea datatiedostoista ja täyttää muistipuskureita (tietosivujen muistiesitystapa). Puskuripopulaation virheiden perimmäiseksi syyksi ei tunnisteta selvästi taustalla olevia virhekoodeja, kun puskureita yritetään täyttää.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Ratkaisu

Tämä ongelma on korjattu seuraavassa SQL Server kumulatiivisessa päivityksessä:

Tietoja SQL Server:n kumulatiivisista päivityksistä:

Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:

Viitteet

Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.