Задать вопрос
  • C# SqlTransaction блочит таблицу, как обойти блокировку или что делаю не так?

    @saneok44 Автор вопроса
    Да я также думаю, передавать в мелкие методы транзакции благо они у меня как базовые методы взаимодействия с базой. Буду наследовать класс с мелкими методами для класса с крупными и передавая или задавая транзакцию для крупного метода мелкие методы будут выбирать альтернативное подключение как транзакция.
    Протестил разные варианты:
    Оказывается нет блокировки таблицы, блокировка идет как то на уровне библиотеки. Кака я это понял:
    Стартанул проект и сделал два подключения к сайту через два разных браузера и учетки. Одна учетка дернула метод с транзакцией которая эмулировала долгую транзакцию, а вторая учетка сделала запрос к таблице и никакой блокировки. Даже если я в двух браузерах авторизуюсь под одной учеткой sql тоже нет блокировки тб.
    Блокировка идет только из текущего запущенного потока подключения пользователя. Т.е. если запущена транзакция в работе и до коммита идет метод по подключению к базе, то этот метод коннектится к базе но запрос по таймауту вываливается, и чтобы это избежать нужно этот запрос включить в транзакцию. Заметил еще что это блокировка срабатывает когда были внесены изменения и эта блокировка распространяется только на текущий поток приложения. И такое ощущение что это не на уровне ядра блокировка ...
    P.S. Повторюсь мелкие методы у меня подключаются не по ACID а обычным способом.
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    Спасибо за совет, сегодня провели анализ нагрузки и пришли к выводу, что из за роста объема данных некоторые тяжеловесные запросы стали нагружать sql. Пришли к выводу , что надо пытаться оптимизировать некоторые запросы и минимизировать запросы со стороны клиента когда данные ему вообщем то не нужны и грузить их лишний раз не стоит.

    На счет уникально ID запроса ... тут я не знаю как прокомментировать. У нас в sql есть учетные данные входа по котором пользователь авторизуется и работает с базой, есть так же дефолтная учетка для неавторизованных пользователей. Все веб приложения используют учетные данные входа и тут я думаю нужно наверное какой то уникальный ID делать в связке приложение + учетка sql. Может это уже под капотом есть IIS + SQL пока не могу сказать. Не давать стакать запросы пока не завершиться первый ... ну это так бешенная идея
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    Akina, На уровне интерфейса это нереально. Заблокировать web интерфейс? Пользователь обновит страницу и повторит. Один вариант крутится в голове это сделать свой планировщик, но это геморно втискивать его уже в работающую систему.

    Вы правильно сказали все, куча разрозненных операций, неконтролируемых sql. Весь контроль идет на бекенде (в коде) не в транзакциях
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    Akina, это вы говорите про полную транзакцию, которая проверяет и создает объект в одной транзакции. У нас все операции разбиты на мелкие транзакции. Транзакция на проверку, транзакция на запись, транзакция. Т.е. например таблица обджект обладает 5 поляуми. Объект заполняется не одним запросом, а мелкими. Например чтобы создать тело объекта, я проверю некоторое условие в базе, потом отправлю трнзакцию на создание объекта т.е. выдам ему ID потом имея ID создам в таблице Свойств уникальную пару ID, СВойство ID, и запишу например число. Как буд то вы работает с ООП. Мелкие запросы. Вот тут и возникает параллельный доступ к данным и коллизии.
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    есть главный объект (узел) у него дочернии объекты со своими свойствами. Свойства уникальны в пределах объекта. Т.е. уникальность на уровне свойств имеется. Уникальность у объекта только по id. Из за подвисуна может создасться два таких объекта. Потому что пользователь не дождался предыдущей транзакции, обновил страницу и нажал создать снова
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    res2001, но у нас уникальность на уровне свойств объекта. От создания самого объекта это не спасет
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    Akina, но у нас уникальность на уровне свойств объекта. От создания самого объекта это не спасет
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    Да так и есть. Это спасло. Но хотелось бы больше контроля над такими ситуациями
  • Как избежать коллизии по данным?

    @saneok44 Автор вопроса
    У нас было раньше два сервера. Один из которых был старый и на нем были некоторые ресурсозатратные операции. Как то жили и вытягивали. Потом по определенным причинам, пришлось объединить базы на один сервер. И при разовой высокой нагрузке по расчету годовому, стали наблюдаться как раз таки проблемы. Что транзакция стала подвисать, а пользователь он такой неудержимый. Обновляет страницу и и снова создает запрос на создание объекта из за чего появляется ошибка по уникальному ключу
  • Как сделать чтоб matplotlib не сжимал график по оси x с датой?

    @saneok44 Автор вопроса
    в день 20 значений интервал между значениями 40 минут

    Time OU d6
    0 2021-04-01 08:40:00 18.09250 2.653730
    1 2021-04-01 09:20:00 17.83270 2.652515
    2 2021-04-01 10:00:00 17.76485 2.875300
    3 2021-04-01 10:40:00 17.78840 2.779075
    4 2021-04-01 11:20:00 16.43675 2.252920
    5 2021-04-01 12:00:00 16.77850 2.321055
    6 2021-04-01 12:40:00 16.79925 3.021640
    7 2021-04-01 13:20:00 16.69860 2.683005
    8 2021-04-01 14:00:00 16.40585 2.653540
    9 2021-04-01 14:40:00 16.08060 2.379130
    10 2021-04-01 15:20:00 18.73435 3.918785
    11 2021-04-01 16:00:00 18.83020 3.817415
    12 2021-04-01 16:40:00 18.50240 3.636395
    13 2021-04-01 17:20:00 19.26115 3.756880
    14 2021-04-01 18:00:00 19.50810 3.536345
    15 2021-04-01 18:40:00 19.75310 3.722755
    16 2021-04-01 19:20:00 18.07270 3.473140
    17 2021-04-01 20:00:00 19.30630 3.297215
    18 2021-04-01 20:40:00 19.02105 3.040605
    19 2021-04-01 21:20:00 19.29635 3.272595
    20 2021-04-02 08:00:00 19.30625 3.240815
    21 2021-04-02 08:40:00 18.83615 2.918255
    22 2021-04-02 09:20:00 18.83660 3.359505
    23 2021-04-02 10:00:00 18.50030 3.057500
    24 2021-04-02 10:40:00 18.48485 3.094090
    25 2021-04-02 11:20:00 18.05570 2.888760
    26 2021-04-02 12:00:00 18.28705 3.007945
    27 2021-04-02 12:40:00 18.88825 2.944240
    28 2021-04-02 13:20:00 19.50575 2.947220
    29 2021-04-02 14:00:00 19.77880 2.882345
    30 2021-04-02 14:40:00 19.94455 2.790485
    31 2021-04-02 15:20:00 19.93390 2.992150
    32 2021-04-02 16:00:00 19.46265 3.011550
    33 2021-04-02 16:40:00 18.73950 2.537625
    34 2021-04-02 17:20:00 18.92845 2.597195
    35 2021-04-02 18:00:00 20.63060 3.120630
    36 2021-04-02 18:40:00 23.42440 3.730985
    37 2021-04-02 19:20:00 38.88130 7.395050
    38 2021-04-02 20:00:00 38.54345 8.752200
    39 2021-04-02 20:40:00 36.09285 7.964350
    40 2021-04-02 21:20:00 36.08195 6.758450
    41 2021-04-03 08:00:00 36.14795 6.896700
    42 2021-04-03 08:40:00 34.83880 7.499700
    21 2021-04-02 08:00:00 18.83615 2.918255
    22 2021-04-02 08:40:00 18.83660 3.359505
    23 2021-04-02 09:20:00 18.50030 3.057500
    24 2021-04-02 10:00:00 18.48485 3.094090
    25 2021-04-02 10:40:00 18.05570 2.888760
    26 2021-04-02 11:20:00 18.28705 3.007945
    27 2021-04-02 12:00:00 18.88825 2.944240
    28 2021-04-02 12:40:00 19.50575 2.947220
    29 2021-04-02 13:20:00 19.77880 2.882345
    30 2021-04-02 14:00:00 19.94455 2.790485
    31 2021-04-02 14:40:00 19.93390 2.992150
    32 2021-04-02 15:20:00 19.46265 3.011550
    33 2021-04-02 16:00:00 18.73950 2.537625
    34 2021-04-02 16:40:00 18.92845 2.597195
    35 2021-04-02 17:20:00 20.63060 3.120630
    36 2021-04-02 18:00:00 23.42440 3.730985
    37 2021-04-02 18:40:00 38.88130 7.395050
    38 2021-04-02 19:20:00 38.54345 8.752200
    39 2021-04-02 20:00:00 36.09285 7.964350
    40 2021-04-02 20:40:00 36.08195 6.758450
    41 2021-04-02 21:20:00 36.14795 6.896700
    42 2021-04-03 08:00:00 34.83880 7.499700
  • LSTM keras очень плохой прогноз после тренировки, что я делаю не так?

    @saneok44 Автор вопроса
    freeExec, пробовал код со статьи
    https://machinelearningmastery.com/how-to-develop-...
    Multiple Parallel Input and Multi-Step Output т.е. подаю 1 семпл размерностью 100 получаю допустим семпл из 50 значений.
    подключил свой датасет и loss уходит в Nun функция активации relu, поменял на tanh в nun перестало уходить, но все графики стали себя в какой то мере повторять разница только по высоте графика, но геометрически они себя повторяли. На форумах пишу либо это градиентный срыв либо в датасете есть значения Nun. Значений Nun нету проверял. Пробовал делать градиент отсечки 0.5, nun ушел но графики предсказанные такие себе .. все перетыкал даже не знаю где еще подробной инфы почитать
  • LSTM keras очень плохой прогноз после тренировки, что я делаю не так?

    @saneok44 Автор вопроса
    freeExec, так я подаю на вход вектор из 100 значений и жду одно. Потом собираю новый вектор из 100 но выкидываю первое значение и добовляю новое. И так далее добавляя в вектор новые предикты пока вектор полностью не заполнится только новыми значениями. Как будто то у меня уже был вектор из этих значений и я просто двигал окно на N+1 сто раз. Ведь тренинг так же работает у него есть допустим 990 семплов и в каждом последующем семпле окно сдвинуто на N+1. Только тут я делаю новый семпл сам потому что не имею следующих
  • LSTM keras очень плохой прогноз после тренировки, что я делаю не так?

    @saneok44 Автор вопроса
    freeExec, я оставлял 2 таких вопроса, но что то ответов нет либо ни кто толком не знает либо я как то плохо описывал что хотел. Ну вот смотрите у меня есть допустим 1000к датасет я его разбиваю на 990 семплов в каждом 100 значений сиквенции предсказание + одно число и на выходе я получаю (990,1 ) шейп с предскантем сетки. т. Е. Я могу в фит запихать всю выборку потому что знаю ее. П в случае с предсказанием за выборку Я могу подать в предикт только 1 семпл и получить 1 предик. Как получит N +2 число? А для этого формировал новый семпл с этим числом на конце и предсказывал новое и теперь уже два новых числа вхонце семпл и так добавлял новые предсказания в семпл пока оно полностью не заменится новыми предсказанными значениями. Суть такая что я вместо одного раза как в тренинге передав 990 семплов получал 990 предиктов делал итеративный вызыв предикт N кол-во раз чтобы получить N кол-ва предиктов.

    Проблема в том что с тренингом предсказнте сети нормально но вот предсказание за датасет ужасное
  • LSTM прогнозирование на 1 шаг, как спрогнозировать на N шагов?

    @saneok44 Автор вопроса
    И да я делал по тем примерам, и у меня срывало градиент loss: nan
    Пробовал Dropout(0.2) перестало срывать, но по итогу предсказание сводилось к 0
  • LSTM прогнозирование на 1 шаг, как спрогнозировать на N шагов?

    @saneok44 Автор вопроса
    Здравствуйте, у меня второй столбец это показания тока а первый вибрации, я беру окно размером N в котором col1: i ... i+100, col2: i...i+100 и прогнозирую на шаг вперед, таргет значение col1: i+101 и так далее.
    Пример я брал с сайта https://machinelearningmastery.com/how-to-develop-...
  • Нейросеть для прогнозирования неисправности, какую выбрать?

    @saneok44 Автор вопроса
    дела в прогнозировании наперед неисправности, а не тут и сразу
  • Обратное распространение ошибки. Почему такая разница в знаках формулы при одинаковом подходе?

    @saneok44 Автор вопроса
    Да про регулярную нейронку наслышан, ну это хайлвл для меня)
  • С# Taks и Invoke почему то блокируется форма?

    @saneok44 Автор вопроса
    Борис Животное, у меня таски лежат в массиве, и пока есть рабочая такска я не запускаю другие такски. Можно конечно с флагом сделать, но вот почему то решил так)
  • С# Taks и Invoke почему то блокируется форма?

    @saneok44 Автор вопроса
    Кстати про события это тема, чет не додумался про такой подход