【问题标题】:Query Performance issues :query case entity (Incident )for Dynamics CRM SSRS Report查询性能问题:Dynamics CRM SSRS 报告的查询案例实体(事件)
【发布时间】:2018-07-03 09:28:20
【问题描述】:

我已经写了下面的动态 crm-SSRS 报告查询,但是执行时间太长(大约 6 分钟)。

查询:

选择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) 作为来自过滤事件 FI 左外连接的 AgingPeriod (select top 1 zon_case, max(createdon) as LastLogChanged from 按createdon过滤zon_caselog组,zon_case order by 2 desc )CL
在 FI.incidentid=CL.zon_case 其中 DATEDIFF(day,FI.createdon ,GETDATE()) = @CreatedInLast 和 DATEDIFF(day,FI.modifiedon ,GETDATE()) = @ModifiedSince

Same Queries without Filtered view :(但不想使用,因为我们会失去安全优势)

声明@CreatedInLast INT
声明 @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) 在 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 DBREINDEXDBCC INDEXDEFRAG

请告诉我,需要改进上述查询。

【问题讨论】:

  • 我看到 Nolock 在第一个查询中丢失;仍然是第二个查询使用过滤事件

标签: sql-server dynamics-crm dynamics-crm-2011 dynamics-crm-2013


【解决方案1】:

Filteredview 将在内部将选择查询与 POA 表连接起来,以维护结果集中的 CRM 安全模型。

我建议您查看 PrincipalObjectAccess (POA) 表的大小并考虑cleaning

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2015-02-28
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多