Какими командами сделать трункейт данных и оставить данные за последний год?
Если есть партиции - удаляете партиции
https://docs.microsoft.com/ru-ru/sql/t-sql/stateme...
TRUNCATE TABLE PartitionTable1
WITH (PARTITIONS (2, 4, 6 TO 8));
GO
Если партиций нет и данных мало - удалить просто
DELETE FROM table WHERE date <= %date%
Если данных много - сделать задачу в SQL Agent. Количество удаляемых строк оставляете на свое усмотрение
DELETE TOP (1000) FROM table WHERE date <= %date%
Какими командами проверить на целостьность и оптимизировать?
Проверять целостность и логичность - только вручную. Необходимость и возможность удаления ваших данных определяете только вы.
Если нужно проверить, не битая ли база - то используйте команду
DBCC CHECKDB
https://docs.microsoft.com/ru-ru/sql/t-sql/databas...
P.S Не помешали бы бекапы и прочее прочее