powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
4 сообщений из 179, страница 8 из 8
Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
    #36540918
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

я считаю, что никакого стека вызовов там не нужно. И я уже всё расказал, как это вижу. Другими словами, есть поток, читаем из него N-тый шаг, на его основе подготовляем N+й. Это всё. Цикл REPEAT UNTIL результат пуст. Что было на N-1-м шаге, результат которого, конечно, где-то копится, в данном контексте неважно. Для вас тоже неважно, вы ведь на глубину рекурсии поставили ограничение, а не на размер result set'а - значит, те структуры данных к нему напрямую не относятся.

Да, DB2-шный запрос может зациклиться. Но можно писать запрос с "предохранителем". Заводят колонку-счётчик, на шаге 0 у неё значение 0, на шаге N - значение N, и ставим в условие WHERE счётчик <= MAXN. Это определённо не то же самое, что перекомпилировать СУБД, чтобы сменить значение константы, если она вдруг не устраивает.
...
Рейтинг: 0 / 0
Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
    #36540969
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsahvlad,

я считаю, что никакого стека вызовов там не нужно. И я уже всё расказал, как это вижу. Другими словами, есть поток, читаем из него N-тый шаг, на его основе подготовляем N+й. Это всё. Цикл REPEAT UNTIL результат пуст.Только в данном конкретном случае. Если DB2 превращает подобные запросы в цикл - честь ей и хвала.
Firebird такого не умеет, для него все рекурсивные запросы в этом смысле одинаковы. Так что с точки зрения Firebird - это не цикл.
В Firebird есть гораздо более эффективные методы написания таких циклов :)

Victor MetelitsaДа, DB2-шный запрос может зациклиться. Но можно писать запрос с "предохранителем".Суть не в том, что можно поставить предохранитель.
А в том, чтобы нормально отрабатывать запросы без предохранителя.

Victor MetelitsaЭто определённо не то же самое, что перекомпилировать СУБД, чтобы сменить значение константы, если она вдруг не устраивает.Так она в основном теоретиков не устраивает :)
...
Рейтинг: 0 / 0
Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
    #36540989
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТолько в данном конкретном случае. Если DB2 превращает подобные запросы в цикл - честь ей и хвала.
Firebird такого не умеет, для него все рекурсивные запросы в этом смысле одинаковы. Так что с точки зрения Firebird - это не цикл.
Это формально рекурсия, а по сути обыкновенный цикл, который вы зачем-то превратили в фактическую рекурсию и сами себе ограничили возможности. Ну, если вас это не волнует, то меня тем более.
...
Рейтинг: 0 / 0
Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
    #36541030
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsahvladТолько в данном конкретном случае. Если DB2 превращает подобные запросы в цикл - честь ей и хвала.
Firebird такого не умеет, для него все рекурсивные запросы в этом смысле одинаковы. Так что с точки зрения Firebird - это не цикл.
Это формально рекурсия, а по сути обыкновенный цикл, который вы зачем-то превратили в фактическую рекурсию и сами себе ограничили возможности.Обход вырожденного дерева с одной веткой тоже цикл по сути. И что ?
Причём, заметьте, это вы превратили рекурсию в цикл, а не я превратил цикл в рекурсию :)

Что вы хотите мне доказать ?
Что DB2 умеет переписывать в другом виде большее количество запросов, чем Firebird ?
Так я это знаю.
Или что-то другое ?

Victor MetelitsaНу, если вас это не волнует, то меня тем более.А мне показалось, что вы разволновались :)

Кстати, было бы интересно прочитать о том, что DB2 действительно умеет распознавать такие вырожденные случаи рекурсии. Есть ссылка ? А кто ещё умеет ?
...
Рейтинг: 0 / 0
4 сообщений из 179, страница 8 из 8
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Firebird 2.1.3 vs Oracle 11g standart one vs Interbase 2007 vs Microsoft SQL Server 2008
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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