У нас есть проблемы с тупиком в нашей системе Prod.(Это товар производителя).Вот график взаимоблокировок, который я получаю от Idera.
В основном оператор блокировки обновляется с оператором Select, оператор Select стал жертвой взаимоблокировки.
Оператор обновления:
UPDATE ard
SET ard.premanifest_flag = ISNULL(pka.premanifest_flag, N'N'),
ard.work_type =
CASE
WHEN ISNULL(@in_vchOverrideWorkType, N'') = N'' THEN ISNULL(ard.work_type, ISNULL(pka.work_type, N'03'))
WHEN @in_vchOverrideWorkType = N'00' THEN ISNULL(ard.work_type, ISNULL(pka.work_type, N'03'))
ELSE @in_vchOverrideWorkType
END
FROM t_af_result_data ard
LEFT JOIN t_pick_area pka WITH (NOLOCK)
ON ard.pick_area = pka.pick_area
AND ard.wh_id = pka.wh_id
WHERE ard.batch_guid = @in_uiGuid
AND thread_guid = @in_uiThreadGui
Оператор выбора:
SELECT
@v_nRowCount = COUNT(DISTINCT thread_guid),
@v_nThreadErrorFlag =
CASE
WHEN (SELECT
COUNT(1)
FROM t_af_result_data ard1
WHERE ard1.thread_status = N'E'
AND ard1.batch_guid = @in_uiGuid)
> 0 THEN 1
ELSE 0
END
FROM t_af_result_data
WHERE ISNULL(thread_status, N'C') NOT IN (N'C', N'E')
AND batch_guid = @in_uiGui
Я создал некластеризованный индекс для t_af_result_data для столбцов (thread_status, batch_guid).некластеризованный индекс по столбцам t_af_result_data (pick_area, wh_id) некластеризованный индекс по t_pick_area (pick_area, wh_id).Однако тупик сохраняется, вы можете посоветовать?
Спасибо