Как ускорить процесс удаления на SQL server
I have two tables, having parent-child relation. Each table contains around 14 lakh records. I want to delete data from the parent table along with the associated records in child table. The count of records to be deleted is around 4 lakh. Directly firing a DELETE query in SQL freezes the database server. As the database is being used, I need a solution which will not cause the database to freeze. There are no indexes on both tables, but there are foreign keys in 4 other tables which reference a column of the child table (mentioned above). Is there something which can speed up the delete process without freezing the database?
Что я уже пробовал:
Я попытался запустить запрос на удаление родительской таблицы, который каскадно удаляет записи из дочерней таблицы, но это замораживает сервер базы данных. В настоящее время я использую консольное приложение(созданное с помощью c#), которое получает список папок и удаляет их одну за другой.
Mehdi Gholam
Каков ваш вопрос?
Richard Deeming
Если это на самом деле замораживает сервер-то есть: Windows не отвечает - значит, ваш сервер серьезно недозагружен.
Если это просто вызывает тайм-аут других запросов, то это звучит так, как будто у вас есть более двух связанных таблиц. CASCADE DELETE
включен.
Попробуйте удалить строки небольшими партиями.