- You configure a Linked Server to access an Oracle database as a remote source in Microsoft SQL Server 2012 or SQL Server 2014, and you use the "Oracle.OleDB" OleDB provider for that Linked Server.
- You use a remote query that references an Oracle table, and that table contains one or more columns with Oracle's proprietary NUMBER type. This table also has a significant number of rows in it.
In this scenario, you may experience performance issues compared with the legacy Microsoft "MSDAORA" OleDB provider. This issue occurs because of the way the "Oracle.OleDB" provider reports the NUMBER data type to SQL Server.
Cumulative update informationThis issue is fixed in the following updates:
- Cumulative Update 13 for SQL Server 2014
- Cumulative Update 6 for SQL Server 2014 Service Pack 1 (SP1)
- Cumulative Update 2 for SQL Server 2012 Service Pack 3 (SP3)
- Cumulative Update 11 for SQL Server 2012 Service Pack 2 (SP2)
You can enable trace flag 9394 at startup or in a user session. This trace flag has either global-level or session-level effects. To enable trace flag 9394, use the DBCC TRACEON command or use –T 9394 as a startup parameter.
If DBCC TRACEON\TRACEOFF is used, this does not regenerate a new cached plan for stored procedures. There could be plans in the cache that were created without the trace flag.
For more information about how to enable or disable trace flags and about global and session-level trace flags, see the following topics in SQL Server Books Online:
- DBCC TRACEON (Transact-SQL)
- How to: Configure Server Startup Options (SQL Server Configuration Manager)