plumqqz на PGDay`14 говорит всю бизнес логику надо в бд, yakov-sirotkin на ULCAMP собирается рассказать, что делать надо наоборот: «Миграция с PL/SQL на Java
( Read more... )
Относительно Якова могу заметить, что в общем случае вменяемый код лучше невменяемого; т.о. вменямый код на жабе лучше невменяемого кода на PL/SQL. Это, собственно, иллюстрирует лишь то, что хорошее обычно заметно лучше плохого
( ... )
да оптимизатор не может оценить стоимость хранимки. т.е. имеем предикат where super_havy_func() = 0 ну и на что заменим, если у нас в процедуре 100500 запросов и условий и она обмолачивает 10000 строк и отсекает 99% строк, какие у нас варианты? a) отфетчить на клиента и там 10000 раз вызвать 100500 запросов. b) умудрится засунуть в where запросы и условия без процедуры, а если эту процедуру надо использовать много раз? c) оставить процедуру в запросе, но или хинтами или изменив запрос, задвинуть предикат в конец.
Чтобы не вызывалась два раза в оракле "чистую" функцию можно пометить DETERMINISTIC
Comments 3
Reply
(The comment has been removed)
Reply
(The comment has been removed)
where super_havy_func() = 0
ну и на что заменим, если у нас в процедуре 100500 запросов и условий и она обмолачивает 10000 строк и отсекает 99% строк, какие у нас варианты?
a) отфетчить на клиента и там 10000 раз вызвать 100500 запросов.
b) умудрится засунуть в where запросы и условия без процедуры, а если эту процедуру надо использовать много раз?
c) оставить процедуру в запросе, но или хинтами или изменив запрос, задвинуть предикат в конец.
Чтобы не вызывалась два раза в оракле "чистую" функцию можно пометить DETERMINISTIC
Reply
Leave a comment