Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Używasz bazy danych z poziomem zgodności ustawionym na 130 w programie Microsoft SQL Server 2016.

  • Wykonujesz zapytanie, które uzyskuje dostęp do indeksu magazynu kolumn i indeksu magazynu wierszy lub stosu, i zawiera predykat filtru (klauzula WHERE).

W tym scenariuszu SQL Server nie będzie w stanie przesunąć predykatu filtru bliżej operatora źródła danych (skanowanie tabeli lub indeksu lub wyszukiwanie). Może to spowodować nieoptymalna wydajność zapytania.


Ponadto jeśli zapytanie używa wyrażenia (na przykład konwersji typu), w którym jego poprawność zależy od filtrowanych danych (na przykład kolumna tabeli znaków jest konwertowana na wartość int, ale tylko podzbiór wartości zawiera prawidłową reprezentację odręczną, a ten podzbiór jest identyfikowany przez predykat filtru), zapytanie może zakończyć się niepowodzeniem z powodu błędu konwersji danych, który przypomina jedną z następujących sytuacji:

Msg 245, Poziom 16, Stan 1, Konwersja wiersza 20
nie powiodła się podczas konwertowania wartości varchar '0,5' na typ danych int.

Msg 8114, Poziom 16, Stan 5, Linia 34
Błąd konwertowania typu danych varchar na bigint.

Rozwiązanie

Ten problem został rozwiązany w następującej aktualizacji zbiorczej dla SQL Server:

aktualizacja zbiorcza 2 dla SQL Server 2016 z dodatkiem SP1       

Uwaga Aby poprawka została włączona, należy włączyć poprawki optymalizatora zapytań.

Poprawki optymalizatora zapytań można włączyć, korzystając z jednej z następujących opcji: flaga śledzenia 4199, ustawienie konfiguracji zakresu bazy danych QUERY_OPTIMIZER_HOTFIXES=WŁĄCZONE (dostępne w SQL Server 2016 lub nowszym) lub USE_HINT opcję zapytania "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (dostępna w SQL Server 2016 z dodatkiem SP1 lub nowszym).

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:

Najnowsza aktualizacja zbiorcza dla SQL Server 2016

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Informacje

Dowiedz się więcej o terminologiiużywanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×