Sergey Molchanov
Дата: 05.12.2005 16:46:05
Возник такой вопрос:
Соединяюсь с базой Oracle
(пробовал как классы System.Data.OracleClient, так и Oracle.DataAccess из ODP.NET)
Создаю OracleCommand с текстом INSERT INTO какая_то таблица VALUES (:par1, :par2, ..., :parN)
То есть запрос параметризованный.
Создаю параметры, присваиваю им значения, и в цикле 10000 раз выполняю ExecuteNonQuery.
Почему-то оракл каждый раз заново парсит текст запроса, хотя он абсолютно не меняется.
Если кто-то что-то про это знает, буду ему ужасно благодарен :)
Sergey Molchanov
Дата: 06.12.2005 13:50:25
Отвечаю сам себе:
Удалось побороть тормоза другим способом, используя свойство ArrayBindCount класса Oracle.DataAccess.Client.OracleCommand (из ODP.NET) и задавая значения параметров массивами.
P.S. Несмотря на найденное решение проблемы тормозов, все равно мне не понравилось, что оракл парсит запрос каждый раз при выполнении. Что за отстой?