I recommend you first update stats on system tables before the more heavy-handed suggestions in your question. This can improve performance of thee catalog view queries executed during schema comparison and publish actions.
Below are scripts. one for SQL Server 2016 and earlier and another for later versions.
--system table stats update for SQL 2016 and earlier (uses XML PATH)
DECLARE @SQL nvarchar(MAX) =
(
SELECT
N'UPDATE STATISTICS '
+ QUOTENAME(OBJECT_SCHEMA_NAME(i.object_id))
+ N'.'
+ QUOTENAME(OBJECT_NAME(i.object_id))
+ N';'
FROM sys.indexes AS I
JOIN sys.partitions AS p ON
p.object_id = i.object_id
AND p.index_id = i.index_id
WHERE
OBJECTPROPERTYEX(i.object_id, 'IsSystemTable') = 1
AND i.index_id > 0
AND p.rows > 0
FOR XML PATH(''), TYPE).value('.','nvarchar(MAX)'
);
EXEC sp_executesql @SQL;
GO
--system table stats update for SQL 2017 and Azure SQL Database (uses STRING_AGG)
DECLARE @SQL nvarchar(MAX) =
(
SELECT
STRING_AGG(
N'UPDATE STATISTICS '
+ QUOTENAME(OBJECT_SCHEMA_NAME(i.object_id))
+ N'.'
+ QUOTENAME(OBJECT_NAME(i.object_id))
,';')
FROM sys.indexes AS I
JOIN sys.partitions AS p ON
p.object_id = i.object_id
AND p.index_id = i.index_id
WHERE
OBJECTPROPERTYEX(i.object_id, 'IsSystemTable') = 1
AND i.index_id > 0
AND p.rows > 0
);
EXEC sp_executesql @SQL;
GO