Ответы пользователя по тегу SQL Server
  • Как гарантировать монотонное увеличение значения поля при параллельных транзакциях с максимальным быстродействием?

    @Vitsliputsli
    А почему транзакция? Или они неявные? Инсерт должен быть атомарным или все таки итерирование сиквенса и следующая вставка не атомарны?
    В любом случае, вы решаете не ту задачу. Если идет гонка, значит события одномоменты и нам должно быть без разницы в каком порядке они отработают. Но, раз это важно, значит эти события зависимы, если так, то манипуляции с вставкой не помогут, сегодня вы победите порядок коммитов, а завтра будет гонка при получении сиквенса и тут уже ничего не сделаешь. Зависимые события должны обрабатываться последовательно в одном потоке, т.е. в вашем случае их должен обрабатывать один продюсер, иначе никак, если даже сегодня заработает, то завтра малейшая флуктуация поменяет порядок. Как альтернатива вы можете построить сложную логику проверки зависимостей, но контролировать такой код будет гораздо сложнее.
    Ответ написан
    Комментировать
  • Как установить отношение между таблицами?

    @Vitsliputsli
    Собственно в ошибке все написано, столбец Users.Login не является ни PK, ни UNIQUE. Собственно, сделайте его таковым.
    Ответ написан
    4 комментария
  • Как создать таблицу, для хранения истории изменений?

    @Vitsliputsli
    Наверное, самое оптимальное сделать поле с временем изменений. Если оно заполнено, то это история, если не заполнено, то актуальное состояние. Чтобы не усложнять запросы, создать триггеры на выборку, update/delete, выполняющие операции с этим полем, а для пользователя его как бы и нет, кроме специфических вопросов по истории. И, конечно, настроить партиционирование таблицы чтобы актуальное и история хранились физически отдельно.
    Ответ написан
    Комментировать