SYMPTOM:
After defining security filters for users that is based on a system user prompt, administrators find that element caches do not get utilized. As a result, element browsing (or prompting) on attributes that are affected by security filters will execute SQL against the warehouse.
STEPS TO REPRODUCE:
Follow the steps below to reproduce this issue in the Strategy Tutorial project:



Elements not in cache Finding Object(Type=Attribute ID=8D679D5111D3E4981000E787EC6DE8A4) Found Object(Name="Year" Type=Attribute ID=8D679D5111D3E4981000E787EC6DE8A4 Proj=B19DEDCC11D4E0EFC000EB9495D0F44F Ver=2E30BEB2420B12EEA40206B0DFBC2558 ) 00B39C10200B39C30create table ZZTQO0200S4OT000 ( WJXBFS1 SHORT) 00B39C10200B39C30insert into ZZTQO0200S4OT000 select distinct a21. AS WJXBFS1 from a21 where a21. in (2005,2006) 00B39C10200B39C30 select count(*) AS WJXBFS1 from pa21 00B39C10200B39C30 select a11. AS YEAR_ID from a11 where a11. in (2005,2006) order by 1 asc 00B39C10200B39C30 drop table ZZTQO0200S4OT000
Found in cache: Elements(Count(Element)=2 Limit=1000 Offset=1 #1=Element(Count(Text/FormID)=1 #1="2005"/0 Attribute="Year"/8D679D5111D3E4981000E787EC6DE8A4) #2=Element(Count(Text/FormID)=1 #1="2006"/0 Attribute="Year"/8D679D5111D3E4981000E787EC6DE8A4) ) Got Elements(Count(Element)=2 Limit=1000 Offset=1 #1=Element(Count(Text/FormID)=1 #1="2005"/0 Attribute="Year"/8D679D5111D3E4981000E787EC6DE8A4) #2=Element(Count(Text/FormID)=1 #1="2006"/0 Attribute="Year"/8D679D5111D3E4981000E787EC6DE8A4) ) for Object(Type=Attribute ID=8D679D5111D3E4981000E787EC6DE8A4) Total Element Requests: 6, Number of Element Cache Hits: 2, Objects in Element Cache: 4
CAUSE:
This is working as designed. System Prompts are driven by database security. Meaning, table entries in the database control what users can or cannot see. Strategy assumes the integrity of security is solely based on these tables and will execute SQL against the warehouse to ensure the security settings are maintained.
ACTION:
If performance is an issue, it is recommended that Administrators uncheck the 'Apply Security Filter' option in the attribute editor for those attributes that do not require security filters. An example of this would be a standard date attribute where all users should be able to choose a date. This will help keep database requests at a minimum for element requests.