Наткнулся на ужасную проблему производительности при создании представления в БД.
Ситуация такая, что в таблице, по которой работает View очень-очень много данных. Но по ключевым полям построены индексы и если делать деталь по самой таблице, то всё ок.
Но мне потребовалась небольшая агрегация данных, я сделал View.
В итоге SELECT * FROM myView WHERE UsrMyId = '' отрабатывает мгновенно, но при создании детали на этом представлении система генерирует какой-то бешеный запрос
exec sp_executesql N'
SELECT
[myView].[Id] [Id],
...мои поля...
(
SELECT
COUNT([SubEntryPoint].[Id]) [Count]
FROM
[dbo].[EntryPoint] [SubEntryPoint] WITH(NOLOCK)
WHERE
[SubEntryPoint].[EntityId] = [myView].[Id]
AND [SubEntryPoint].[IsActive] = @P2) [SubEntryPoint]
FROM
[dbo].[myView] [myView] WITH(NOLOCK)
WHERE
[myView].[UsrMyId] = @P1
ORDER BY
[UsrServiceName] ASC OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY',N'@P1 nvarchar(32),@P2 bit',@P1=N'bc1fc0d8f6d98c04b93a8fb1070f4766',@P2=1
который дико бешено тормозит!
Можно ли заставить деталь сделать более простой и очевидный запрос?