singalen: (freeman)
update t set t.f = t.f+1

Вы думаете, это сработает?

Сработает, конечно — если вы работаете не с IBM. DB2 — это какой-то нереальный (плохое слово).

Там, конечно, данных 700М. Ну, подумаешь, что такое несчастные 700М? Так нет, расширь мне лог транзакций. Снова расширь. Добавь сто вторичных логов. Перезапусти меня. Нет, Restart не работает, хотя говорит, что саксес - сделай Stop, потом Start. Бэкап не заработает, если в него не запаковать лог транзакций, потом распаковать и накатить отдельными командами. Куда распаковать, укажи три раза в разных местах.
Процесс бэкапа-распаковки падает в случайные моменты, то может, то не может увидеть существующий доступный каталог, и тому подобные мрачные чудеса.
После этого окажется, что драйвер потерял лицензию, и столько коннекшнов (аш 5) к БД поднять нельзя.

И после этого select count(*) from t работает 5 минут и не дорабатывает.

Ааа, я их ненавижу. Дайте мені Postgres, браття.

2011 год, блин. Я знаю, что и в марсоходе работают перловые скрипты, но как же бесит.
Tags:
singalen: (Default)
Нашёл страничку о полезных фичах SQL разных СУБД, и как нестандартно они реализованы.
Познавательно. Полезно, если поддерживаете несколько СУБД и не помните, какая что умеет.
Tags:
singalen: (humpty-dumpty)
Позор джунглям!

Пилю Выбираю я дерево, знаю только синтаксис Оракла... и узнаю, что в SQL появились такие себе "подпрограммы"!

И от как оно выглядит (источник).SQL )
Пора на свалку.

Пункт второй.

В Hibernate давно уже думают - а не закодировать ли ORM для дерева, чтобы рекурсивное дерево можно было выбрать одним запросом.

И, конечно, всё никак не прикрутят.

Кто тоже забыл структуры данных — напоминаю: это делается минимум двумя способами, nested set/interval, и materialized path. В первом случае в записи хранятся ещё и индексы поддерева в отображении на отсортированный массив, а во втором - тупо путь к элементу.

Ещё можно, к примеру, проставить в записях их порядковые номера при обходе дерева. Автор статьи, правда, этого тоже не пробовал.

SQL

5/11/09 11:18
singalen: (Default)
Почитал википедию о стандартах SQL.
Узнал много нового.
Про стандартный оператор MERGE, про window functions (Ура! Нормальное описание!) и как сделать LIMIT в разных СУБД.
Наконец увидел, как делать иерархические запросы не в Оракле. Есть в Firebird и Postgre (см. WITH RECURSIVE). Всё-таки Postgre рулит.
singalen: (Johnny)
Нужно выбрать последний, скажем, курс валюты, за каждый час.
Я делаю так:
Кто хочет сначала решить сам - не смотрите под кат )
Заодно исполняется и на HQL.

Исполняется, инфекция, разумеется, фулсканом. На MySQL несчастные полторы тыщи записей по этим формулам группируются минуту. На hsql - пять минут.
Далее обсуждаем предлагаемые решения )
Кстати, инфекция, в HQL нет функции week(). И произвольного выкусывания части даты тоже нет 8(
Tags:
singalen: (Default)
[livejournal.com profile] ru_sql пока меня не пускает, [livejournal.com profile] ru_case сдох из-за неправильного названия.
Вопрошу у себя: какие именно угрозы безопасности закрывает DAL на stored procedures, в отличие от динамического SQL, как, скажем, в Hibernate? (уточнение вопроса)
далее бухтение и holy war )