Показать сообщение отдельно
Старый 09.12.2015, 14:57   #1  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
кастомизация сущностей: производительность интерфейса
всем привет.

интерфейс кастомизации сущностей адски тормозит .
админ.-> настройки-> настроить систему. или попроще: tools/systemcustomization/Attributes/attributeList.aspx?appSolutionId=%7bFD140AAF-4DF4-11DD-BD17-0019B9312238%7d&entityId=%7bE6A90DE2-30AF-4451-9DE9-E5B8565242E4%7d&pagemode=iframe

в буквальном смысле страница по урлу открывается по 15-20 секунд (это список атрибутов, который в "настройке системы" грузится в айфрейм)

SQL Profiler показывает в основном 2 типа запросов:

1) запрос самой сущности (entityasIfPublished)

Код:
exec sp_executesql N'SELECT [EntityId] AS [entityid],
	[EntityRowId] AS [entityrowid],
(мильярд полей пропущу)
[CanCreateViews] AS [cancreateviews] FROM [EntityAsIfPublishedView] 
WHERE EntityId = @EntityIdwhere0 AND OverwriteTime = @OverwriteTimewhere0',
N'@EntityIdwhere0 uniqueidentifier,@OverwriteTimewhere0 int',@EntityIdwhere0='E6A90DE2-30AF-4451-9DE9-E5B8565242E4',@OverwriteTimewhere0=0
2) и сами атрибуты (asIfPublished)
Код:
exec sp_executesql N'SELECT [AttributeId] AS [attributeid],
	[AttributeRowId] AS [attributerowid],
(мильярд полей опять пропущу) 
	[CanModifyAuditSettings] AS [canmodifyauditsettings] FROM [AttributeAsIfPublishedView] 
WHERE EntityId = @EntityIdwhere0 AND DisplayMask & 256 = @DisplayMaskwhere0',
N'@EntityIdwhere0 uniqueidentifier,@DisplayMaskwhere0 int',@EntityIdwhere0='E6A90DE2-30AF-4451-9DE9-E5B8565242E4',@DisplayMaskwhere0=256
ну еще по мелочи типа LocalizedLabel для атрибутов.

смущает меня только одно: эти 2 запроса повторяются десятки, если не сотни раз.

зачем столько раз дергать базу? в чем причина и как от этого избавиться ?