Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
20.06.2019, 09:39
|
|||
---|---|---|---|
|
|||
SELECT без FROM |
|||
#18+
Всем привет. Подскажите, как PG понимает, что надо делать, если пишем SELECT без части FROM ? Например: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
И самый интересный пример: Код: sql 1.
row_numberunnest141516 Если написать по-человечески, то будет ожидаемо: Код: sql 1.
row_numberunnest142536 Такое ощущение, что Код: sql 1.
неявно переделывается в что-то типа: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.06.2019, 11:20
|
|||
---|---|---|---|
SELECT без FROM |
|||
#18+
Сисдба Мастеркеевич, по возможности избегайте старого синтаксиса для лейтералов--таб-ф-ций (т.е. сет--ретёрнинг ф-ии в перечеслениях листа селекта, а не во фроме). оно плохо совместимо с ?"новой" техникой оптимизации вызова ф-й. и проверяйте как оно на деле , если рискуете в т.ч. проверяйте что не отоптимизирован рендом и прочие волатили в том же стиле. (один раз на все строки а не по разу на строку) зато скаляры тоже можно во фром. с обратным эффектом Код: sql 1.
из схожих неприятностей -- модифицирующая(пишущая) ф-я в селект-- CTE может не вызываться, в отличие от "явно пишущих" CTE-ветвей (insert/update/delete) -- т.к. оптимизатор не увидит необходимости выполнения селект--CTE для конечного предложения запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=53&mobile=1&tid=1995154]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 150ms |
0 / 0 |