
Ilia
01.09.2017
13:54:39
А в чём разница, курсором или запросом ?

Al
01.09.2017
13:54:51

Fike
01.09.2017
13:54:59
и интересно, что будет быстрее, джойн только в дбспейсе, или курсор в приложении

Google

Ilia
01.09.2017
13:55:15

Sergey
01.09.2017
13:55:24
Да пожалуйста. С 2 до 3 ночи в момент перевода стрелок

Simon
01.09.2017
13:55:27

Al
01.09.2017
13:55:31

Fike
01.09.2017
13:55:46

Simon
01.09.2017
13:55:50

Fike
01.09.2017
13:56:03
типа закрытие курсора имеет сложность O(n^3) или что?

Simon
01.09.2017
13:56:20

Fike
01.09.2017
13:56:29
что в нем ненадежного?

Ilia
01.09.2017
13:56:31
JOIN я бы не писал, конечно, но для телепузиков NOT EXISTS слишком сложно, а на горе- таблице в 5тыщзаписей и так прокатит
Ребята, не затевайте спор ни о чём.

Simon
01.09.2017
13:57:35
что в нем ненадежного?
Откуда ты знаешь, что твой курсор откроют и закроют когда надо. Плюс всякие заебы runtime, плюс перехватить exception.

Fike
01.09.2017
13:57:50
кто будет закрывать мой курсор?

Google

Fike
01.09.2017
13:57:57
космический луч прилетит?

Ilia
01.09.2017
13:58:17

Simon
01.09.2017
13:58:22

Fike
01.09.2017
13:58:38
предлагаю транзакции еще запретить, потому что ее не закоммитить в приложении, то данные не сохранятся

Sergey
01.09.2017
13:58:49
Чего?
Была раньше такая беда в России пока от нее не оказались - зимнее и летнее время. Осуществлялось переводом часов в 3 ночи на час назад. Можно въехать в 2:15, выехать в 2:45. Перевести в 3:00 часы на час назад на 2:00 . Въехать тепреь по новому времени в 2:20 и выехать допустим в 2:50

Fike
01.09.2017
13:59:00
можно забыть схватить эксепшен, можно забыть закрыть транзакцию, разницы-то

Simon
01.09.2017
13:59:53
Пример

Al
01.09.2017
14:00:06

Fike
01.09.2017
14:00:07

Simon
01.09.2017
14:00:39

Fike
01.09.2017
14:00:51
иначе бы этот вопрос тут не подняли вообще

Simon
01.09.2017
14:02:02
их нет
Да успокойся, охуенно решение, использовать курсоры. Продолжай.

Al
01.09.2017
14:02:46

Fike
01.09.2017
14:03:28
ты так ни одного убедительного аргумента против курсоров и не привел

Simon
01.09.2017
14:03:55

Fike
01.09.2017
14:04:18
но можешь добиться той же функциональности (за исключением уровней изоляции), выгребая какое-то количество записей по лимиту

Simon
01.09.2017
14:05:02

Google

Al
01.09.2017
14:09:32
О запросах пока ни слова не было.
Да. но в целом довольно все весело. Типа давай сделаем хитро вымученый запрос в базу через джоины и сравнения. Пусть работает. А потом удивимся когда внезапно клиентов набежит. Хотя выбрать и сравнить в приложении получается на несколько порядков быстрее, но кого это волнует

Ilia
01.09.2017
14:10:54

Fike
01.09.2017
14:11:32
ему пока требуется только небольшая помощь в поиске документации по оконным функциям (
потому что с ненулевой вероятностью это все-таки можно сделать с помощью окна

Ilia
01.09.2017
14:12:08
Ну, тоже вариант.

Danil
01.09.2017
14:12:27
можно, но не лучший вариант

Ilia
01.09.2017
14:12:47
По производительности только разницы никакой... Что запрос, что оконная, что курсор

Fike
01.09.2017
14:13:07
Эм, а что вы имеете против? Я до сих пор не очень понимаю, как это сделать, но что может быть лучше оконки-то для такого?
Ну, кроме возвращения в прошлое и записывания данных в нужном формате

Ilia
01.09.2017
14:14:17

Danil
01.09.2017
14:14:51
скан-то однократный, но все остальное все равно будет грузить сервер.

Fike
01.09.2017
14:14:52
да ты серьезно что ли

Danil
01.09.2017
14:15:06
я бы на уровень приложения их вынес карочи

Ilia
01.09.2017
14:15:06
Я серьёзно.

Fike
01.09.2017
14:15:17
что такое грузить? набивать оперативу? да, будет, как и в других случаях

Ilia
01.09.2017
14:15:21
На самом деле видимо мы решаем разные ещё задачи.
Я решаю задачу ВЫДАТЬ ВСЕ ВЫЕЗДЫ, @etkee , видимо, ПРОВЕРИТЬ ОДИН

Fike
01.09.2017
14:15:58
чего

Simon
01.09.2017
14:16:18

Google

Simon
01.09.2017
14:16:45
Констрейнтом

Fike
01.09.2017
14:16:59
запретить машинам въезжать меньше, чем через два часа?

Simon
01.09.2017
14:17:08

Danil
01.09.2017
14:17:26

Fike
01.09.2017
14:17:50
и что сделает приложение?
разместит у себя в памяти? well that's a solution

Simon
01.09.2017
14:18:02

Ilia
01.09.2017
14:18:18

Danil
01.09.2017
14:19:20

Simon
01.09.2017
14:20:02

Fike
01.09.2017
14:20:16
отлично, теперь кроме требования к N оперативы для данных у нас есть еще требование на f(N) машин
и еще f2(N) оперативки для самих приложений

Simon
01.09.2017
14:21:23
Это пиздец какой-то для заполнения 1 таблицы размазывать данные по узлам.

Fike
01.09.2017
14:21:40
У выноса в отдельное приложение есть один большой плюс - это снимает нагрузку с сервака. Но обычный скан ничего серваку не сделает.

Danil
01.09.2017
14:21:42
стоп) речь идет о ситуации, когда эти приложения и так уже есть
тут выше кто-то джойнить таблицу саму на себя собирался, а вы говорите обычный скан..)

Al
01.09.2017
14:25:25
А можно просто в приложении считать. Машина заезжает назад. Пишем в 3 колонку время сколько ее не было. А дальше выбираем по 3 колонке че хотим. Хоть все машины кто меньше минуты выезжал

Ilia
01.09.2017
14:26:37

Fike
01.09.2017
14:27:06
Возвращаемся к дискуссии про джойны и сканы
Если делать однократный скан и держать агрегацию в памяти / сбрасывать ее на диск, то это O(N)

Google

Ilia
01.09.2017
14:29:12
Поднобнее...

Al
01.09.2017
14:29:36
То есть спроектировать бд под запросы это не вариант я так понимаю

Fike
01.09.2017
14:29:57
Поднобнее...
ты просто идешь по записям и держишь в памяти кто когда в последний раз выезжал, ну

Al
01.09.2017
14:30:17
Нужно что бы больше джоинов и запросы похитрее. Иначе никто не узнает как круто ты можешь sql

Simon
01.09.2017
14:32:07

Ilia
01.09.2017
14:32:24

Fike
01.09.2017
14:33:16
а что там такое после слэша и "ержать агрегацию в памяти"

Al
01.09.2017
14:33:18

Danil
01.09.2017
14:40:53
а можно еще на триггеры + табличку текущего состояния всю эту логику повесить ?

Rookie
01.09.2017
14:49:51