Мы фактически проследили эту проблему до использования столбцов CLOB для хранения строковых данных типа nvarchar (MAX).
Oracle признала, что в их программном обеспечении OCI есть проблемы, связанные с объектами CLOB. По умолчанию они пытаются получить CLOB таким же образом, как и очень большой BLOB. Они устанавливают указатели, пытаются выполнять разбиение на страницы и т. Д. Конечно, это поведение по умолчанию снижает производительность, когда дело доходит до обычного текстового поля ~ 200 символов. Вы фактически отключаете это поведение, устанавливая LOBFetchSize в -1. Таким образом, он будет захватывать содержимое CLOB за один раз. Тогда все начинает летать, и вы получаете очень хорошие результаты.
Даже с этим, хотя у нас продолжали возникать проблемы. Мы подтвердили утечки памяти и ошибки ссылки на память в программном обеспечении OCI до версии 11.2. Но 11.2 работает нормально как в 32, так и в 64-битных сценариях.
Таким образом, установка LOBFetchSize в -1 была здесь для определения производительности.