table2
Table - секционированная таблица с кластерным колумнстор индексом
Проблема - при вставке процесс блочит сам себя и падает с дедлоком.
Это нормально или нет?
Sql Server 2017
tablockx + option(maxdop 1)
Тут сложно сказать в чем причина, но вместо tablock попробуйте для начала использовать rowlock Если не поможет , то удалите ваш индекс на куче. Да будет медленнее работать select, но insert должен отрабатывать без проблем. Если хочется побыстрее то используйте columnstore
да, колумнстор как раз там и есть я уже кажется разобрался в чем причина (хотя не понятно, как это влияет) если повысить уровень изоляции до read committed - проблема не проявляется
вставка с read uncommitted принудительным? а зачем?
в целом в транзации использовался undommitted для чтения данных, а не специально для вставки
Пробовал менять настройки параллелизма?
нет. но думаю, что проблемы в таком случае не будет. если не использовать паралелизм, то половина смысла этого хинта отпадает (вставка паралельными потоками)
https://www.erikdarlingdata.com/sql-server/options-for-fixing-parallel-deadlocks/
Обсуждают сегодня