Время выполнения SP увеличивается при вызове из ADO.NET клиент

#oracle #stored-procedures #ado.net #oracle11g #enterprise-library

#Oracle #хранимые процедуры #ado.net #oracle11g #корпоративная библиотека

Вопрос:

Я наткнулся на устаревший сценарий. Я получил SP (Database — Oracle11g), у которого был простой запрос выбора, а время выполнения составляло около 100 мс.

Но когда я попытался вызвать SP через свое приложение (DAAB 2.0 и Oracle Client в качестве поставщика), выполнение набора данных заняло около 6 секунд.

Попытался изменить его на ExecuteReader, но безуспешно.

Затем я попытался изменить оператор select на dynamic (приложение вызывало другой SP, который был динамическим, и он работал нормально), и на этот раз приложение заняло всего 300 мс.

Я не могу объяснить поведение. Кто-нибудь сталкивался с подобной проблемой?

Комментарии:

1. Странно. Знаете ли вы, на что тратится время? Похоже, это в SP. Можете ли вы запустить SQL Trace и посмотреть, что делает Oracle?

2. @Tuzo — Извините за поздний ответ. У меня нет возможности запускать трассировку. Есть ли какой-либо другой способ получить план выполнения, с помощью которого запрос был выполнен при вызове из приложения