====== Automatic roles by attribute performance ====== Price for rule type: //contract// **<** //identity// **<** //contract EAV// **<** //identity EAV// This page contains information about performance and automatic role by attribute. All tests was done with PostgreSQL database in version 9.6. Performance test was executed by recalculation by single user. This mean normal save identity/contract and their eavs. Then was explained query composed for given rules. ===== Result ===== **Test scenario:** * Rule 1. - identity EAV equals Explain result **0.56 min** and **47.53 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty Explain result **0.84 min** and **55.52 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals Explain result **1.12 min** and **63.49 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals * Rule 4. - identity phone contains Explain result **1.40 min** and **72.51 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals * Rule 4. - identity phone contains * Rule 5. - contract position is not empty Explain result **1.40 min** and **72.51 max** Rule for contract entity doesn't need extra cost. Because connection to contract exists every time. ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals * Rule 4. - identity phone contains * Rule 5. - contract position is not empty * Rule 6. - identity EAV multivalued is not empty Explain result **1.68 min** and **72.13 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals * Rule 4. - identity phone contains * Rule 5. - contract position is not empty * Rule 6. - identity EAV multivalued is not empty * Rule 7. - identity EAV multivalued is empty Explain result **1.96 min** and **95.05 max** ---- **Test scenario:** * Rule 1. - identity EAV equals * Rule 2. - identity EAV is not empty * Rule 3. - identity EAV multivalued equals * Rule 4. - identity phone contains * Rule 5. - contract position is not empty * Rule 6. - identity EAV multivalued is not empty * Rule 7. - identity EAV multivalued is empty * Rule 7. - identity username not start with Explain result **2.24 min** and **95.72 max** ---- **Test scenario:** * Rule 1. - identity EAV multivalued (shorttext) is empty Explain result **0.56 min** and **39.51 max** Rule with is empty and multivalued for identity is the most expensive. ---- **Test scenario:** * Rule 1. - contract EAV multivalued is empty Explain result **0.42 min** and **24.77 max**