всем привет! подскажите пожалуйста как можно оптимизировать часть скрипта. Понимаю что использовать not in (select…) плохо, но другой вариант в голову не приходит
Например, а таблице @tbl есть строки с id 1,2,3,4,5.
В таблице FM_BILLDET есть строки со связью с таблицей FM_CLINK_PATIENTS (в @tbl содержаться id из этой таблицы) для id 3,4,5.
Нужно удалить строки 1,2, остальные не трогать.
delete from FM_CLINK_PATIENTS where FM_CLINK_PATIENTS_ID in (select tbl1.FM_CLINK_PATIENTS_ID from @tbl tbl1
where tbl1.FM_CLINK_PATIENTS_ID not in
(select FM_CLINK_PATIENTS_ID from FM_BILLDET
where FM_BILLDET.FM_CLINK_PATIENTS_ID in (select FM_CLINK_PATIENTS_ID from @tbl)))
эта часть работает, но выполняется очень долго, а иногда вообще может повиснуть