Метка: dbms

Видео. Мартин Киуру. Oracle Secrets.

Мартин Киуру отлично и доступно рассказал то том, как можно написать Select для того что бы как можно быстрее достать то что нужно из БД Oracle 🙂

Видео. Сергей Мудрецов. Обзор СУБД.

Большая часть доклада была посвящена Sybase IQ. Так же были затронуты MS SQL, MySQL, Progress, SAP.

Обзор встречи 30.06

Итак состоялась наша встреча, посвященная базам данных.
Присутствовало около 40 человек и,не смотря на некоторые технические заминки в начале, все остались довольны.

Для затравки

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

Открыл встречу Сергей Мудрецов(Skype) с доклада «Мир баз данных, его тенденции и тонкости» о Sybase и сравнении его с некторыми другими популярными и не очень OLAP решениями. Из презентации мы узнали о том что есть такая замечательная база как Sybase, получили представление о фишках приятных и не особо в MS SQL, MySQL, SAS и Progress. Доклад получился интересным, хотя и слегка затянутым. Было много вопросов из зала, в частности «что же такое OLAP?» и «с чем его едят?». Надеюсь эта тема ещё будет подниматься на следующих встречах.

После перерыва Мартин Киуру(Swedbank) продолжил заседание с презентацией «Oracle Secrets» о секретах Oracle.Тёмных тайн нам не открыли, однако поделились опытом в оптимизации запросов. Надеюсь теперь все имеют представление о построении запросов, операторах, которых не стоит использовать в конкретных случаях, хинтах, и собственно как посмотреть, что движок вытворяет с запросом и на что уходят драгоценные секунды. Из зала были также слышны ценные дополнения.

Завершил нашу встречу Андрей Солнцев(Hireright) с докладом «Evolutionary database design» о Эволюционном дизайне баз данных, проще говоря, об Agile разработке применительно к базам данных и о инструментах, которые позволяют внести порядок в процедуру разработки, установки и отката скриптов, версионирование. В частности Андрей посоветовал литературу по рефакторингу баз данных и вкратце ознакомил с использованием библиотек DB Deploy и LiquiBase, построенных на принципах, изложенных в этой книге.

В конце я вскольз рассказал о линейке продуктов Redgate для синхронизации структуры и данных между базами.

В перерывах участники активно общались между собой. Кто-то встретил старых знакомых, кто-то завёл новых. Мы рады, что встреча оказалась настолько интересной и вы нашли в себе силы прийти, несмотря на летнюю погоду :). Заполненные анкеты и собранные пожертвования помогут нам успешно провести следующее заседание.

Пользуясь случаем хотелось бы выразить благодарность
Арсению Григорьеву(Aqris) и команде Aqris’a за гостепреимство
Кириллу Линнику(Skype) за модераторство и конкурс с призами
Захару Кириллову за неоценимую помощь с призами
Александру Моченову(Tallink) за предоставление Devclub-у в пользование мега-пульта дял презентаций с лазерной указкой
Евгению Холодкову(Ericsson) за диктофон с head-set’ом.


Домашнее задание.

Дабы поддержать добрую традицию приятных призов за вопросы, Кирилл предлагает вашему вниманию простую, но интересную задачку.
Итак, имеется следующая бизнес-логика:
Пользователь блокируется различными системами, которые находят его поведение небезопасным. Если тревога ложная, то разблокируется он один раз.
В итоге имеем простую табличку:
status_log: id (int)
user (varchar)
reason (varchar)
is_blocked (int 0-1)
change_time (datetime).

Проблема: в табличке записей крайне много.
Вопрос: как одним запросом найти всех пользователей, с временем и причиной первой блокировки, а так же временем и причиной разблокировки.
Ремарка: блок-разблок может происходить несколько раз.
Диалект решения — стандартный 92. Если вы знаете, что на другом диалекте можно это сделать еще эффективней — можете добавить и это решение, что добавит вам призовых баллов. Победитель будет объявлен на следующей встрече и без приза ему будет не уйти 😉 Ответы можно постить в комменты, или отправлять на e-mail — kirill точка linnik собака mail точка ee.

P. S. для тех, кто так и не уловил смысл ремарки, показываю на данных. допустим, у нас такая временная дата по одному юзеру (число — в блок?):
1 — 1
2 — 1
3 — 0
4 — 0
6 — 1
7 — 1
8 — 0
9 — 0
скрипт в конечном итоге по этому юзеру должен выдать 2(!!) записи:
даты 1 и 3 + даты 6 и 8. т.е. те даты, в период которых пользователь был заблочен. в период 3-6 и другие он в блоке не был 😉

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

Ждем комментариев, вопросов, предложений.
Юрий Муленко, a.k.a Казначей.

создано с помощью WordPress & Автор темы: Anders Norén