问题:

在Redmine部署使用后,发现更新事务时速度慢,进行了相关试验,去掉了可能影响速度的插件,仍然很慢。以下为对比试验:

1、包含12个自定义字段的项目,更新用时2136ms,记录如下:

Started PATCH "/issues/3115" for 127.0.0.1 at 2016-07-03 10:58:36 +0800
Processing by IssuesController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"QNZR0IqhR6x6Otexs0D0w9b+2fWma/0YfiuOskbmGSQYMLB7lwQZJLB19GqANWSjh/6iubUif4l1X+E6nE8vhQ==", "form_update_triggered_by"=>"", "issue"=>{"project_id"=>"5", "tracker_id"=>"5", "subject"=>"XX项目", "description"=>"XX项目", "status_id"=>"6", "priority_id"=>"4", "custom_field_values"=>{"57"=>"", "50"=>"XX", "53"=>"", "11"=>"", "28"=>"XX", "14"=>"2016-05-18", "34"=>"2016-05-18", "51"=>"2016-07-12", "16"=>"0", "3"=>"2016-05-18", "23"=>"", "52"=>""}, "notes"=>"", "lock_version"=>"0"}, "was_default_status"=>"6", "last_journal_id"=>"", "commit"=>"提交", "next_issue_id"=>"3114", "issue_position"=>"1", "issue_count"=>"150", "id"=>"3115"}
Current user: csl (id=26)
Rendered mailer/_issue.text.erb (15.6ms)
Rendered mailer/issue_edit.text.erb within layouts/mailer (31.2ms)
Rendered mailer/_issue.html.erb (0.0ms)
Rendered mailer/issue_edit.html.erb within layouts/mailer (0.0ms)
Redirected to http://127.0.0.1:8080/issues/3115?issue_count=150&issue_position=1&next_issue_id=3114
Completed 302 Found in 2136ms (ActiveRecord: 115.6ms)

2、包含51个自定义字段的项目,更新用时5745ms,记录如下:

Started PATCH "/issues/3890" for 127.0.0.1 at 2016-07-03 10:57:07 +0800
Processing by IssuesController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"BdB8/SFFGD0lTT45NVQpA/dqUk/s/NExRrR0/orEDStdNp1WPOBGte8CHeIGIbljpmopA/+1U6BNwBt2UG07ig==", "form_update_triggered_by"=>"", "issue"=>{"status_id"=>"2", "priority_id"=>"2", "assigned_to_id"=>"", "start_date"=>"", "due_date"=>"", "custom_field_values"=>{"57"=>"", "28"=>"XXX", "16"=>"", "21"=>"", "22"=>"", "3"=>"", "23"=>"", "35"=>"", "37"=>"0", "24"=>"", "25"=>"", "26"=>"0", "38"=>"", "39"=>"", "40"=>"", "41"=>"", "42"=>"", "43"=>"", "59"=>""}, "notes"=>"", "lock_version"=>"3"}, "last_journal_id"=>"246", "commit"=>"提交", "prev_issue_id"=>"3904", "next_issue_id"=>"3883", "issue_position"=>"2", "issue_count"=>"15", "id"=>"3890"}
Current user: csl (id=26)
Rendered mailer/_issue.text.erb (31.2ms)
Rendered mailer/issue_edit.text.erb within layouts/mailer (93.6ms)
Rendered mailer/_issue.html.erb (15.6ms)
Rendered mailer/issue_edit.html.erb within layouts/mailer (15.6ms)
Rendered mailer/_issue.text.erb (15.6ms)
Rendered mailer/issue_edit.text.erb within layouts/mailer (31.2ms)
Rendered mailer/_issue.html.erb (0.0ms)
Rendered mailer/issue_edit.html.erb within layouts/mailer (15.6ms)
Redirected to http://127.0.0.1:8080/issues/3890?issue_count=15&issue_position=2&next_issue_id=3883&prev_issue_id=3904
Completed 302 Found in 5745ms (ActiveRecord: 66.8ms)

初步看来,解决办法是减少跟踪标签的自定义字段。

解决方案:

1、删除事务跟踪者,可以明显降低事务提交后的等待周期。因为事务更新需要发送邮件给跟踪者,而这个过程比较耗时。

2、减少自定义字段数。

Redmine自定义字段增多后会变慢的更多相关文章

  1. 自定义字段的设计与实现(Java实用版)

    前言 自定义字段又叫做"开放模型",用户可以根据自已的需求,添加需要的字段,实现个性化定制. 使用自定义字段的目的,使用自定义字段解决哪些问题 如现有一套CRM系统,客户模块中客户 ...

  2. phpcms v9调用自定义字段的方法步骤

    代码如下:{loop $shigongtu $r}<img src="{$r[url]} " title="测试"/>{/loop} 2 首页,分页 ...

  3. Java自定义表单、自定义字段

    最近想实现用户自定义数据库中的字段,我想大部分人第一想到的就是EAV(Entity-Attribute-Value),这种方式对于写一个小的毕业设计应该还可以使用,当然也有很多CMS系统采用这种方式, ...

  4. sharepoint2010问卷调查(4)-实现问卷的重复答复次数(采用自定义字段类型和JS)

    sharepoint的问卷调查可以设置重复和一次答复.但是设置一次后,调查过的用户再进行答复.会提示如下图: 分析下:该提示用户体验很不好.给用户感觉是系统出问题了.因此网上有人提出用eventhan ...

  5. sharepoint2010问卷调查(3)-实现问卷的开始和结束时间(采用自定义字段类型)

    接着上面的图片调查,sharepoint自带的问卷调查是没有开始和结束时间的.这个在项目过程不太实用.问卷一般有开始和结束时间的.因此需要自己 动手开发一个自定义字段类型字段.如下图: 开发添加栏目会 ...

  6. sharepoint2010问卷调查(2)-实现问卷的图片调查(采用自定义字段类型)

    1. 首先建立个图片库上传图片 并建立文件夹1和2,1下有1.1文件夹,2下2.1文件夹,2.1下有文件夹2.1.1. 在1文件夹下放如下图片: 2.建立自定义字段类型,如下图: 3.部署后建立栏目的 ...

  7. phpcms_v9 多图字段 内容页,首页,分页自定义字段调用

    phpcms_v9 多图字段 内容页,首页,分页自定义字段调用 说明:自定义多图字段名 shigongtu 1 内容页调用 {loop $shigongtu $r}      <img src= ...

  8. 从 Typecho 自定义字段的调用代码看去

    千呼万唤,Typecho 的"自定义字段"功能终于在 0.9 中出来了.然而,多数人还蒙在这样一个鼓里--该怎么在模板调用已经设置好的自定义字段呢?让我们从这里开始说下去: Typ ...

  9. DEDECMS栏目自定义字段添加

    用到的文件: catalog_add.htm  路径:\dede\templets\ catalog_edit.htm  路径:\dede\templets\  catalog_add.php  路径 ...

随机推荐

  1. rownum和rowid伪列

    select row employee_id,last name,salary from employees; select row employee_id,last name,salary from ...

  2. swift-UITableView

    import UIKit class FirstVC: UIViewController,UITableViewDelegate,UITableViewDataSource { var tableVi ...

  3. 批处理命令 BAT备份MySQL数据库

    批处理命令 BAT备份MySQL数据库 作者: 字体:[增加 减小] 类型:转载 时间:2009-07-23我要评论 MySQL数据的备份工具也许有很多,在这我要给大家分享一下通过DOS批处理命令和M ...

  4. true_kb

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. MySQL(无GUI) Windows安装和启动

    1.在官网http://dev.mysql.com/downloads/下载 MySQL Community Server 2.解压后是这个样子: 3.找到cmd,并且用管理员权限启动,必须!不然那没 ...

  6. wed应用程序开发原理

    ---恢复内容开始--- 企业应用演变的模式 1.主机/哑终端的集中计算模式 时间二十世纪七十年代,企业应用程序是围绕一个中心大型主机建立的.特点 大,贵,专用.只有输入输出功能,没有处理能力,全部是 ...

  7. HTTPS 进阶

    参考 一.中间人攻击 概念:攻击者插入到原本直接通信的双方,让双方以为还在直接跟对方通讯,但是实际上双方的通信对方已经变成中间人,信息已经被中间人获取或篡改. HTTPS 的攻击分为两类:SSL 连接 ...

  8. iOS中的线程安全问题

    为了保证线程安全,不会因为多个线程访问造成资源抢夺,出现的运行结果的偏差问题,我们需要使用到线程同步技术,最常用的就是 @synchronized互斥锁(同步锁).NSLock.dispatch_se ...

  9. jar包目录下MANIFEST.MF标准格式

    jar包目录格式: |-- com | |-- test.class |-- META-INF | |-- MAINFEST.MF 一个正常的jar包下必有META-INF/MANIFEST.MF清单 ...

  10. Python学习【第九篇】函数

    函数 函数是什么? 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上而下实现功能,其往往用一段代码来实现指定功能,开发过 ...