The interactions among execution objects in an Adaptive Server environment are complex. Furthermore, every environment is different: each involves its own mix of client applications, logins, and stored procedures, and is characterized by the interdependencies between these entities.
Implementing execution precedence without having studied the environment and the possible implications can lead to unexpected (and negative) results.
For example, say you have identified a critical execution object and you want to raise its execution attributes to improve performance, either permanently or on a per-session basis. If the execution object accesses the same set of tables as one or more other execution objects, raising its execution priority can lead to performance degradation due to lock contention among tasks at different priority levels.
Because of the unique nature of every Adaptive Server environment, Sybase cannot provide a detailed procedure for assigning execution precedence that makes sense for all systems. However, this section provides guidelines, procedures to try, and a discussion of common issues.
Figure 4-1 shows the steps involved in assigning execution attributes.
Figure 4-1: Process for assigning execution precedence
Study the Adaptive Server environment:
Analyze the behavior of all execution objects and categorize them as much as possible.
Understand interdependencies and interactions between execution objects.
Perform benchmark tests to use as a baseline for comparison after establishing precedence.
Think about how to distribute processing in a multiprocessor environment.
Identify the critical execution objects for which you want to enhance performance.
Identify the noncritical execution objects that can afford decreased performance.
Establish a set of quantifiable performance goals for the execution objects identified in the last two items.
Understand the effects of using execution classes:
Understand the basic concepts associated with execution class assignments.
Decide whether to create one or more user defined-execution classes.
Understand the implications of different class level assignments—how do assignments affect the environment in terms of performance gains, losses, and interdependencies?
See n.
Assign execution classes and any independent engine affinity attributes.
After making execution precedence assignments, analyze the running Adaptive Server environment:
Run the benchmark tests you used in step 1 and compare the results.
If the results are not what you expect, take a closer look at the interactions between execution objects, as outlined in step 1.
Investigate dependencies that you might have missed.
Fine-tune the results by repeating steps 3 and 4 as many times as necessary.
Monitor the environment over time.