Pull to refresh

Comments 24

CONNECT BY рулит :)
помню как мучился с хранением деревьев и возможностью быстрого построения.
Да, надо тратить столько времени, чтобы построить такое дерево, следить за целостностью при каждом вводе и, таким образом, жертвовать производительностью. В CUBRID и Oracle это займет пару минут написать такой запрос и еще не надо жертвовать производительность. Очень удобно.
Еще был вариант с views, union all и group by. :) Но я его не отсылал.
Я так и не проникся CONNECT BY, видимо неправильно готовил…
Имеешь ввиду, как решить ту задачу с CONNECT BY или, как им пользоваться?
Да, не получилось решить с CONNECT BY
Может получится опубликовать то решение. Я посмотрю.
Кстати, вот очень хороший материал об Иерархических Запросов, их преимущества и как ими пользоваться в CUBRID.
Ну, по поводу формату я им неделю вдалбливал что слишком много багов если не ввести определенный формат. И в итоге за это же и занизили баллы. Что хотелось бы в дальнейшем:
1) Чтобы более внимательны были к вопросам, каждый вопрос внимательно изучали и понимали что имеется в виду. Не поверишь, но 10 раз спрашивал про формат, а меня так и не поняли в конце.
2) Чтобы в статистике результатов были ссылки на решения призеров, а так же число баллов кто сколько набрал.
3) Формат выходного результата. Если привести все к строке, то правила перевода должны быть либо как в cubrid manager либо как в csql.
4) Проверять оф. форум не реже 3-х раз в день. Часто задаешь вопрос и ждешь аж сутки пока ответят. а без ответа дальше не сдвинешься.
А так — отличная возможность для всех узнать свои силы. А когда опубликуют решения можно будет многому научиться.
Вопрос к kadishmal, будут ли опубликованы решения? интересно, что же такое придумали другие участники.
Согласен с Ekstazi, что были определенные трудности с пониманием того, в каком формате обрабатывать данные. Я решил использовать просто те значения, которые возвращали стандартные драйверы после обычного TO_CHAR() и видимо оказался прав.
Вообще отличный конкурс, хорошая разминка мозгов. Задача была больше алгоритмической, чем на знание SQL и CUBRID.
Я изначально пошел тем же путем, но, когда столкнулся с 0.0e0 был расстроен:
select to_char(0.0e0);
-> 0

Можешь проверить. А сохранять в БД 0 как-то неправильно. Причем большая часть решений призеров по идее подвержена этой же проблеме. Ведь столбец типа float/real/double, и в нем хранится 0.0 (не 0). 0.0 — нечисловой. 0 — числовой.

В своем решении я этот момент учел(и многие другие) что совсем не понравилось проверяющим по всей видимости.

P.S.: Когда сможешь решение скинуть? Мне очень интересно как ты статистику подсчитывал.
Может быть, мы опубликуем самые интересные, еще не решили. Как будет известно, дам знать в Твиттере. Кстати, Алмаз, ты же сам можешь написать отдельный пост и объяснить, каким именно образом ты решил задачу.
Я тоже хабрапользователь — можете выделить в табличке. Вообще у меня БД CUBRID висла просто постоянно. Не знаю в чем дело, но желания ей воспользоваться у меня больше нет.
Выделил Вас тоже. Что касается «постоянно висла», было бы интересно узнать какая версия БД, ОС, и что Вы пытались сделать. Если есть конкретные вопросы, пожалуйста, задавайте. Буду рад решить все вопросы.
Версия 8.3.1, ОС Windows 7. Я пытался сделать кучу инсертов по одной штуке (если делать скопом, вообще всегда виснет). Иногда они отрабатывают, но чаще БД на очередном инсерте виснет. Если место заканчивается, БД виснет всегда, вместо того, чтобы выдать исключение в программу.
1. Если посмотрите на www.cubrid.org/windows_downloads, Windows 7 официально не поддерживается. На нем можно тестить, но просто на нем сервера не пишут. Попробуйте Винду либо ниже, либо на Линуксе. Проблем, уверен, не будет.
2. Еще лучше, попробуйте новый CUBRID 8.4.0. Вышел уже GA релиз. Он по производительности обходит предыдущую версию более чем в два раза. Были реализованы очень много оптимизаций. Можете посмотреть в www.cubrid.org/cubrid_840_key_features.
3. Было бы хорошо, если бы Вы могли предоставить пример запроса, какой интерфейс использовали, сколько запросов вбивали (отдельно и скопом). Мы можем обсудить как повторить этот тест и выяснить все.
Привет, давай обменяемся решениями? Мое в виде статьи есть. Можешь мне скинуть свое на почту?
Sign up to leave a comment.