Я хочу удалить данные из базы данных, что таблицы имеют отношение, я должен запрашивать таблицы для удаления данных из родительского и дочернего с dapper. это очень медленно. я удаляю alot данные (миллионы записей) 45 секунд, но delete Несколько строк выполняют в 2 минуты, как выполнить это с быстротой и быстротой?
var deletequery = @"delete from DailyCodeDetail " +
@" from DailyCodeDetail dcd inner join DailyCode" +
@" dc on dcd.DailyCodeId = dc.id inner join DailyResult d on d.id=dc.DailyResultId " +
@"where d.PersonId =@Personid and dcd.DateAttendance >= @sDate and dcd.DateAttendance <= @eDate";
connection.Execute(deletequery, new { Personid = personId, sDate = sdate, eDate = edate }, commandTimeout: 1000);
Производительность dapper (или любой другой клиентской технологии) имеет значение только для количества запросов и количества возвращаемых строк. Ваш запрос выполняется нечасто (но он много работает). Выступление Даппера здесь не имеет значения. Все Dapper делает ретрансляцию запроса на SQL Server.
Теперь вы должны оптимизировать свой запрос. Это не может быть сделано как часть этого вопроса, потому что у нас почти нет информации о таблицах и данных. Возможно, просто невозможно выполнить запрос быстрее, потому что он выполняет много работы DML.
Вероятно, вам следует немного изучить вопрос о том, как «массовое удаление» в SQL Server. Это поможет вам.