sql >> データベース >  >> RDS >> Oracle

Oracleクエリは.NETアプリからは遅い(または失敗する)が、SQLDeveloperからは速い

    ODP.NETプロバイダーとは何の関係もありませんでした。問題は、接続の作成に使用するライブラリ(もちろん、Oracle SQL Developerでは使用されておらず、Microsoftプロバイダーを試したときに使用しなかったライブラリ)が、何かを行う前に常に次のステートメントを実行していたことでした。

    ALTER SESSION SET NLS_COMP = LINGUISTIC
    ALTER SESSION SET NLS_SORT = BINARY_CI
    

    これらにより、Oracleでは大文字と小文字が区別されなくなります。しかし、それらはまた、すべての従来のインデックスを役に立たなくします。ビューからクエリを実行していたため、順序付けが組み込まれていました。また、データベースを所有していないため、パフォーマンスの問題を修正するためにインデックスを言語的にすることはできません。

    この(まれな)シナリオでこれらのステートメントを実行しない方法を提供することで、問題が修正されました。



    1. 自動インクリメントの開始番号を変更しますか?

    2. MySQL:1つのテーブルからレコードをカウントしてから、別のテーブルを更新します

    3. MySQLでDECIMALにキャスト

    4. .NetPostgreSQL接続文字列