KB3138659 — POPRAWKA: Niska wydajność podczas wykonywania zapytań o typy danych liczbowych z bazy danych Oracle

Dotyczy
SQL Server 2012 Service Pack 3 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Objawy

Rozważmy następujący scenariusz:

  • Serwer połączony można skonfigurować w celu uzyskania dostępu do bazy danych Oracle jako źródła zdalnego w systemie Microsoft SQL Server 2012 lub SQL Server 2014 i użyć dostawcy OleDB "Oracle.OleDB" dla tego serwera połączonego.
  • Używasz zdalnego zapytania, które odwołuje się do tabeli Oracle, a ta tabela zawiera jedną lub więcej kolumn z zastrzeżonym typem NUMBER Oracle. Ta tabela również zawiera znaczną liczbę wierszy.

W tym scenariuszu mogą wystąpić problemy z wydajnością w porównaniu ze starszym dostawcą OleDB "MSDAORA" firmy Microsoft. Ten problem występuje ze względu na sposób, w jaki dostawca "Oracle.OleDB" zgłasza typ danych NUMBER do programu SQL Server.

Rozwiązanie

Aby rozwiązać ten problem, należy zastosować tę aktualizację, a następnie włączyć flagę śledzenia TF9394. Aby włączyć flagę śledzenia TF9394, zobacz sekcję "Więcej informacji".

Informacje o aktualizacji zbiorczej

Ten problem został rozwiązany w następujących aktualizacjach:

          

Zalecenie: zainstalowanie najnowszej aktualizacji zbiorczej dla programu SQL Server

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:

      

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji

Jak włączyć flagę śledzenia 9394

Flagę śledzenia 9394 można włączyć podczas uruchamiania lub w sesji użytkownika. Ta flaga śledzenia ma efekty na poziomie globalnym lub sesji. Aby włączyć flagę śledzenia 9394, należy użyć polecenia DBCC TRACEON lub użyć parametru –T 9394 jako parametru startowego.

Użycie polecenia DBCC TRACEON\TRACEOFF nie powoduje ponownego wygenerowania nowego planu dla procedur składowanych w pamięci podręcznej. W pamięci podręcznej mogą znajdować się plany utworzone bez flagi śledzenia.

Aby uzyskać więcej informacji na temat włączania i wyłączania flag śledzenia oraz flag śledzenia globalnego i na poziomie sesji, zobacz następujące tematy w podręcznikach online programu SQL Server:

      

Źródła informacji

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

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są produkowane przez wytwórców niezależnych od Microsoft. Firma Microsoft nie udziela jakichkolwiek gwarancji, dorozumianych ani innych, co do wydajności i niezawodności tych produktów.