powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / deadlock - при обычном SELECT-e
4 сообщений из 4, страница 1 из 1
deadlock - при обычном SELECT-e
    #40124882
zindur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день гуру ...

Последнее время появились много deadlock-ов на обычном селекте, Дев повысили число тредов (30)...
Пробовал емулировать на тест сервере - хоть 100 тредов запускаю никаких deadlock-ов
Где копать?

уреовень транzакции: READ COMMITTED
версия : Server 2019 (RTM-CU8)

deadlock xml.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
<deadlock>
	<victim-list>
		<victimProcess id="process1bc050204e8"/>
	</victim-list>
	<process-list>
		<process id="process1bc050204e8" taskpriority="0" logused="0" waitresource="KEY: 6:72057594085441536 (b16fbaab3d61)" waittime="13615" ownerId="17937102984" transactionname="SELECT" lasttranstarted="2022-01-05T11:06:22.717" XDES="0x1cb568b3be8" lockMode="S" schedulerid="1" kpid="6716" status="suspended" spid="130" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2022-01-05T11:06:22.717" lastbatchcompleted="2022-01-05T11:06:22.713" lastattention="1900-01-01T00:00:00.713" clientapp="ApplicationNAme" hostname="60cc24f99c51" hostpid="0" loginname="LoginName" isolationlevel="read committed (2)" xactid="17937102984" currentdb="6" currentdbname="SNCF_PROD_E2M" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
			<executionStack>
				<frame procname="adhoc" line="1" stmtend="1838" sqlhandle="0x02000000d3360107ecf4d4603459bdeaa213508e01ae7d170000000000000000000000000000000000000000">  unknown    </frame>
				<frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">  unknown    </frame>
			</executionStack>
			<inputbuf>  select notificati0_.ID as ID1_172_0_, notificati1_.ID as ID1_174_1_, parameters2_.ID as ID1_173_2_, notificati0_.TimestampCreated as Timestam2_172_0_, notificati0_.PeopleID as PeopleID3_172_0_, notificati0_.TimestampAcknowledged as Timestam4_172_0_, notificati0_.UserNotificationTemplateID as UserNoti5_172_0_, notificati1_.HtmlTemplate as HtmlTemp2_174_1_, notificati1_.Name as Name3_174_1_, parameters2_.ParameterCode as Paramete2_173_2_, parameters2_.UserNotificationID as UserNoti4_173_2_, parameters2_.ParameterValue as Paramete3_173_2_, parameters2_.UserNotificationID as UserNoti4_173_0__, parameters2_.ID as ID1_173_0__ from UserNotification notificati0_ inner join UserNotificationTemplate notificati1_ on notificati0_.UserNotificationTemplateID=notificati1_.ID inner join UserNotificationParameter parameters2_ on notificati0_.ID=parameters2_.UserNotificationID where notificati0_.TimestampAcknowledged is null   </inputbuf>
		</process>
		<process id="process1d12674b468" taskpriority="0" logused="520" waitresource="KEY: 6:72057594085441536 (b16fbaab3d61)" waittime="13025" ownerId="17937103045" transactionname="implicit_transaction" lasttranstarted="2022-01-05T11:06:23.057" XDES="0x1ba9b640428" lockMode="S" schedulerid="16" kpid="4992" status="suspended" spid="150" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2022-01-05T11:06:23.060" lastbatchcompleted="2022-01-05T11:06:23.057" lastattention="1900-01-01T00:00:00.057" clientapp="ApplicationNAme" hostname="60cc24f99c51" hostpid="0" loginname="LoginName" isolationlevel="read committed (2)" xactid="17937103045" currentdb="6" currentdbname="SNCF_PROD_E2M" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
			<executionStack>
				<frame procname="adhoc" line="1" stmtend="1838" sqlhandle="0x02000000d3360107ecf4d4603459bdeaa213508e01ae7d170000000000000000000000000000000000000000">  unknown    </frame>
				<frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">  unknown    </frame>
			</executionStack>
			<inputbuf>  select notificati0_.ID as ID1_172_0_, notificati1_.ID as ID1_174_1_, parameters2_.ID as ID1_173_2_, notificati0_.TimestampCreated as Timestam2_172_0_, notificati0_.PeopleID as PeopleID3_172_0_, notificati0_.TimestampAcknowledged as Timestam4_172_0_, notificati0_.UserNotificationTemplateID as UserNoti5_172_0_, notificati1_.HtmlTemplate as HtmlTemp2_174_1_, notificati1_.Name as Name3_174_1_, parameters2_.ParameterCode as Paramete2_173_2_, parameters2_.UserNotificationID as UserNoti4_173_2_, parameters2_.ParameterValue as Paramete3_173_2_, parameters2_.UserNotificationID as UserNoti4_173_0__, parameters2_.ID as ID1_173_0__ from UserNotification notificati0_ inner join UserNotificationTemplate notificati1_ on notificati0_.UserNotificationTemplateID=notificati1_.ID inner join UserNotificationParameter parameters2_ on notificati0_.ID=parameters2_.UserNotificationID where notificati0_.TimestampAcknowledged is null   </inputbuf>
		</process>
		<process id="process1b55efc9848" taskpriority="0" logused="520" waitresource="KEY: 6:72057594085441536 (d85d91a1c53b)" waittime="594" ownerId="17937104178" transactionname="implicit_transaction" lasttranstarted="2022-01-05T11:06:24.777" XDES="0x1cb5ff6c428" lockMode="S" schedulerid="9" kpid="4932" status="suspended" spid="287" sbid="0" ecid="0" priority="0" trancount="1" lastbatchstarted="2022-01-05T11:06:38.550" lastbatchcompleted="2022-01-05T11:06:38.550" lastattention="1900-01-01T00:00:00.550" clientapp="ApplicationNAme" hostname="60cc24f99c51" hostpid="0" loginname="LoginName" isolationlevel="read committed (2)" xactid="17937104178" currentdb="6" currentdbname="SNCF_PROD_E2M" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128058">
			<executionStack>
				<frame procname="adhoc" line="1" stmtend="1838" sqlhandle="0x02000000d3360107ecf4d4603459bdeaa213508e01ae7d170000000000000000000000000000000000000000">  unknown    </frame>
				<frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">  unknown    </frame>
			</executionStack>
			<inputbuf>  select notificati0_.ID as ID1_172_0_, notificati1_.ID as ID1_174_1_, parameters2_.ID as ID1_173_2_, notificati0_.TimestampCreated as Timestam2_172_0_, notificati0_.PeopleID as PeopleID3_172_0_, notificati0_.TimestampAcknowledged as Timestam4_172_0_, notificati0_.UserNotificationTemplateID as UserNoti5_172_0_, notificati1_.HtmlTemplate as HtmlTemp2_174_1_, notificati1_.Name as Name3_174_1_, parameters2_.ParameterCode as Paramete2_173_2_, parameters2_.UserNotificationID as UserNoti4_173_2_, parameters2_.ParameterValue as Paramete3_173_2_, parameters2_.UserNotificationID as UserNoti4_173_0__, parameters2_.ID as ID1_173_0__ from UserNotification notificati0_ inner join UserNotificationTemplate notificati1_ on notificati0_.UserNotificationTemplateID=notificati1_.ID inner join UserNotificationParameter parameters2_ on notificati0_.ID=parameters2_.UserNotificationID where notificati0_.TimestampAcknowledged is null   </inputbuf>
		</process>
	</process-list>
	<resource-list>
		<keylock hobtid="72057594085441536" dbid="6" objectname="dbo.UserNotification" indexname="IX_UserNotification_TimestampAcknowledged_andIncludedCols" id="lock1ce4cb29880" mode="X" associatedObjectId="72057594085441536">
			<owner-list>
				<owner id="process1b55efc9848" mode="X"/>
			</owner-list>
			<waiter-list>
				<waiter id="process1bc050204e8" mode="S" requestType="wait"/>
			</waiter-list>
		</keylock>
		<keylock hobtid="72057594085441536" dbid="6" objectname="dbo.UserNotification" indexname="IX_UserNotification_TimestampAcknowledged_andIncludedCols" id="lock1ce4cb29880" mode="X" associatedObjectId="72057594085441536">
			<owner-list>
				<owner id="process1bc050204e8" mode="S" requestType="wait"/>
			</owner-list>
			<waiter-list>
				<waiter id="process1d12674b468" mode="S" requestType="wait"/>
			</waiter-list>
		</keylock>
		<keylock hobtid="72057594085441536" dbid="6" objectname="dbo.UserNotification" indexname="IX_UserNotification_TimestampAcknowledged_andIncludedCols" id="lock1ce3eeee400" mode="X" associatedObjectId="72057594085441536">
			<owner-list>
				<owner id="process1d12674b468" mode="X"/>
			</owner-list>
			<waiter-list>
				<waiter id="process1b55efc9848" mode="S" requestType="wait"/>
			</waiter-list>
		</keylock>
	</resource-list>
</deadlock>




Спасибо
...
Рейтинг: 0 / 0
deadlock - при обычном SELECT-e
    #40124887
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zindur,

У Вас не "просто селект", а открыты две неявные транзакции и один запрос, то есть происходит вставка в двух процессах, скорее всего. Отсюда взаимоблокировка.
...
Рейтинг: 0 / 0
deadlock - при обычном SELECT-e
    #40124949
zindur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

упс, спасибо, не заметил transactionname="implicit_transaction" слепота я :)
Но для простого селекта вродебы не должно так критично перейти в deadlock - я потестил в транзакции (и SET IMPLICIT_TRANSACTIONS ON и BEGIN TRAN ...) и никаких деадлоков
...
Рейтинг: 0 / 0
deadlock - при обычном SELECT-e
    #40124950
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zindur
Владислав Колосов,

упс, спасибо, не заметил transactionname="implicit_transaction" слепота я :)
Но для простого селекта вродебы не должно так критично перейти в deadlock - я потестил в транзакции (и SET IMPLICIT_TRANSACTIONS ON и BEGIN TRAN ...) и никаких деадлоков


Если есть "implicit_transaction", да ишо и mode="X" => есть инсерт или апдейт.
ВашЪ КО.

ЗЫ. Суслика не всегда видно. Но он есть.

ЗЗЫ. Хотя... могет вы хинты любите в селекты пихать?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / deadlock - при обычном SELECT-e
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]