KB3138659 - 修正: Oracle データベースから数値データ型に対してクエリを実行するとパフォーマンスが低下する

適用先
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)

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft SQL Server 2012 または SQL Server 2014 でリモート ソースとして Oracle データベースにアクセスするようにリンク サーバーを構成し、そのリンク サーバーには "Oracle.OleDB" OleDB プロバイダを使用します。
  • Oracle表を参照するリモート問合せを使用し、その表にOracle独自のNUMBER型を持つ列が1つ以上含まれている。 このテーブルには、かなりの数の行も含まれています。

このシナリオでは、従来の Microsoft "MSDAORA" OleDB プロバイダーと比較してパフォーマンスの問題が発生する可能性があります。 この問題は、"Oracle.OleDB" プロバイダーが NUMBER データ型を SQL Server に報告する方法が原因で発生します。

解決策

この問題を解決するには、この更新プログラムを適用し、トレース フラグ TF9394 を有効にします。 トレース フラグ TF9394 を有効にするには、「詳細」セクションを参照してください。

累積的な更新プログラムの情報

この問題は以下の更新プログラムで修正されています。

          

推奨事項: SQL Server の最新の累積的な更新プログラムをインストールする

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。

      

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

トレース フラグ 9394 を有効にする方法

起動時またはユーザー セッションでトレース フラグ 9394 を有効にできます。 このトレース フラグには、グローバル レベルまたはセッション レベルの効果があります。 トレース フラグ 9394 を有効にするには、DBCC TRACEON コマンドを使用するか、スタートアップ パラメーターとして –T 9394 を使用します。

DBCC TRACEON\TRACEOFF を使用する場合、ストアド プロシージャの新しいキャッシュされたプランは再生成されません。 トレース フラグなしで作成されたプランがキャッシュにある可能性があります。

トレース フラグを有効または無効にする方法、およびグローバルおよびセッション レベルのトレース フラグの詳細については、SQL Server Books Online の以下のトピックを参照してください。

      

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。

サードパーティの情報に関する免責事項

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。