Встроенные функции в pl / sql? - PullRequest
3 голосов
/ 23 апреля 2010

У меня есть 5 строк кода в качестве функции, которая вызывается 100000 раз, есть способ сделать функцию встроенной, чтобы я не испытывал накладных расходов на вызовы в PL / SQL. Oracle 9i - это версия, которую я использую.

Обновление: Подкладка кода In не имеет большого улучшения, но я получил 2 секунды, хотя. Сейчас я ищу эффективную версию типа данных float в pl / sql. BINARY FLOAT не работает, NUMBER (10,5) уже используется.

1 Ответ

1 голос
/ 27 апреля 2010

Вы определили, что накладные расходы на вызов функции не сильно влияют на производительность, поэтому в любом случае встраивание здесь не поможет.

Я предполагаю, что вы не используете SQL или не вызываете какие-либо функции SQL в вашем PL / SQL? Если так, то я посмотрю там дальше.

Ваша следующая опция - собственная компиляция - подробности см. Компиляция кода PL / SQL для собственного выполнения . Вы можете получить некоторое улучшение, так как вы только делаете математику.

В противном случае вам может понадобиться выйти за пределы PL / SQL. Вы можете вызывать код, написанный на многих других языках, из PL / SQL, включая C, C ++ и Java. Для получения дополнительной информации см. Вызов внешних процедур .

...