Как удалить данные за период и проверить на целостность?
Какими командами сделать трункейт данных и оставить данные за последний год?
Если есть партиции  - удаляете партиции

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 Не помешали бы бекапы и прочее прочее
Про удаление написал ScriptKiddo.
Целостность данных нужно не проверять, а регулировать (ограничивать) внешними ключами.  Перед очисткой проверьте, что бы у них были правильно указаны ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Создание связей по внешнему ключу.