KB3138659 – ÅTGÄRD: Långsamma prestanda när du kör frågor mot numeriska datatyper från en Oracle-databas

Gäller för
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)

Symptom

Tänk dig följande scenario:

  • Du konfigurerar en länkad server för åtkomst till en Oracle-databas som fjärrkälla i Microsoft SQL Server 2012 eller SQL Server 2014, och du använder OleDB-providern "Oracle.OleDB" för den länkade servern.
  • Du använder en fjärrfråga som refererar till en Oracle-tabell och den tabellen innehåller en eller flera kolumner med Oracles egenutvecklade NUMBER-typ. Den här tabellen innehåller också ett betydande antal rader.

I det här scenariot kan du uppleva prestandaproblem jämfört med den äldre Microsoft "MSDAORA" OleDB-providern. Det här problemet uppstår på grund av hur "Oracle.OleDB"-providern rapporterar datatypen NUMBER till SQL Server.

Lösning

Lös problemet genom att tillämpa den här uppdateringen och sedan aktivera spårningsflagga TF9394. Information om hur du aktiverar spårningsflagga TF9394 finns i avsnittet "Mer information".

Information om kumulativ uppdatering

Problemet är åtgärdat i följande uppdateringar:

          

Rekommendation: Installera den senaste kumulativa uppdateringen för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

      

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Mer information

Aktivera spårningsflagga 9394

Du kan aktivera spårningsflagga 9394 vid start eller i en användarsession. Den här spårningsflaggan har effekter på antingen global nivå eller sessionsnivå. Om du vill aktivera spårningsflagga 9394 använder du kommandot DBCC TRACEON eller använder –T 9394 som startparameter.

Om DBCC TRACEON\TRACEOFF används återskapas inte en ny cachelagrad plan för lagrade procedurer. Det kan finnas planer i cachen som har skapats utan spårningsflaggan.

Mer information om hur du aktiverar eller inaktiverar spårningsflaggor och om spårningsflaggor på global nivå och sessionsnivå finns i följande avsnitt i SQL Server Books Online:

      

Referenser

Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.

Ansvarsfriskrivning från tredje part

De produkter från tredje part som beskrivs i den här artikeln är tillverkade av företag som är oberoende av Microsoft. Microsoft utfärdar inga som helst garantier för dessa produkters funktion och tillförlitlighet.