在我们基于sitecore 6.6.0(rev。130404)的项目中,我们需要将数据从旧系统的数据库迁移到sitecore数据库。我们需要迁移650,000个物体。来自旧数据库的这些对象中的每一个都将在master数据库中创建大约4个sitecore项目。所以这是一组相当大的数据被迁移。Sitecore - 增加大号码时性能越来越差。的项目
我们将sitecore API与windows应用程序连接起来,并从该应用程序运行数据迁移逻辑。在数据迁移初期,情况非常快,每秒钟大约有4个对象被传输到sitecore master数据库。前10,000个对象只需要40分钟。按照这个速度,人们会预测在7个小时内将有10万个物体被迁移。
但问题是随着时间的推移,事情变得越来越慢,速度明显变慢。迁移了大约100,000个物体后,现在只需要7个小时就可以迁移30,000个物体。我甚至按照性能调整指南中的提示重新创建了sitecore数据库索引。我们也不执行任何sitecore查询来查找将新创建的sitecore项目放在哪里。我们的数据迁移正在进行时,没有sitecore代理或lucene索引更新操作正在运行。
下面是在数据迁移的逻辑开头的代码:
using (new Sitecore.SecurityModel.SecurityDisabler())
using (new Sitecore.Data.Proxies.ProxyDisabler())
using (new Sitecore.Data.DatabaseCacheDisabler())
using (new Sitecore.Data.BulkUpdateContext())
能为这个缓慢的原因是Sitecore的数据库索引的增长。我不是SQL专家,但经过一番阅读后,我得到了关于指数运营统计的报告。我不确定这些数字是否表明我们问题的原因。
任何人可以用比我好Sitecore的/ SQL的知识,帮助这个吗?
编辑:经过多点挖掘后,我得到了sql服务器锁存器的统计数据(不太了解这些)。
感谢
现在有点老了,但是您是否从Sitecore论坛获得了有关解决您的问题的其他方法的任何反馈? –
Sitecore支持提到他们不支持在媒体库之外创建媒体项目,并且他们的代码未针对我们的用例进行优化。他们基本上说要遵循sitecore的最佳实践。但是这已经是Sitecore 6.5的一段时间了。我已经与Sitecore脱离了很长一段时间,所以事情可能现在已经改变了。但我记得我们设法使用重复的MediaCreator类来解决这个问题。 – ravinsp