169 похожих чатов

Всем привет, а если 2 stored procedures одновременно загружают данные

в таблицу с read uncommitted isolation level, то могут появиться дубликаты из-за этого?

10 ответов

14 просмотров

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

Read uncommitted как бы в названии намекает на то что это чтение 😏

И тем не менее в коде твоих процедур может быть что-то такое, что вызывает (точнее -не предотвращает) твои дубликаты. И это может быть связано с read uncommitted, хотя не обязательно. Необходимость сделать уникальный индекс это не отменяет.

Антон-Портнянко Автор вопроса
Ilya Zviagin
И тем не менее в коде твоих процедур может быть чт...

это Azure dedicated pool, уникальный индекс есть, но он not enforced потому что другие не поддерживаются, есть ещё distinct и where not in для проверки на дубликаты, но мне интересно было возможна ли в принципе ситуация при которой 2 одинаковые сторд проки могут из-за локов или уровней изоляции инзёртить дубликаты, если они ранятся одновременно

Антон Портнянко
это Azure dedicated pool, уникальный индекс есть, ...

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

Антон Портнянко
это Azure dedicated pool, уникальный индекс есть, ...

Давай разберёмся с терминологией. Что мы можем называть дубликатами это запись в которых значение определённых ключевых полей одинаковые . Для того чтобы это выявлять нужен уникальный индекс. Если у тебя нету уникального индекса у тебя не может быть дубликатов. А если у тебя есть индексы уникальные на то, что у тебя определяет дубликат, то дубликат у тебя в базе данных никогда не появятся. Ещё я не понимаю совершенно всяческие слова про индексы уникальные которые вроде как есть но вроде как нету Если он выключен Значит его нету стало бы тебе надо его включить, чтобы он был а не разбираться в теориях

Антон Портнянко
это Azure dedicated pool, уникальный индекс есть, ...

Если ты надеешься на то что ты сможешь только на проверках в хранимых процедурах избавиться от дубликатов, то это надежда очень плохая Потому что ты это сделать не сможешь это невозможно. Потому что любая проверка - это операция чтения а любая запись - это операция записи они выполняются на разных Ой как бы сказать на разных логических уровнях в базе данных ты можешь даже писать select..for update и это будет как бы на одном уровне потому что это уже будет операция записи, но всё равно транзакции которые должны проверять уникальное наличие каких-то записей они должны выполняться на уровне изоляции serialisable Это самый высший уровень изоляции и без уникальных индексов ты это не сделаешь

Ilya Zviagin
Давай разберёмся с терминологией. Что мы можем наз...

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

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

Так я же написал что их не может быть наоборот

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
22
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта