oracle вставка со многими переменными связывания по глобальной сети очень медленная - PullRequest
3 голосов
/ 27 мая 2009

у нас проблема с медленным оператором вставки, использующим 40 переменных связывания в качестве значений столбцов. Он работает несколько секунд при работе по каналу WAN, и мы не смогли выявить проблему, пока не использовали сетевой анализатор. Каждое выполнение этого подготовленного запроса требовало обмена более чем 120 пакетами между клиентом и сервером для завершения. Что мы можем сделать, чтобы выполнить его более эффективно?

Когда я запускаю одну и ту же вставку с фактическими параметрами (без переменных связывания) с того же хоста, она завершается за десятки миллисекунд. В параметрах нет ничего особенного, есть только короткие varchars и числа.

Мы используем Delphi 6 с ODAC, мы пробовали разные версии ODAC и клиента Oracle, но безрезультатно. На стороне сервера мы использовали Oracle 10 и 11.

Ответы [ 2 ]

1 голос
/ 27 мая 2009

TNS не предназначен для хорошей работы над WAN.

Если возможно, перепишите приложение, чтобы использовать другой сетевой уровень, например HTTP, который более эффективен.

Вы можете сделать это, например, Oracle HTTP Server.

0 голосов
/ 24 августа 2009

Вы смотрели на Внешние таблицы ? Заменяет необходимость в SQL Loader Требуется Oracle 9i или выше, хотя

...