@dba_ru

Страница 468 из 718
Vladislav
30.03.2018
13:08:13
чё?

Виктор
30.03.2018
13:12:32
Все. Проверил несколько раз. Делал бэкап и менял движок
А автокоммит вообще принимает новое значение? select @@autocommit;

MIkhail
30.03.2018
13:12:33
кароче, у кого есть сертифы по CDC в ЛС, договоримся

Vladislav
30.03.2018
13:13:38
кароче, у кого есть сертифы по CDC в ЛС, договоримся
а проясните мне, какие серты должны быть по change data capture?

Google
MIkhail
30.03.2018
13:13:53
любые вообще

Vladislav
30.03.2018
13:14:13
любые вообще
Окей, задам вопрос по другому, а какие вообще бывают?

MIkhail
30.03.2018
13:15:24
если шаришь, скажи какой рейт, ок?

Vladislav
30.03.2018
13:17:47
если шаришь, скажи какой рейт, ок?
ответьте на вопрос, какие серты и рейты вообще бывают у методики?

Я так подозреваю, ответа я не дождусь...

Vladislav
30.03.2018
13:36:08
Да я так и понял, куда мне до спецов с сертами

Al
30.03.2018
13:37:32
Туалетная бумага доступна только для обладателей сертов с высоким рейтом. ?

Sergey
30.03.2018
14:13:55
Ну, проверь.
А если пулл есть, то что?

Ilia
30.03.2018
14:17:40
А если пулл есть, то что?
То каждый новый запрос ты выполняешь как правило через другое соединение, чем предыдущий.

Соответсвтенно, транзакции что начинай, что не начинай, всё без толку. (транзакция действует только внутри одного соединения)

Google
Sergey
30.03.2018
14:18:59
о как. я понял) Спасибо)

Ilia
30.03.2018
14:23:52
А как ты начинаешь транзакцию ?

Sergey
30.03.2018
14:24:58
Да. проблема в пуле

Большое спасибо

Ilia
30.03.2018
14:25:43
Там есть варианты , когда коннекшн из пула, и у него есть API какой-то , и если ты начинаешь транзакцию через этот API, то оно это понимает, и закрепляет данное соединение за тобой до конца транзакции

Какой язык у тебя вообще, какая библиотека ?

Sergey
30.03.2018
14:26:19
)))

Это битрикс

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

либо я его еще не обнаружил

Ilia
30.03.2018
14:31:09
Ну ок,

Sergey
30.03.2018
14:31:46
Еще раз спасибо

Sergey
30.03.2018
14:34:44
Чтобы использовать например метод save у разных объектов. а транзакции находились в нем

Al
30.03.2018
14:35:26
Чтобы использовать например метод save у разных объектов. а транзакции находились в нем
это не отвечает на вопрос зачем отслеживать начало транзакции

по мне звучит как кто то изобретает лисапед

Sergey
30.03.2018
14:37:54
Ок. Как лучше реализовать транзакции для шаблона проектирования "Компоновщик"?

Al
30.03.2018
14:38:52
Ок. Как лучше реализовать транзакции для шаблона проектирования "Компоновщик"?
попробуй начать вопрос пораньше. ну в смысле что вот есть такая задача нужно брать то и делать с ним это а потом класть вон туда.

Sergey
30.03.2018
14:43:55
Есть некоторый объект, внутри него лежит объект-коллекция. Сохранение предполагает следующие этапы: 1. Сохранить данные главного объекта 2. Сохранить данные элементов коллекции. 3. Если в п.2 возникла ошибка, то откатить 1.

4. Коллекция может быть самостоятельным объектом

Google
Ilia
30.03.2018
14:44:39
Транзакции ортогональны структуре объектов. Они только подчиняются логике прилоения, что тебе нужно сохранить атомарно.

Ilia
30.03.2018
14:46:35
ну может

Sergey
30.03.2018
15:15:06
Я вообще думал о том, чтобы начало и конец транзакции зашить в метод сохранения объекта

Al
30.03.2018
15:21:13
какая разница то, в одной транзакции оно все запишет в базу или в нескольких подряд?

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

Sergey
30.03.2018
15:32:03
я обычно делаю отдельный клас для работы с базой и там в нем делаю методы для каждой отдельной задачи. получается удобно
То есть в принципе можно создать инструмент , который принимает интерфейс, и в него в зависимости от контекста пихать разные объекты

Al
30.03.2018
15:33:21
но у меня складывается впечатление что ты заместо простого инзерта в базу пытаешся изобразить какую то сильно замороченную хрень с непонятной целью

Sergey
30.03.2018
15:35:33
Мне нужно сделать N инсерты, но если в N инсерте ошибка, то откатить все предыдущие.

С учётом разной вложенности объектов, которые делают эти инсерты

Al
30.03.2018
15:37:30
как в инзерте может быть ошибка?

Sergey
30.03.2018
15:37:58
Это я погорячился

После N-1 инсерта исключительная ситуация, например

Al
30.03.2018
15:38:50
в чем она исключительная?

Sergey
30.03.2018
15:39:19
Ну хз. В коде делитель оказался нулем

Кидаем exception

Google
Al
30.03.2018
15:39:31
есть кусок данных которые нужно записать в базу. берем данные. пишем... что тут исключительного?

попробуй отделить мух от котлет

нормальные люди берут данные. проверяют их. и если все соотвествует их ожиданиям то они их пишут.

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

откуда вообще идея првоерять данные в процессе их размещения в базу?

Sergey
30.03.2018
15:44:51
Хм. То есть делать пулл запросов , а выполнять их в самом конце? А где тогда этот пулл держать?

Al
30.03.2018
15:45:51
Хм. То есть делать пулл запросов , а выполнять их в самом конце? А где тогда этот пулл держать?
нееет. сначала нужно подготовить данные. проверить их. и потом записать в базу.

Sergey
30.03.2018
15:48:07
Хорошо. Я кое-что понял) спасибо

Hovhannes
30.03.2018
19:10:04
Может ли сервер считать по формуле евклидово расстояние из 120 чисел и найти самое наименьшее, если в таблице миллион записей?

Denis
30.03.2018
19:56:52
Да хоть лярд дело в скорости и железе

Ilia
30.03.2018
21:44:36
Al
30.03.2018
21:45:40
Ilia
30.03.2018
21:46:10
как скажешь. скучно
А чего ты полез, он уже был доволен, проблему решил ... Пусть себе развлекается.

Al
30.03.2018
21:47:16
Да не прав ты. Очень много чего может быть исключительным.
не может. если ты сначала подготовишь и проверишь все данные а потом их запишешь в базу. база это долговременное харнилище и писать туда все что попало просто лишено смысла

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

Ilia
30.03.2018
21:48:17
Al
30.03.2018
21:49:19
Это ты про DSS системы говоришь, про хранилища данных. А у него может Oltp. Все может быть. Это его уже дело.
при современных наличиях обьемов оперативки на серверах. скидывать все гавно сразу в базу на диски вообще безсмысленно. особенно если тебе нужно его проверять на всякие исключения

Google
Ilia
30.03.2018
21:52:46
Да разные задачи есть. Где так где эдак...

Al
30.03.2018
21:57:38
Да разные задачи есть. Где так где эдак...
задачи то разные но зачем их решать через зад и при этом излишне нагружать железо?

Alex
30.03.2018
21:58:10
это если есть железо :)

Al
30.03.2018
21:59:34
уже не раз обсуждали. да базы могут дофига всякого. но не потому что это действительно нужно. а потому что рукожопы не видят решений нормальных и выбирают ту базу где есть всякие плюшки, база порешает за них часть проблем. а то что при этом сама база от таких задач подвисает то кому это интересно

это если есть железо :)
в данном случае я имел ввиду железо базы

Crestoff
31.03.2018
17:56:58
Привет! Ребят помогите с запросом

SELECT sum(revenue) FROM log_profit WHERE time = (SELECT max(time) FROM log_profit)

короче суть в том что нужно взять значение по последнему времени

хотелось бы без селекта в WHERE

Crestoff
31.03.2018
18:14:06
типа отсортировать по времени?

Al
31.03.2018
18:18:19
типа отсортировать по времени?
прикинь как гениально :) и взять из последних сколько тебе нужно

Crestoff
31.03.2018
18:18:52
очень остроумно ;)

спасибо

Страница 468 из 718