powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / srss 2008, производительность
3 сообщений из 3, страница 1 из 1
srss 2008, производительность
    #37800638
Semen_v.2.01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Я написал отчет. Работает он медленно.
Подскажите, пожалуйста, можно ль как-то оптимизировать запрос (ссылки на литературу тематическую приветствуются).
Спасибо!

сам запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
SELECT     FilteredNew_project.new_group_prodname, FilteredNew_project.new_name AS project_name, FilteredNew_object.new_objectid AS obj_obj_id, 
                      FilteredNew_object.new_objs AS Expr130, P.Prod_id, P.quant, P.obj_id, P.kind, FilteredNew_object.new_name AS object_name, FilteredNew_object.new_objsname, 
                      FilteredNew_object.new_project, FilteredNew_object.new_projectname, FilteredNew_project.new_goal, FilteredNew_project.new_goalname, 
                      FilteredNew_project.new_objectid, FilteredNew_project.new_objectidname, P.U, FilteredNew_project.new_rynoksname, P.Date3, 
                      FilteredNew_object.new_podryadchikname, FilteredNew_object.new_zakazzzname, FilteredNew_object.new_projectirname, FilteredNew_object.new_finishdate, 
                      P.kolvo, FilteredNew_object.new_accountidname, FilteredNew_project.new_projectid, FilteredNew_object.new_sostoyaniename, P.pr_id
FROM         FilteredNew_project INNER JOIN
                      FilteredNew_object ON FilteredNew_object.new_objs = FilteredNew_project.new_projectid INNER JOIN
                          (SELECT     FilteredOpportunityProduct.productidname AS Prod_id, CAST(FilteredOpportunityProduct.baseamount AS numeric(26, 2)) AS quant, 
                                                   FilteredOpportunityProduct.uomidname AS U, FilteredOpportunity.new_object AS obj_id, 'Возможные сделки' AS kind, 
                                                   FilteredOpportunity.estimatedclosedate AS Date3, FilteredOpportunityProduct.quantity AS kolvo, FilteredOpportunityProduct.productid AS pr_id
                            FROM          FilteredOpportunity INNER JOIN
                                                   FilteredOpportunityProduct ON FilteredOpportunityProduct.opportunityid = FilteredOpportunity.opportunityid
                            UNION
                            SELECT     FilteredSalesOrderDetail.productidname AS Prod_id, CAST(FilteredSalesOrderDetail.baseamount AS numeric(26, 2)) AS quant, 
                                                  FilteredSalesOrderDetail.uomidname AS U, FilteredSalesOrder.new_objected AS obj_id, 'Заказы' AS kind, 
                                                  FilteredSalesOrder.requestdeliveryby AS Date3, FilteredSalesOrderDetail.quantity AS kolvo, FilteredSalesOrderDetail.productid AS pr_id
                            FROM         FilteredSalesOrder INNER JOIN
                                                  FilteredSalesOrderDetail ON FilteredSalesOrder.salesorderid = FilteredSalesOrderDetail.salesorderid) AS P ON 
                      FilteredNew_object.new_objectid = P.obj_id
WHERE     (ISNULL(FilteredNew_project.new_rynoksname, N'*Рынок не указан') IN (@rynok)) AND (ISNULL(YEAR(P.Date3), N'1985') IN (@year1))
UNION
SELECT     FilteredNew_project_1.new_group_prodname, FilteredNew_project_1.new_name AS project_name, NULL AS new_obj_obj_id, NULL AS Expr130, M.Prod_id, 
                      M.quant, NULL AS obj_id, M.kind, NULL AS object_name, NULL AS new_objsname, NULL AS new_project, NULL AS new_projectname, NULL AS new_goal, NULL 
                      AS new_goalname, NULL AS new_objectid, NULL AS new_objectidname, M.U, FilteredNew_project_1.new_rynoksname, M.Date3, NULL 
                      AS new_podryadchikname, NULL AS new_zakazzzname, NULL AS new_projectirname, NULL AS new_finishdate, M.kolvo, NULL AS new_accountidname, 
                      FilteredNew_project_1.new_projectid, NULL AS new_sostoyaniename, M.pr_id
FROM         FilteredNew_project AS FilteredNew_project_1 INNER JOIN
                          (SELECT     FilteredSalesOrderDetail_1.productidname AS Prod_id, CAST(FilteredSalesOrderDetail_1.baseamount AS numeric(26, 2)) AS quant, 
                                                   FilteredSalesOrderDetail_1.uomidname AS U, FilteredSalesOrder_1.new_projectid AS obj_id, 'Заказы' AS kind, 
                                                   FilteredSalesOrder_1.requestdeliveryby AS Date3, FilteredSalesOrderDetail_1.quantity AS kolvo, FilteredSalesOrderDetail_1.productid AS pr_id
                            FROM          FilteredSalesOrder AS FilteredSalesOrder_1 INNER JOIN
                                                   FilteredSalesOrderDetail AS FilteredSalesOrderDetail_1 ON FilteredSalesOrder_1.salesorderid = FilteredSalesOrderDetail_1.salesorderid) AS M ON 
                      M.obj_id = FilteredNew_project_1.new_projectid
WHERE     (ISNULL(FilteredNew_project_1.new_rynoksname, N'*Рынок не указан') IN (@rynok)) AND (ISNULL(YEAR(M.Date3), N'1985') IN (@year1))
...
Рейтинг: 0 / 0
srss 2008, производительность
    #37800810
tarrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Semen_v.2.01,

О, MSCRM :)

Ну во первых фильтрованные вьюхи проверяют безопасность и преобразуют даты из UTC во время пользователя - это дорогие операции, не используйте их везде, а только на тех объектах, где нужна безопасность.

Плюс вы уверены что вам нужен UNION, а не UNION ALL
...
Рейтинг: 0 / 0
srss 2008, производительность
    #37801088
Semen_v.2.01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tarrus , даа, он самый =)

спасибо, union all приемлем и он подсократил конкретно время выполнения, думаю, этого достаточно!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / srss 2008, производительность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]