MSSQL: тупики для таблицы с уникальным кластерным первичным ключомC#

Место общения программистов C#
Anonymous
MSSQL: тупики для таблицы с уникальным кластерным первичным ключом

Сообщение Anonymous »

С помощью следующей таблицы, если я вставлю 100 -х годов строк последовательно, он потерпит неудачу с сообщением «Неудачный запрос с ошибкой» (идентификатор процесса 63) был связан с ресурсами блокировки с другим процессом и был выбран в качестве жертвы тупика. Повторно транзакция ». < /p>
CREATE TABLE [Test].[dbo]. (
[s__id] [int] NOT NULL,
[name] [varchar](255) NOT NULL,
[m] [varchar](255) NOT NULL,
[insert__ts] [datetime2] NOT NULL,,
[sh__id] [int] NOT NULL, -- ddg 87
[sa__id] [int] NOT NULL,
CONSTRAINT s__ship_hull__fk FOREIGN KEY(sh__id) REFERENCES sh(id),
CONSTRAINT s__sa__fk FOREIGN KEY(sa__id) REFERENCES sa(id),
CONSTRAINT s_cpk PRIMARY KEY(s__id, sh__id),
--CONSTRAINT s_cncu_1 UNIQUE NONCLUSTERED(name, m, sh__id),
)
< /code>

setup:
docker mssql 2019
docker debian < /p>
< /blockquote>
Расследование ошибки привело меня к отчету Deadlock на сервере MSSQL. Из того, что я могу интерпретировать, сервер жаловался на это было из -за нескольких вставков и ключа S_CPK. Ранее у меня также был индекс S_CNCU_1, но он также жаловался бы на тупики из этого индекса. Мне нужны эти индексы, и планирую иметь несколько приложений одновременно вставить в БД. Что происходит и что я могу сделать, чтобы обойти тупики?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... rimary-key

Вернуться в «C#»