Sharepoint 工作流性能问题

Sharepoint workflow performance Issue

我没有 Sharepoint 开发经验,我被要求查看工作流性能。 经过一番追踪,我发现哪个部分执行时间太长:

using (var site = new SPSite(WorkflowWeb.Site.ID, workflowProperties.OriginatorUser.UserToken))
        {
            using (var web = site.OpenWeb(WorkflowWeb.ServerRelativeUrl))
            {
                var list = web.Lists[WorkflowItem.ParentList.ID];
                var item = list.Items[WorkflowItem.UniqueId];


                item[new Guid("{54GH32R2-HG66-654a-KKKK-456FFF864654}")] = SPUtility.GetLocalizedString("$Resources:Assigned_Car", "RealB", WorkflowWeb.Language);
                item[new Guid("{54FG6215-9584-123g-KJHG-456FFF864654}")] = DateTime.Now;
                item.Update();
            }
        }

执行这部分大约需要 5 分钟。有什么提高性能的技巧吗?

正如我所提到的,我没有 SP 经验,我也不太了解工作流程在做什么,我只需要快速而肮脏地解决它。

正常情况下,呈现的这段代码不会执行5分钟。在性能方面,执行此代码,即使需要打开以前未缓存的 SPSite,也是亚秒级的事情。

在默认配置为 owstimer(异步执行工作流的进程)的 SharePoint 2010 中, 最多需要 5 分钟的时间是工作流引擎调用之间的延迟,这在转执行工作流程。根据您测量工作流 'performance'('run-time duration' 是一个更好的术语)的方式,这个空闲时间可能包含在您的结果中。


旁注:

I have no SP experience, I also don't have much knowledge of what the workflow is doing, I just have to solve it quick and dirty.

那么在基本的学习任务之外再使用 SharePoint 是一个非常糟糕的主意。性能调整和故障排除绝对 不是 适合完全缺乏平台知识和经验的人的任务。 SharePoint 是一个非常复杂的平台,其行为有时远非直截了当。您应该在更简单的事情上学习 SharePoint 并获得经验。

不知何故,现在通过更改速度更快:

var item = list.Items[WorkflowItem.UniqueId];

var item = list.GetItemByUniqueId(WorkflowItem.UniqueId);