Symptomy
Załóżmy, że używasz programu SQL Server 2017 i masz wiele pakietów usług integracji SQL Server (SSIS), możesz zauważyć, że raporty SSIS lub raporty Power BI sporadycznie kończyły się niepowodzeniem z następującymi błędami limitu czasu połączenia:
"_Main_XXXXX:Error: kod błędu SSIS DTS_E_OLEDBERROR. Wystąpił błąd bazy danych OLE. Kod błędu: 0x80004005".
Dostępny jest rekord bazy danych OLE. Źródło: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Opis: "Limit czasu logowania wygasł".
Dostępny jest rekord bazy danych OLE. Źródło: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Opis: "Nie można ukończyć procesu logowania z powodu opóźnienia w odpowiedzi na logowanie".
Dostępny jest rekord bazy danych OLE. Źródło: "Microsoft SQL Server native client 11.0" Hresult: 0x80004005 Opis: "Dostawca TCP: błąd limitu czasu [258]. "."
W przeciwnym razie problem nie dotyczy tylko usług SSIS ani Power BI raportów. Każda aplikacja może mieć problemy z wydajnością i limity czasu podczas łączenia się z SQL Server.
Ta poprawka wprowadza dwie nowe kolumny, error_code i op_history w sys.dm_os_buffer_descriptors DMV. Error_code kolumna reprezentuje informacje o błędach podczas ostatniej próby wypełnienia danego buforu. Op_history kolumna reprezentuje historię operacyjną buforu w formacie bitowym (4 bity na operację, łącznie 16 operacji, ostatnie 4 bity reprezentują ostatnią operację i przesuwają się w lewo w miarę upływu czasu).
Uwaga 16. Ta poprawka nie usuwa żadnych konkretnych błędów wyświetlanych podczas wypełniania stron buforu. Udostępnia tylko informacje o kodach błędów i operacjach buforów, dzięki czemu można przeprowadzić dodatkowe rozwiązywanie problemów z nowymi informacjami.
Przyczynę
Limit czasu i problemy z wydajnością mają charakter ogólny i mogą mieć wiele podstawowych przyczyn. W tym konkretnym przypadku występuje wiele błędów i ponownych prób, które obserwuje się podczas próby odczytania stron danych z plików danych i wypełniania buforów pamięci (reprezentacji pamięci stron danych). Główna przyczyna błędów buforu populacji nie jest wyraźnie identyfikowana jako kody błędów źródłowych podczas próby wypełnienia buforów, które nie są narażone.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Rozwiązanie
Ten problem został rozwiązany w następującej aktualizacji zbiorczej dla SQL Server:
Informacje o aktualizacjach zbiorczych dla SQL Server:
Każda nowa aktualizacja zbiorcza dla SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla SQL Server:
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.