Re: Как правильно ограничивать глубину в CTE

2007-06-05 Пенетрантность Vlad Horsun
"sasha" ... > > > Это ты о чём ? > > Да я там багрепорт оформил - в запросах с представлениями совсем не > используются индексы. И к стати такие чудеса. Я там видать вместо > английского це поставил русскую с. Ну и теперь какая-то фигня твориться. > Если в трекере смотреть, то заместо русской

Re: Как правильно ограничивать глубину в CTE

2007-06-05 Пенетрантность Alexandr Kochmin
s> Баги на багтрекер куда слать? :-))) s> ты эта, смотри не убей трекер. Он тока нормально стал работать, без зависаний. -- С уважением Кочмин Александр Firebird Foundation associate member #257

Re: Как правильно ограничивать глубину в CTE

2007-06-05 Пенетрантность sasha
Это ты о чём ? Да я там багрепорт оформил - в запросах с представлениями совсем не используются индексы. И к стати такие чудеса. Я там видать вместо английского це поставил русскую с. Ну и теперь какая-то фигня твориться. Если в трекере смотреть, то заместо русской буквы вопрос. А в fi

Re: Как правильно ограничивать глубину в CTE

2007-06-05 Пенетрантность Vlad Horsun
"sasha" ... > > > Тебе сказать сколько раз этот трактор похерил CTE ? :) > > Индексы + представления тоже его рук дело? Это ты о чём ? > Интересно просто :-) Читай коммиты, сопоставляй ;) -- Хорсун Влад

Re: Как правильно ограничивать глубину в CTE

2007-06-05 Пенетрантность sasha
Тебе сказать сколько раз этот трактор похерил CTE ? :) Индексы + представления тоже его рук дело? Интересно просто :-)

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Вот это и нужно 'лоббировать' Дак а кто я такой чтоб лоббировать? :-) Я вон Цизару никак не могу доказать что так с дбкеями проблема. До сих пор ему кажеся что там всё в шоколаде...

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Horsun Vlad
"sasha" ... > > Честно говоря меня бы без всяких MAX LEVEL вполне устроило бы если б > оптимизатор подправили. Вот это и нужно 'лоббировать' > Оно конечно удобннее писать с MAX LEVEL или > условием в заголовке CTE, но не более. Именно - не более ;) -- Хорсун Влад

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Честно говоря меня бы без всяких MAX LEVEL вполне устроило бы если б оптимизатор подправили. Оно конечно удобннее писать с MAX LEVEL или условием в заголовке CTE, но не более.

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Horsun Vlad
"sasha" ... > > > Адназначна ;) Это уже рюшечки, есть и более важные дела > > А на Адриано нельзя повесить никак? Всё равно он пашет как трактор :-))) Тебе сказать сколько раз этот трактор похерил CTE ? :) Или кто 'виноват' в юникодных 'проблемах' ? > У меня такое впечатление что ему всё

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Адназначна ;) Это уже рюшечки, есть и более важные дела А на Адриано нельзя повесить никак? Всё равно он пашет как трактор :-))) У меня такое впечатление что ему всё равно что делать и сколько. ;-)

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Horsun Vlad
"sasha" ... > > > Про [MAX LEVEL N] - мне кажеться, лучшей была бы возможность явно > > указать условие завершения рекурсии. > > Например: WITH RECURSIVE [ON ] > > В твоём случае как раз WITH RECURSIVE ON TR.LEV < 5 > > Так предложи. Там в трекере можно комментарии писать. Правда Влад > наверное н

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Про [MAX LEVEL N] - мне кажеться, лучшей была бы возможность явно указать условие завершения рекурсии. Например: WITH RECURSIVE [ON ] В твоём случае как раз WITH RECURSIVE ON TR.LEV < 5 Так предложи. Там в трекере можно комментарии писать. Правда Влад наверное не обрадуется :-)

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Tonal
sasha пишет: Даты не понял ничего. Надо чтобы количество записей, прочитанных сервером, было равно кол-ву записей, возвращённых запросом. А у нас оптимизатор лажается на запросах типа WHERE 1 = 0 и перелопачивает всю таблицу. Поэтому для всех максимальных уровней сервер будет перелопачивать в

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Тады <4 ? $-) Даты не понял ничего. Надо чтобы количество записей, прочитанных сервером, было равно кол-ву записей, возвращённых запросом. А у нас оптимизатор лажается на запросах типа WHERE 1 = 0 и перелопачивает всю таблицу. Поэтому для всех максимальных уровней сервер будет перелопачива

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Boulitchev Aleksey
Не вполне ясно вот что: действительно ли в булевских выражениях порядок вычисления не определён? Т.е. если у меня условие: where DOC_ID is not null and MY_COOL_UDF(DOC_ID) то MY_COOL_UDF(DOC_ID) может вызваться для аргумента null? а почему нет? особенно если оптимизатор решит что так быстрее.

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Tonal
Horsun Vlad пишет: Во-вторых, это закладывается на порядок вычисления условий Дык вычисления булевых выражений вродь сокращенные. Причём тут это ? Или в данном случае на порядок это не влияет? Есть большая разница в данном случае между AND RDB$SET_CONTEXT('USER_TRANSACTION', 'L

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Horsun Vlad
"Tonal" ... > > Horsun Vlad пишет: > > Во-вторых, это закладывается на порядок вычисления условий > Дык вычисления булевых выражений вродь сокращенные. Причём тут это ? > Или в данном случае на порядок это не влияет? Есть большая разница в данном случае между AND RDB$SET_CONTEXT(

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Tonal
Horsun Vlad пишет: Во-вторых, это закладывается на порядок вычисления условий Дык вычисления булевых выражений вродь сокращенные. Или в данном случае на порядок это не влияет? В-третьих, это всё равно не позволит избежать чтения записей с уровня 5 Ну дык с 6-го то читать уже не будет?

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность sasha
Та не, что-то вы путаете. Никакие извращения с контекстами тут не могут помочь в принципе. Они будут делать то же самое что делал запрос без контекстов, т.е. перебирать на листовых элементах все подэлемнты. Запусти что-то типа SELECT * FROM TABLE WHERE 0 = 1 и посмотри статистику - всю твою

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Horsun Vlad
"Tonal" ... > Ошибся чуток: Да не, не чуток :) Во-первых, вот так : WITH RECURSIVE TR AS ( SELECT T.*, 1 AS LEV FROM "Tree" T WHERE PARENT_ID IS NULL AND RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', 0) >= 0 UNION ALL SELECT T.*, TR.LEV + 1 AS LEV FROM "Tree" T, TR

Re: Как правильно ограничивать глубину в CTE

2007-06-01 Пенетрантность Tonal
Tonal пишет: sasha пишет: а если через get_context, set_context? А как это может помочь? WITH RECURSIVE TR AS ( SELECT T.*, 1 AS LEV FROM "Tree" T WHERE PARENT_ID IS NULL and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', 0); UNION ALL SELECT T.*, TR.LEV + 1 AS LEV FROM "Tree" T, TR WHE

Re: Как правильно ограничивать глубину в CTE

2007-05-31 Пенетрантность Tonal
sasha пишет: а если через get_context, set_context? А как это может помочь? WITH RECURSIVE TR AS ( SELECT T.*, 1 AS LEV FROM "Tree" T WHERE PARENT_ID IS NULL and RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', 0); UNION ALL SELECT T.*, TR.LEV + 1 AS LEV FROM "Tree" T, TR WHERE PARENT_ID =

Re: Как правильно ограничивать глубину в CTE

2007-05-31 Пенетрантность sasha
> а если через get_context, set_context? А как это может помочь?

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность Dmitry Voroshin
"Oleg Deribas" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED] > > Hello, > > Dmitry Voroshin said the following on 30.05.2007 12:02: > > > Что за лажа с кодировкой... > > Включи "запретить использование 8-битных символов в заголовках Счас проверим. Снёс свой фи

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность sasha
Нафига нам новое ключевое слово ? Я не знал что LEVEL ключевое. Нельзя им просто словом быть? В общем тебе виднее ;-)

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность Vlad Horsun
"sasha" ... > > > Они не мои :) > > Написал. Только не MAX LEVEL, а MAX DEEP - мне так больше нравится ;-) Нафига нам новое ключевое слово ? -- Хорсун Влад

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность sasha
Они не мои :) Написал. Только не MAX LEVEL, а MAX DEEP - мне так больше нравится ;-)

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность Vlad Horsun
"sasha" ... > > > Но и в трекере ничё не вижу ;) > > Как-то даже не удобно твои идеи за свои выдавать ;-) Они не мои :) -- Хорсун Влад

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность sasha
Но и в трекере ничё не вижу ;) Как-то даже не удобно твои идеи за свои выдавать ;-)

Re: Как правильно ограничивать глубину в CTE

2007-05-30 Пенетрантность Vlad Horsun
"Dmitry Voroshin" ... > > > "Horsun Vlad" ... > > > > > > WITH RECURSIVE [MAX LEVEL N] > > > > > > > > > > > > но баба яга была против > > > > > > > > > > > А что нам говорит стандарт? > > > > Насколько я помню, там такого нет > > И это был главный аргумент Бабы Яги? Ужо не помню. Но и в

Re: Как правильно ограничивать глубину в CTE

2007-05-29 Пенетрантность sasha
Эх, что-то не весело совсем :-(