That are heavy operations that cause a long-running (additional) workload for your SQL Server.
I would recommend an additional step in the restructuring of the database... create additional data files for those big tables that can separate those tables from the others and make maintenance on these files much more effortless.
Recommended steps to be performed:
- create FULL backup
- pause data movement in AG
- pause replication jobs
- shrink datafiles with EMPTYFILE
- reorg/rebuild indexes
- update stats
Regarding "blocking" you can find some advice in the documentation.
https://learn.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-shrinkfile-transact-sql?view=sql-server-ver16#examples
I hope my answer is helpful to you,
Your
Bjoern Peters
If the reply was helpful, please upvote and/or accept it as an answer, as this helps others in the community with similar questions. Thanks!