Комментарии 5
Он когда-то был в MySQL, но потом его героически выпилили.Не то чтобы когда-то… Выпилили в версии 8.0.3. Имхо, еще не один год пройдет прежде, чем 8-ая ветка достигнет хотя бы половины от количества инсталляций.
И, на мой взгляд, зря. При умеренном употреблении вполне полезная вещь была.
Хотя при неумеренном больше вредила, это да.
0
Кейс 1. Хранилище ретейлера
А что мешало завернуть в запросе вызов функции в (SELECT… FROM DUAL)?
0
И что бы это вам дало?
Функция вызывается с передачей в нее значений из столбцов таблицы — соответственно вызов функции на каждую выбираемую строку пойдет(как и написано в абзаце). Отсюда мораль: дети, не используйте функции ни в where clause, ни в селект списке, это может быть больно.
А автору — респект и уважуха за такой отличный и подробный разбор подводных камней.
Функция вызывается с передачей в нее значений из столбцов таблицы — соответственно вызов функции на каждую выбираемую строку пойдет(как и написано в абзаце). Отсюда мораль: дети, не используйте функции ни в where clause, ни в селект списке, это может быть больно.
А автору — респект и уважуха за такой отличный и подробный разбор подводных камней.
0
Результат бы закешировался и для одинаковых значений выполнялся бы очень быстро, в селекте, как правило, функции не вызывают никаких проблем, в where надо быть аккуратнее, т.к. может измениться план запроса и вызовов функции существенно увеличится, хотя если завернуть в (SELECT… FROM DUAL), то тоже проблем не будет
Вот статейка
www.oratechinfo.co.uk/scalar_subqueries.html
Вот статейка
www.oratechinfo.co.uk/scalar_subqueries.html
0
Ну ничего нового тут нет написано, чего бы я не знал.
Если вариантов значений у столбцов(которые передаются в функцию) таблицы много, то «кеш» будет только на каждый уникальный набор входных аргументов.
И причем тоже не всегда это будет работать(там даже написано об этом — есть лимит применения «кеша» по числу строк в датасете)
Если вариантов значений у столбцов(которые передаются в функцию) таблицы много, то «кеш» будет только на каждый уникальный набор входных аргументов.
И причем тоже не всегда это будет работать(там даже написано об этом — есть лимит применения «кеша» по числу строк в датасете)
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
100500 способов кэширования в Oracle Database