Jump to content

Data Transfer Performance & Conditional Formatting


This topic is 3349 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I have a question about the impact of conditional formatting on hosted database performance.

Is it the calculation itself that adds the weight to the transfer of data or is it the act of invoking the calculation that does this?

 

I have a task management database for my cabinet shop that depends on conditional formatting.

This database displays in list format the tasks that remain for a cabinet.  The task status is color coded as well as the skill level required to accomplish the task.

 

For example:

      If the skill level  is equal to (2) then the task turns green.

      If the skill level  is equal to (3) then the task turns yellow.  

 

These conditional statements are also predicated on the status of a field that gives you the option to display color or not.

When the layout opens up there is no color displayed.

 

So does the performance overhead increase if the colors are not invoked or does it increase just because the colors could be invoked?

 

 

 

 

Link to comment
Share on other sites

This database displays in list format the tasks that remain for a cabinet.

So does the performance overhead increase if the colors are not invoked or does it increase just because the colors could be invoked?

 

Conditional formatting evaluates from the context of the layout it is placed upon and it evaluates every time the window (with that layout) is refreshed.  Even if no color is defined, it will evaluate.  

 

I assume it is two conditional lines as:

 

colorIsChecked and Skill = 2 ... and then the color is specified as green

colorIsChecked and Skill = 3 ... and then the color is specified as blue

 

ALL lines are evaluated regardless, unlike Case() or If() (and other functions) which short-circuit.  But even if your colorIsChecked is a global field in another table, it would have light impact and using conditional formatting over unstored calculation IS the way to go for layout-specific evaluations.

 

How many colors are specified?  How many records max are displayed at a single time in this list view (how many rows are seen on the screen?  Are you accessing this on iPad?  How do you derive this list - do you perform a find (for overdue tasks) while on this list layout or do you perform the find on a developer layout with NO fields (and no references) and then switch to list view on this layout?

There may be ways of lightening the load a bit, such as using Hide and stacking two fields - one uncolored and one colored with conditional formatting.  Hide the colored when not ColorIsChecked for example and Hide the uncolored when ColorIsChecked.  Still, the Hide calculations must evaluate but it MIGHT load a bit faster, depending upon how many colors you are using.

Link to comment
Share on other sites

Thank you both so much for your input.

 

I hadn't considered using Case() r If() functions to short circuit evaluation.  

I will also look into performing my finds on blank developer layouts before switching to layout view.

I do need to learn more about using stored vs unstored calculations.

 

I am just now delving into performance optimization so I have a lot to learn.

It is fascinating stuff.

Link to comment
Share on other sites

This topic is 3349 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.