查询性能问题:Dynamics CRM SSRS 报告的查询案例实体(事件)
Query Performance issues :query case entity (Incident )for Dynamics CRM SSRS Report
我在下面写了动态 crm- SSRS 报告的查询,但是执行时间太长(大约 6 分钟)。
查询:
select ticketnumber, Title, zon_requeststatusname,
FI.owneridname, zon_applicationname, zon_applicationareaname,
LastLogChanged, zon_requestorname , FI.createdon, FI.createdbyname,
isescalatedname, zon_ordername, DATEDIFF(DAY,GETDATE(),
FI.createdon) as AgingPeriod from filteredincident FI left outer join
(select top 1 zon_case, max(createdon) as LastLogChanged from
Filteredzon_caselog group by createdon,zon_case order by 2 desc )CL
on FI.incidentid= CL.zon_case
where DATEDIFF(day,FI.createdon ,GETDATE()) = @CreatedInLast and DATEDIFF(day,FI.modifiedon ,GETDATE()) = @ModifiedSince
没有筛选视图的相同查询:(但不想使用,因为我们会失去安全优势)
DECLARE @CreatedInLast INT
DECLARE @ModifiedSince INT
SET @ModifiedSince = 1
SET @CreatedInLast = 7
SELECT ticketnumber, Title, zon_requeststatusname, FI.owneridname,
zon_applicationname, zon_applicationareaname, --MAX(CL.modifiedon),
zon_requestorname , FI.createdon, FI.createdbyname,
isescalatedname, zon_ordername,
DATEDIFF(DAY,GETDATE(), FI.createdon) as AgingPeriod FROM filteredincident FI (NOLOCK) LEFT OUTER JOIN zon_caselog CL (NOLOCK)
on FI.incidentid= CL.zon_case AND CL.modifiedon >= GETDATE()-
@ModifiedSince WHERE FI.createdon >= GETDATE()- @CreatedInLast
GROUP BY ticketnumber, Title, zon_requeststatusname, FI.owneridname, zon_applicationname, zon_applicationareaname,
zon_requestorname , FI.createdon, FI.createdbyname,
isescalatedname, zon_ordername
我已经 运行 DBCC DBREINDEX
和 DBCC INDEXDEFRAG
。
请多多指教,以上问题有哪些需要改进的地方。
Filteredview 将在内部使用 POA table 加入 select 查询,以维护结果集中的 CRM 安全模型。
我建议您查看 PrincipalObjectAccess (POA) 的大小 table 并考虑 cleaning。
我在下面写了动态 crm- SSRS 报告的查询,但是执行时间太长(大约 6 分钟)。
查询:
select ticketnumber, Title, zon_requeststatusname, FI.owneridname, zon_applicationname, zon_applicationareaname, LastLogChanged, zon_requestorname , FI.createdon, FI.createdbyname, isescalatedname, zon_ordername, DATEDIFF(DAY,GETDATE(), FI.createdon) as AgingPeriod from filteredincident FI left outer join (select top 1 zon_case, max(createdon) as LastLogChanged from Filteredzon_caselog group by createdon,zon_case order by 2 desc )CL
on FI.incidentid= CL.zon_case where DATEDIFF(day,FI.createdon ,GETDATE()) = @CreatedInLast and DATEDIFF(day,FI.modifiedon ,GETDATE()) = @ModifiedSince
没有筛选视图的相同查询:(但不想使用,因为我们会失去安全优势)
DECLARE @CreatedInLast INT
DECLARE @ModifiedSince INT
SET @ModifiedSince = 1
SET @CreatedInLast = 7SELECT ticketnumber, Title, zon_requeststatusname, FI.owneridname, zon_applicationname, zon_applicationareaname, --MAX(CL.modifiedon), zon_requestorname , FI.createdon, FI.createdbyname, isescalatedname, zon_ordername, DATEDIFF(DAY,GETDATE(), FI.createdon) as AgingPeriod FROM filteredincident FI (NOLOCK) LEFT OUTER JOIN zon_caselog CL (NOLOCK) on FI.incidentid= CL.zon_case AND CL.modifiedon >= GETDATE()- @ModifiedSince WHERE FI.createdon >= GETDATE()- @CreatedInLast GROUP BY ticketnumber, Title, zon_requeststatusname, FI.owneridname, zon_applicationname, zon_applicationareaname,
zon_requestorname , FI.createdon, FI.createdbyname, isescalatedname, zon_ordername
我已经 运行 DBCC DBREINDEX
和 DBCC INDEXDEFRAG
。
请多多指教,以上问题有哪些需要改进的地方。
Filteredview 将在内部使用 POA table 加入 select 查询,以维护结果集中的 CRM 安全模型。
我建议您查看 PrincipalObjectAccess (POA) 的大小 table 并考虑 cleaning。