powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / варианты решения задачи - view с параметрами
6 сообщений из 6, страница 1 из 1
варианты решения задачи - view с параметрами
    #39637180
pppsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема поднималась неоднократно, в т.ч. на форуме, не всегда решение находится.

На практике можно использовать решение из доклада
PGDay14.Russia.PostgreSQL.development.pt3.Ivan.Frolkov.pdf (со стр. 12) или Функции SQL, возвращающие множества .

Последнее решение - функции SQL - выглядит наиболее гибким и оптимальным по поддержке.

Какие решения применяете на практике вы?
...
Рейтинг: 0 / 0
варианты решения задачи - view с параметрами
    #39637919
pppsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для существующего view "MyView"

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION "MyFunc"("MyParam" ... )
 RETURNS SETOF "MyView"
 LANGUAGE sql
AS $function$
	    SELECT "MyView".* 
		FROM 
			"MyView" INNER JOIN (SELECT ... FROM ... WHERE ... "MyParam") ...
		WHERE 
			"MyViewField" in (SELECT ... FROM ... WHERE ... "MyParam")
$function$
...
Рейтинг: 0 / 0
варианты решения задачи - view с параметрами
    #39637957
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pppsql,


геркулес выходит из тени. похвально. Г-н Фролков, перелогиньтесь
ещё можете с кликой продавцов оракла сразицца 21372238

но по гамбургскому -- планировщик надо учить ходить.
или хотя бы уверенно ползать.
а то куда не кинь -- везде ложится на спинку и сучит ножками в 100-и и 1000 раз дольше чем мог бы.


по вопросу навскидку -- если для вызова из клиента, и планирование тоже дорого -- оптимально варить препареды с параметрами сообразно случаю. хотя при работе через пулер это потребует небольших усилий.
и да , единственно когда нужны ф-ии ,имхо,-- когда вьюха сама не может протащить наложенное на неё условие до нужного уровня -- либо группировка со сложной трансформацией хавинга во where , либо места, где планер слаб сам собою -- протащить условия через джойны и т.д. у него получается не всякий раз.


тупо глядя в ваш код, с меня слетает шляпа -- видится что
Код: plaintext
1.
2.
3.
4.
SELECT "MyView".* 
		FROM "MyParam"
,lateral (SELECT "MyView".* FROM "MyView" 
		WHERE ...)
--where ...
именно оптимайзером пж разбирается как правило лучше.

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

ну и наконец давно пора обучить обычный текстовый индекс лайку. понятно что каторжные работы, но за "революцию" бартунова кто-то должен понести ответственность. почему бы не вверенный ему геркулес. для естественных ключей, с предустановленным materialyzed path вопрос актуален. иметь 2 инд-а вместо одного -- непозволительная роскошь. если листьев немерено.
...
Рейтинг: 0 / 0
варианты решения задачи - view с параметрами
    #39638112
pppsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,
не очень ясно что вы предлагаете
Другие, более простые решения задачи "view с параметрами"?

Оптимальность и оптимизация выполнения - отдельные вопросы.
...
Рейтинг: 0 / 0
варианты решения задачи - view с параметрами
    #39638148
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pppsqlqwwq,
не очень ясно что вы предлагаете
Другие, более простые решения задачи "view с параметрами"?

Оптимальность и оптимизация выполнения - отдельные вопросы.

для начала я предлагаю не прятаться. а ответить на вопрос чем вы тут занимаетесь.


или например ответить, есть ли в природе задача "вью с параметрами"

или в природе возникают другие задачи, которые натягиваются на абстракцию "вья с пара метрами", як сова на глобиус. потому токмо, что некта придумал какую-то реализацию именно этой абсракции, а не другой. и ищет себе буратину в качестве аудитории.

так вот , буратина не заинтересован в таком диалоге. и яблок вам не даст.


ибо никакой выделенной задачи "вья с парой метров" в природе не существует. а параметрическая выборка пишется как вам удобнее -- с клиента, в хранимке статично, в хранимке динамично, с пояса, лёжа, стоя, с двух рук наконец.



и я дал несколько направлений, которые интересны лично мне, как искомому вами буратине:
(не настаиваю на исключительности, просто в силу очевидного отсутствия аудитории)

1. покажите, чем ваша реализация отлична от препареда к тому же вью.

2. расскажите, почему вообще интересно писать ф-ю на вью, если вы не внедряете параметр в ту часть запроса, в которую его нельзя запихнуть, будь запрос готовой вьюхой, как внешний фильтр where/join
мне это не кажется ниразу интересным, за исключением случаев вериг какого-нить "орм" из под которого не враз что-то напишешь. а впарить хранимку зачем-то можно. ну или если вы весь доступ делаете через хранимки.

2.1. напомните пожалуйста, парсятся ли сетофф скл ф-ии в общий план запроса, а то мне не нравится пдф формат как таковой. возможно вы оправдаете ожидания части аудитории. и зацепите пару -- тройку буратин.

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


ну и наконец если мы не договоримся, что вам положено яблоко за вопрос вашей повестки -- есть вопросы реально интересные, которые возможно кто-то из геркулеса мог бы порешать. а вы бы нам рассказали, как у вас всё пучком. к общему удовольствию.


ну достаньте наконец кролика из шляпы -- и народ подтянется.
...
Рейтинг: 0 / 0
варианты решения задачи - view с параметрами
    #39638240
PgSQLanonymous3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pppsqlqwwq,
Другие, более простые решения задачи "view с параметрами"?
Оптимальность и оптимизация выполнения - отдельные вопросы.
А чем Вас не устраивают упомянутые Вами же SQL set returning functions (даже и в плане оптимизации)?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / варианты решения задачи - view с параметрами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]