Получить все действия на один аккаунт - CRM 2016
У меня вопрос, возможно ли получить все действия для одной учетной записи в CRM с помощью SQL-запроса в приемлемый период времени?
Удивительным является то, что все действия находятся в обзоре счетов в CRM. И эта страница загружается мгновенно.
Я создал запрос только для Email-деятельности. Запрос выполняется около 25 минут. Что меня не удивляет xD. Но я не могу найти четкую связь между двумя таблицами.
Некоторые данные: ~460000 Email-активность ~28000 контактов ~37000 аккаунтов
Вот sql-запрос:
select account.Name, Max(email.CreatedOn) from Email
as email
join Contact as contact on email.DirectionCode = 1
and datediff(wk, email.CreatedOn, GetDate()) > 12
and (email.ToRecipients Like '%' + contact.EMailAddress1 +'%'
or email.ToRecipients Like '%' + contact.EMailAddress2 +'%'
or email.ToRecipients Like '%' + contact.EMailAddress3 +'%')
join Account as account on account.AccountId = contact.AccountId
Group by account.Name
1 ответ
Проблема в вашем qry. Когда вы используете like с "%...", он будет использовать новый индекс.
Лучшим решением в вашем случае является catch qry (с SQL Server Profiler (в SSSMS -> tools -> SQL profiler)) - он даст вам информацию о наборе данных и вы сможете получить связь между таблицами с помощью обратного анализа.