2
votes

In my scenario, Sitecore databases(Master database) gets frequent updates and withing couple of months it will have 100,000s of data. Client prefers to have them in master database.

Tree hierarchy is something as follows,

Categories
   category 1a
         -------category2
                     ---------category3
                               -----1000's of articles under category 3    
    category 1b
             ----1000's of articles

     category 1c
          --------category 2b
                       ---------1000's of articles

There are like 700 categories. Is this going to cause severe performance issues in the tree. At the moment I have like 200,000 articles, and I can not expand the Categories node. But the "Content" node gets expanded. What could be the issue? Is this a flaw in the design?

2
what Sitecore version do you have? For a lot of content you can update to Sitecore 7 and use Buckets. On versions before Sitecore 7,Sitecore has some performance issues if you have many children under one item.user459491
You can use Item Buckets from Sitecore 6 if you don't want to update to Sitecore 7.user459491

2 Answers

4
votes

Sitecore best practice pre version 7 is to keep the children of a node to less than 100 items or you will run into the performance issues you are seeing.

You could use the item buckets module to get around this limitation however there is currently no upgrade path to 7 if you are using the item buckets module. You might be better upgrading to 7 now where the search based architecture does not have the child node limitation.

3
votes

The reason why you cannot expand Categories is the number of children items below the category 1b. When you try to expand the Categories node, Content Editor checks all its children whether they have children (so it checks Category 1a, Category 1b and Category 1c children, and as the content structure from your question show, there are lot of children below Category 1b item.

According to John West (e.g. in Maximize Sitecore Content Editor Performance blog post), you should try to limit children per item to 25 and avoid items with more than 100 children.

Try to change split your content by dates (year/month and maybe even day) so your structure looks like this:

Categories
    Category 1a
       Category 2
           Category 3
               2012
                   01
                   02
               2013
                   06
                   07 
    Category 1b
        2013
            01
            02
           ...

If you cannot do this, you can change the value of the ContentEditor.CheckHasChildrenOnTreeNodes to false - this will stop Sitecore from counting the children - Sitecore will treat all the nodes as if they were children below them.

<setting name="ContentEditor.CheckHasChildrenOnTreeNodes" value="false" />