в таблицу с read uncommitted isolation level, то могут появиться дубликаты из-за этого?
дубликаты могут появиться если нет уникальности на колонках, а не от уровня изоляции
Read uncommitted как бы в названии намекает на то что это чтение 😏
И тем не менее в коде твоих процедур может быть что-то такое, что вызывает (точнее -не предотвращает) твои дубликаты. И это может быть связано с read uncommitted, хотя не обязательно. Необходимость сделать уникальный индекс это не отменяет.
это Azure dedicated pool, уникальный индекс есть, но он not enforced потому что другие не поддерживаются, есть ещё distinct и where not in для проверки на дубликаты, но мне интересно было возможна ли в принципе ситуация при которой 2 одинаковые сторд проки могут из-за локов или уровней изоляции инзёртить дубликаты, если они ранятся одновременно
Чисто теоретически могут
я надеюсь ты таки разобрался и просто повторил вопрос, потому что ты ща продолжил нести бред
Давай разберёмся с терминологией. Что мы можем называть дубликатами это запись в которых значение определённых ключевых полей одинаковые . Для того чтобы это выявлять нужен уникальный индекс. Если у тебя нету уникального индекса у тебя не может быть дубликатов. А если у тебя есть индексы уникальные на то, что у тебя определяет дубликат, то дубликат у тебя в базе данных никогда не появятся. Ещё я не понимаю совершенно всяческие слова про индексы уникальные которые вроде как есть но вроде как нету Если он выключен Значит его нету стало бы тебе надо его включить, чтобы он был а не разбираться в теориях
Если ты надеешься на то что ты сможешь только на проверках в хранимых процедурах избавиться от дубликатов, то это надежда очень плохая Потому что ты это сделать не сможешь это невозможно. Потому что любая проверка - это операция чтения а любая запись - это операция записи они выполняются на разных Ой как бы сказать на разных логических уровнях в базе данных ты можешь даже писать select..for update и это будет как бы на одном уровне потому что это уже будет операция записи, но всё равно транзакции которые должны проверять уникальное наличие каких-то записей они должны выполняться на уровне изоляции serialisable Это самый высший уровень изоляции и без уникальных индексов ты это не сделаешь
а давно дубликаты стали обязательно в рамках ключевых полей существовать?
Так я же написал что их не может быть наоборот
Обсуждают сегодня