Я работал с подобной проблемой, и в моей таблице было около 8 миллионов строк с 43 столбцами.Удаление индексов, усечение таблицы, выполнение массовой вставки, воссоздание индексов - это все еще выполняется довольно быстро, учитывая объем данных, и я выполняю эту задачу в непиковые часы.
Если выЕсли вы хотите избежать использования TRUNCATE
, вы можете создать процедуру для выполнения усечения и использовать пользователя с соответствующими правами.То есть, если предоставление разрешения пользователю задания является причиной, по которой вы хотите избежать использования команды усечения:
CREATE PROCEDURE dbo.TruncateTableName
WITH EXECUTE AS 'SqlUserWithTruncatePermission'
AS
BEGIN
TRUNCATE TABLE TableName
END
GO
Если вы хотите попробовать это, вы можете прочитать больше по адресу:
http://msdn.microsoft.com/en-us/library/ms188354(v=SQL.90).aspx
Аналогично, для других действий, которые требуют больше разрешений, чем вы хотите, вы можете последовать их примеру ...