Получить все действия на один аккаунт - 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)) - он даст вам информацию о наборе данных и вы сможете получить связь между таблицами с помощью обратного анализа.

Другие вопросы по тегам