Я бы не стал такой способ применять. Ну во-первых где наши DeleteActions и где фильтрация по компаниям? Во вторых, код на голом SQL всегда сулит проблемы, если что-то сделать неаккуратно. Далее - где обработка эксепшенов и повторов, если что-то залочилось чем-то и нужно повторить? Если проблема блокировок есть, то уровень SQL может усугубить.
Что мешает сделать то же самое на X++? Если правильно приготовить код, то из AX он удаляется ничуть не хуже (отключить логи, отключить DeleteActions и обработать их отдельным шагом?). А ведь DeleteActions как раз таки одна из главных проблем при удалении parent tebles. А где выполняется логика из метода Delete()?
В общем случае задача быстрого удаления голым SQL не решается. Каждую удаляемую сущность нужно анализировать индивидуально, разбивать на последовательные логические шаги. В этом основная сложность и только такой подход применим.
В конечном итоге, если вы удаляете исторические записи с критерием по дате, то проблемы перформанса могут наблюдаться при первом запуске. Далее, если систематично удалять на ежедневной основе, то не вижу особых проблем с производительностью. Как-то так.
|