Een groot nadeel van NAV is dat het soms niet heel erg lekkere queries geeft naar de SQL Server, waardoor er best veel statistieken worden opgebouwd. Om dat te verhelpen (en hopelijk de snelheid weer wat hoger te krijgen) kun je het Artikel van Jörg A. Stryk eens lezen en toepassen. Even zonder uitleg, maar alleen de scripts:

Read Auto-stats:

select [id], [object_name] = object_name([id]), [name] from sysindexes
where (indexproperty([id], [name], N'IsStatistics') = 1)
and (indexproperty([id], [name], N'IsAutoStatistics') = 1) -- Filter on Auto. Stats
and (isnull(objectproperty([id], N'IsUserTable'),0) = 1)
order by object_name([id])

Drop auto-stats:

set statistics io off
set nocount off
 

declare @id int, @name varchar(128), @statement nvarchar(1000)
declare stat_cur cursor fast_forward for
select [id], [name] from sysindexes
where (indexproperty([id], [name], N'IsStatistics') = 1)
and (indexproperty([id], [name], N'IsAutoStatistics') = 1) -- Filter on Auto. Stats
and (isnull(objectproperty([id], N'IsUserTable'),0) = 1)
order by object_name([id])

open stat_cur
fetch next from stat_cur into @id, @name
while @@fetch_status = 0 begin
set @statement = 'DROP STATISTICS [' + object_name(@id) + '].[' + @name + ']'
begin transaction
print @statement
exec sp_executesql @statement
commit transaction
fetch next from stat_cur into @id, @name
end

close stat_cur
deallocate stat_cur

Create index-stats:

exec sp_updatestats
go
exec sp_createstats 'indexonly'

Create index-stats zou eigenlijk elke dag uitgevoerd moeten worden. Als je dan een keer per week een full statistics rebuild doet (door middel van de "update statistics" in de Maintenance plan wizard.

Als je de definitie van een veld aanpast wat onderdeel is van een index, kun je een melding krijgen the "ALTER TABLE ALTER COLUMN" niet werkt. Je moet dan de "User stats" verwijderen voordat je de objecten aanpast:

set statistics io off
set nocount off
 

declare @id int, @name varchar(128), @statement nvarchar(1000)
declare stat_cur cursor fast_forward for
select [id], [name] from sysindexes
where (indexproperty([id], [name], N'IsStatistics') = 1)
and (indexproperty([id], [name], N'IsAutoStatistics') = 0) -- Filter on User Stats
and (isnull(objectproperty([id], N'IsUserTable'),0) = 1)
order by object_name([id])
open stat_cur
fetch next from stat_cur into @id, @name
while @@fetch_status = 0 begin
set @statement = 'DROP STATISTICS [' + object_name(@id) + '].[' + @name + ']'
begin transaction
print @statement
exec sp_executesql @statement
commit transaction
fetch next from stat_cur into @id, @name
end
close stat_cur
deallocate stat_cur

Als je klaar bent met de aanpassingen moeten de statistieken opnieuw worden gemaakt door middel van  SP_Createstats 'indexonly"

 Bron: https://dynamicsuser.net/nav/b/stryk/posts/index-statistics