Product Attribute Value Limit

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
8 years ago
Is there a recommended limit of product attribute values for a given product?

In my store I only have 6 products.
Each product has a single product attribute.
3 of the products have 250 attribute values, and the other 3 products have 2500 attribute values.

During and after setup, before loading all the attribute values the system was working perfectly

Thanks NOPCommerce team, this is an amazing tool!

But after loading the attribute values the public and admin pages appear to load slower,and at times the admin screens will timeout. I have the most issues with the manage products grid of the admin site.

During the slowness the database utilization is low, but the web process is maxing out the CPU.

I am wondering if I am hitting a limitation, or are there some performance adjustments I can put in place to help out with the speed when using so many attributes.

I am using NopCommerce 3.5 with the NopRoot template.

Any ideas or comments are greatly appreciated!
8 years ago
The reason your cpu is maxing out is because attributes are cached with the product. There is only an initial data dip to sql, then each time you hit a product page, you are pulling from cache and not sql server...therefore cpu demand is expected rather than IO on the sql side which is what you want.
The catch for you is, the product attributes are not paged on an extraction. In other words, normally for larger datasets, its a good idea to page and grab 100 at a time for display in the browser...like how the grids work in nop.  For you though, your literally building lists of 2500 in memory and pushing them all to the viewstate for the client browser at once.

Just a suggestion... but you might want to consider customizing the system and try to create a parent / child relationship structure for your attributes. The idea being you would only have a few parents...maybe 1 parent for every 100 children...and use ajax to pull the children on demand rather than pre-load. Still keep it cached though.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.