Database Reference
In-Depth Information
Cataloging the Problems
The first steps to take when dealing with performance problems are to identify them from a business perspective and
to set a priority and a target for each of them, as illustrated in Figure 1-3 .
Identify the Problems
from a Business
Perspective
Set a Priority for
Each Problem
Set a Target for
Each Problem
Figure 1-3. Tasks to carry out while cataloging performance problems
Business problems cannot be found by looking at system statistics. They have to be identified from a business
perspective. If a monitoring of service level agreements is in place, the performance problems are obviously identified
by looking at the operations not fulfilling expectations. Otherwise, there is no other possibility but to speak with
the users or those who are responsible for the application. Such discussions can lead to a list of operations, such as
registering a new user, running a report, or loading a bunch of data that is considered slow.
It is not always necessary to identify problems from a business perspective. sometimes they are already
known. for example, the identification is required when somebody tells you something like “the end-users are constantly
complaining about the performance; find out what the causes are.” but additional identification is not needed when your
customer tells you that “running the report XY takes way too long.” In the latter case, you already know what part of the
application you have to look at. In the former, you have no clue; any part of the application might be involved.
Caution
Once you have identified the problematic operations, it is time to give them a priority. For that, ask questions
like “If we can work on only five problems, which should be handled?” Of course, the idea is to solve them all, but
sometimes the time or budget is limited. In addition, it is not possible to leave out cases where the measures needed
to fix different problems conflict with each other. It is important to stress that to set priorities, the current performance
could be irrelevant. For example, if you are dealing with a set of reports, it is not always the slowest one that has the
highest priority. Possibly the fastest one is also the one that is executed more frequently, or the one the business (or
simply the CEO) cares about most. It might therefore have the highest priority and should be optimized first. Once
more, business requirements are driving you.
For each problem, you should set a quantifiable target for the optimization, such as “When the Create User
button is clicked, the processing lasts at most two seconds.” If the performance requirements or even service level
agreements are available, it is possible that the targets are already known. Otherwise, once again, you must consider
the business requirements to determine the targets. Note that without targets you do not know when it is time to stop
investigating for a better solution. In other words, the optimization could be endless. Remember, the effort should
always be balanced by the benefit.
Working the Problems
Troubleshooting several problems at the same time is much more complex than troubleshooting a single problem.
Therefore, whenever possible, you should work one problem at a time. Simply take the list of problems and go
through them according to their priority level.
 
 
Search WWH ::




Custom Search