AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2024, 17:41   #1  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Lankey Посмотреть сообщение
Кстати, зодно заметила, что на форме DirPartyTable, если посмотреть используемый запрос (Form info->show hidden elements), то там в (стандартном, форма не модифицирована) запросе есть
DirPartyTable.INVALID FIELD = DirNAmeAffix.RecId
и
DirPartyTable.INVALID FIELD = DirNameSequence.RecId
То есть, будто база не синхнонизирована.
У вас тоже так?


Installed product version 10.0.37
Platform version Update61
У меня в 10.0.38 точно также и мне кажется что это только потому, что Form information не умеет толком с наследованием таблиц работать и не показывает поля из дочерних таблиц (хотя по ним как раз есть какие-то условия для joinов)
А по поводу индексов - я бы тупо написал небольшие скриптики для переиндексации нужных таблиц (через классы Connection и Statement) и выполнил бы их в PROD через вот этот механизм.
За это сообщение автора поблагодарили: Logger (3), MorpheusX (1), Lankey (1).
Старый 31.01.2024, 17:31   #2  
Lankey is offline
Lankey
Участник
 
67 / 15 (1) ++
Регистрация: 19.05.2020
Извините, что снова к вам...
За ночь обновили базу в PrePROD новой версией с PROD. Заново прогнала reindex, чтобы убедиться, что точно дело в индексах (вчера, как только переиндексировала, то сразу стала форма открываться) и .... никакого эффекта. Создание новой записи в GAB (кнопка "New") висит снова по полчаса. За эти полчаса два раза появляется сообщение, что предлагает продолжать ждать. И в конце концов вываливается сообщение,что запись в DirPartyRelationship не может быть выбрана
В LCS посмотрела, нет блокировок (и заодно в dbo.sysprocesses перепроверила. Там тоже нет блокировок. Зато у моего процесса заметила lastwaittype = SOS_SCHEDULER_YIELD)
На SQL сервере ничего больше нет, только "мой" запрос и у него ... logical reads = 1 366 710 036 и растет. Ну то есть, просто умопомрачительно много, хотя все индексы переделала в используемых таблицах. Может быть, что кэш старый и обновленные индексы не влияют на исполнение запроса?
DROPCLEANBUFFERS не могу прогнать(прав нет) , как и FREEPROCCACHE(plan_handle) для конкретного плана. Хотя, надо сказать, что у плана creation_time свежий, то есть, он создан уже после индексации создан. План этот содержит placeholders, т.е параметры с @
Если запускаю через sql server management studio запрос, отловленый traceParcer , т.е уже с подставленными параметрами, то мгновенно выполняется.

Что делать-то ?

Последний раз редактировалось Lankey; 31.01.2024 в 17:45.
Старый 31.01.2024, 18:39   #3  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,895 / 5650 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Вообще в Azure SQL DBCC Freeproccache() не работает. Надо пользоваться синтаксисом
Код:
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE <plan_handle>
или просто
Код:
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE
Прав для этого в тестовых инстанцах должно хватать (только что проверил).
Еще есть вариант, что у вас там самооптимизатор SQL Server ухитрился сам себе прописать plan guide. (Я, правда, такого никогда не видел, но как гипотеза). Так что если чистка кэша не поможет, ищите список plan guide и нету ли там вашего запроса.
Еще любопытно, а как, собственно, этот висящий запрос выглядит ? Я сталкивался с тем, что если у вас в форме определены saved views, то генератор запросов сходит с ума и добавляет в запрос многократно продублированные копии какой-то таблицы и десятки (если не сотни) каких-то достаточно странных range. Если такое случилось, SQL может вместо обычных миллисекунд думать эдак минуту-полторы.
Старый 31.01.2024, 18:53   #4  
Lankey is offline
Lankey
Участник
 
67 / 15 (1) ++
Регистрация: 19.05.2020
X++:
(@P1 bigint,@P2 bigint,@P3 int,@P4 int,@P5 int,@P6 int,@P7 int,@P8 int)
SELECT T1.CHILDPARTY,T1.LEGALENTITYDATAAREAID,T1.PARENTPARTY,T1.RELATIONSHIPTYPEID,
T1.VALIDFROM,T1.VALIDFROMTZID,T1.VALIDTO,T1.VALIDTOTZID,T1.SCHEMAVERSION,T1.RECVERSION,
T1.PARTITION,T1.RECID,T2.CHILDPARENTNAME,T2.CHILDPARTYTYPE,T2.DESCRIPTION,
T2.ISSYMMETRIC,T2.PARENTCHILDNAME,T2.PARENTPARTYTYPE,T2.RELATIONSHIPTYPEID,T2.SYSTEMTYPE,
T2.RECVERSION,T2.PARTITION,T2.RECID,T3.NAME,T3.RECVERSION,T3.RECID,T3.INSTANCERELATIONTYPE,T4.NAME,T4.RECVERSION,T4.RECID,
T4.INSTANCERELATIONTYPE 

FROM DIRPARTYRELATIONSHIP T1 CROSS JOIN DIRRELATIONSHIPTYPETABLE T2 

LEFT OUTER JOIN DIRPARTYTABLE T3 
ON ((T3.PARTITION=5637144576) AND (T1.CHILDPARTY=T3.RECID)) 

LEFT OUTER JOIN DIRPARTYTABLE T4 
ON ((T4.PARTITION=5637144576) AND (T1.PARENTPARTY=T4.RECID)) 
WHERE ((T1.PARTITION=5637144576) AND ((T1.PARENTPARTY=@P1) OR (T1.CHILDPARTY=@P2))) 
AND ((T2.PARTITION=5637144576) AND (((T2.SYSTEMTYPE<@P3) OR (T2.SYSTEMTYPE>@P4)) 
AND (T1.RELATIONSHIPTYPEID=T2.RELATIONSHIPTYPEID))) 

AND 
(EXISTS (SELECT 'x' FROM DIRPARTYRELATIONSHIPSUNIONVIEW T5 
WHERE ((T5.PARTITION=5637144576) 
AND (((T5.SYSTEMTYPE<@P5) OR (T5.SYSTEMTYPE>@P6)) AND (T1.CHILDPARTY=T5.OTHERPARTY))))) 
AND 

(EXISTS (SELECT 'x' FROM DIRPARTYRELATIONSHIPSUNIONVIEW T6 
WHERE ((T6.PARTITION=5637144576) AND (((T6.SYSTEMTYPE<@P7) OR (T6.SYSTEMTYPE>@P8)) AND (T1.PARENTPARTY=T6.OTHERPARTY))))) 
ORDER BY T1.VALIDFROM DESC OPTION(FAST 8)
В dirPartyTable 84024 записи
В dirPartyRelationship 284046 записи
В dirRelationshipTypeTable 42 записи

В трейспарсере то же самое, но с подставленными значениями

Последний раз редактировалось Lankey; 31.01.2024 в 18:57.
Старый 31.01.2024, 19:02   #5  
Lankey is offline
Lankey
Участник
 
67 / 15 (1) ++
Регистрация: 19.05.2020
X++:
SELECT T1.CHILDPARTY,
	T1.LEGALENTITYDATAAREAID,
	T1.PARENTPARTY,
	T1.RELATIONSHIPTYPEID,
	T1.VALIDFROM,
	T1.VALIDFROMTZID,
	T1.VALIDTO,
	T1.VALIDTOTZID,
	T1.SCHEMAVERSION,
	T1.RECVERSION,
	T1.PARTITION,
	T1.RECID,
	T2.CHILDPARENTNAME,
	T2.CHILDPARTYTYPE,
	T2.DESCRIPTION,
	T2.ISSYMMETRIC,
	T2.PARENTCHILDNAME,
	T2.PARENTPARTYTYPE,
	T2.RELATIONSHIPTYPEID,
	T2.SYSTEMTYPE,
	T2.RECVERSION,
	T2.PARTITION,
	T2.RECID,
	T3.NAME,
	T3.RECVERSION,
	T3.RECID,
	T3.INSTANCERELATIONTYPE,
	T4.NAME,
	T4.RECVERSION,
	T4.RECID,
	T4.INSTANCERELATIONTYPE 
FROM DIRPARTYRELATIONSHIP T1 CROSS 
JOIN DIRRELATIONSHIPTYPETABLE T2 LEFT 
OUTER 
JOIN DIRPARTYTABLE T3 ON ((T3.PARTITION=5637144576) 
	AND (T1.CHILDPARTY=T3.RECID)) LEFT 
OUTER 
JOIN DIRPARTYTABLE T4 ON ((T4.PARTITION=5637144576) 
	AND (T1.PARENTPARTY=T4.RECID)) 
WHERE ((T1.PARTITION=5637144576) 
	AND ((T1.PARENTPARTY=0) 
	OR (T1.CHILDPARTY=0))) 
	AND ((T2.PARTITION=5637144576) 
	AND (((T2.SYSTEMTYPE<29) 
	OR (T2.SYSTEMTYPE>40)) 
	AND (T1.RELATIONSHIPTYPEID=T2.RELATIONSHIPTYPEID))) 
	AND (
EXISTS (
SELECT 'X' 
FROM DIRPARTYRELATIONSHIPSUNIONVIEW T5 
WHERE ((T5.PARTITION=5637144576) 
	AND (((T5.SYSTEMTYPE<29) 
	OR (T5.SYSTEMTYPE>40)) 
	AND (T1.CHILDPARTY=T5.OTHERPARTY))))) 
	AND (
EXISTS (
SELECT 'X' 
FROM DIRPARTYRELATIONSHIPSUNIONVIEW T6 
WHERE ((T6.PARTITION=5637144576) 
	AND (((T6.SYSTEMTYPE<29) 
	OR (T6.SYSTEMTYPE>40)) 
	AND (T1.PARENTPARTY=T6.OTHERPARTY))))) 
	ORDER BY T1.VALIDFROM DESC OPTION(FAST 9)
Это из трейспарсера. В SQL Server Management Studio возвращает тут же 0 записей.

Последний раз редактировалось Lankey; 31.01.2024 в 19:08.
Старый 31.01.2024, 23:15   #6  
Lankey is offline
Lankey
Участник
 
67 / 15 (1) ++
Регистрация: 19.05.2020
( а из формы GlobalAddressBook->New около 30 минут висит, а потом выдается сообщение, что запись в DirPartyRelationship не может быть выбрана )
Теги
d365

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
patrickmouwen: D365 F&O/Commerce interfacing via Azure API Management: My Best Practices Blog bot DAX Blogs 0 10.03.2022 02:47
Sumit Potbhare: Retail Warehousing | Wrap up | Approach to D365 for Commerce with Adv WH Mgmt Blog bot DAX Blogs 0 28.04.2021 13:12
patrickmouwen: How to Unlock Many Hidden D365 Retail Features! Blog bot DAX Blogs 0 13.05.2020 22:13
patrickmouwen: D365 Retail APIs Part III: How to use the Retail APIs from Power Automate (Flow) and Logic App Blog bot DAX Blogs 0 28.01.2020 02:15
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.