Hi there!

While the module does exactly what a client of mine needs, the performance prevents from using it as it makes the process of configuring the dependencies unbearable slow. A look into MySQL's processes with phpMyAdmin shows that statements such as the following take ages (speaking of minutes!) to complete:

SELECT COUNT( * )
FROM (
uc_product_options AS po1
LEFT JOIN uc_attribute_options AS ao1 ON po1.oid = ao1.oid
AND po1.nid =166
), (
uc_product_options AS po2
LEFT JOIN uc_attribute_options AS ao2 ON po2.oid = ao2.oid
AND po2.nid =166
), (
uc_product_options AS po3
LEFT JOIN uc_attribute_options AS ao3 ON po3.oid = ao3.oid
AND po3.nid =166
), (
uc_product_options AS po4
LEFT JOIN uc_attribute_options AS ao4 ON po4.oid = ao4.oid
AND po4.nid =166
), (
uc_product_options AS po5
LEFT JOIN uc_attribute_options AS ao5 ON po5.oid = ao5.oid
AND po5.nid =166
), (
uc_product_options AS po6
LEFT JOIN uc_attribute_options AS ao6 ON po6.oid = ao6.oid
AND po6.nid =166
), (
uc_product_options AS po7
LEFT JOIN uc_attribute_options AS ao7 ON po7.oid = ao7.oid
AND po7.nid =166
), (
uc_product_options AS po8
LEFT JOIN uc_attribute_options AS ao8 ON po8.oid = ao8.oid
AND po8.nid =166
), (
uc_product_options AS po9
LEFT JOIN uc_attribute_options AS ao9 ON po9.oid = ao9.oid
AND po9.nid =166
), (
uc_product_options AS po10
LEFT JOIN uc_attribute_options AS ao10 ON po10.oid = ao10.oid
AND po10.nid =166
), (
uc_product_options AS po11
LEFT JOIN uc_attribute_options AS ao11 ON po11.oid = ao11.oid
AND po11.nid =166
), (
uc_product_options AS po12
LEFT JOIN uc_attribute_options AS ao12 ON po12.oid = ao12.oid
AND po12.nid =166
), (
uc_product_options AS po13
LEFT JOIN uc_attribute_options AS ao13 ON po13.oid = ao13.oid
AND po13.nid =166
), (
uc_product_options AS po14
LEFT JOIN uc_attribute_options AS ao14 ON po14.oid = ao14.oid
AND po14.nid =166
), (
uc_product_options AS po15
LEFT JOIN uc_attribute_options AS ao15 ON po15.oid = ao15.oid
AND po15.nid =166
), (
uc_product_options AS po16
LEFT JOIN uc_attribute_options AS ao16 ON po16.oid = ao16.oid
AND po16.nid =166
)
WHERE ao1.aid =46
AND ao2.aid =48
AND ao3.aid =49
AND ao4.aid =50
AND ao5.aid =51
AND ao6.aid =52
AND ao7.aid =53
AND ao8.aid =54
AND ao9.aid =55
AND ao10.aid =57
AND ao11.aid =56
AND ao12.aid =58
AND ao13.aid =59
AND ao14.aid =60
AND ao15.aid =61
AND ao16.aid =40

Is anything planned to increase the lookup of combinations in the database? This may be typical use case where using sql on relational data is not the fastest way to retrieve results. It may be a lot faster to read in active attributes with their active options of the current node and process the depencies in php.

CommentFileSizeAuthor
processes.png39.96 KBAnonymous (not verified)