BUSINESS & MANAGEMENT
in Siebel By Duncan Scattergood, Operations Director, Customer Systems plc
user/administrator training, to enable them
S iebel is an extremely powerful application that has revolutionised the
way companies build relationships with their customers. With the
right implementation skills and expertise, Siebel is a dependable applica-
to use the application in the optimal way.
For example, we had a recent situation
tion with excellent performance. However, mistakes in design and/or where, whenever a sales person created a
conﬁguration can lead to particular functions, parts of or even all of the new opportunity, they had to add their
application running slower than might be expected. manager manually to the sales team so that
the manager could see the opportunity.
If the administrator had set up the rela-
Often these performance problems can text and impact of the slow performing tionship between the individuals’ positions
be swiftly remedied if the right level of elements. In particular, the following ques- correctly, there would have been no need
determination, skill and intellectual effort tions should be considered for each task for this manual step and the user would
is applied. It is important to realise that, that is affected by poor performance: have been saved time and effort.
although performance problems can be
characterised by certain common fea- • How frequently is the task performed? Once this investigation has been carried
tures, in fact every performance problem • How many users need to use the task? out, work should begin on analysing the
is slightly different, and so generalised • What is the impact of the slow problems that have been uncovered, and
solutions should not become a substitute performance of this task on the users? discovering their root causes. Remember
for expertise. that the analysis of a performance problem
How to approach a performance often takes longer than the eventual devel-
This article will examine some common improvement project opment of the solution. Some issues will
types of performance problems which are require intensive intellectual effort, and
encountered in Siebel. For each of these There are undoubtedly common themes others may require re-architecting of parts
types, we will suggest the ways in which among slow performing applications, and of the solution. Expert-level skill is indis-
the problems should be investigated and common causes of slow performance. pensable at this stage. A resource with
the approaches that can be adopted when However, it is essential not to generalise, extensive experience of rooting out poorly
designing solutions. and to recognise that every situation is dif- performing conﬁguration will pinpoint the
ferent. Any project to improve perform- cause far more quickly than one with little
What is unacceptable performance? ance must be approached in a systematic performance-speciﬁc experience.
way, but always with an open mind about
In order to consider how to eliminate it, where performance problems may be Major types of poor performance
we must ﬁrst identify what constitutes found, and how they may be tackled.
unacceptable performance. This varies As discussed previously, poor performance
from application to application, and The best way to identify the real problem and its causes vary from application to
depends very much on the context in areas within an application is to interview application. However, there are common
which the poor performance occurs. the users of the application, and to actually themes, so we will explore three major
For example, if only one particular task is get them to show you the problem. This areas into which the majority of perform-
affected by poor performance, and that will enable the evaluation of the applica- ance problems fall.
task is used by one user once a month, tion’s performance, the identiﬁcation of
then although occasionally problematic for the performance problems which are actu- A. The whole application runs slowly
one user, this may not constitute unaccept- ally affecting users’ abilities to do their jobs
able performance. However, if the task is on a day-to-day basis, and an assessment of One type of poor performance is where
used on a daily basis by the majority of the impact each of these problems has on the entire application is found to run
users, then the same level of performance overall productivity. Encouraging users to slowly. This particular type of performance
may be unacceptable. actually demonstrate the problem may problem is perceived to be common, but
often lead you to ﬁnd that the real issue is in reality it applies in probably less than
Therefore, when indentifying the perform- different from the issue that was originally 5% of cases.
ance issues to address in your Siebel appli- reported – or that the real need is not for
cation, it is important to consider the con- performance improvements but for When investigating a slow performing
application, it is important to ﬁnd out
whether performance is sensitive to factors
“The best way to identify the real such as the number of users or the time of
day. Are only particular user communities
or geographic locations affected?
problem areas within an application These factors can provide enormous
assistance when identifying the cause of
is to interview the users of the the poor performance.
application, and to actually get them Where performance is found to be poor
across the application, then causes such as
to show you the problem.” the network and hardware on which the
application is run should be suspected.
OracleScene Issue 30 Summer 2007 5
OPTIMISING PERFORMANCE IN SIEBEL
Settings for the object manager and for the index represents more workload for the sys-
database should also be investigated. tem when data is updated. In Siebel, it is By contrast, if a primary is speciﬁed,
quite common that the best solution to the then Siebel will generate a single piece
However, if the nature of the application is problem does not involve adding more of SQL that uses the primary ﬁeld to
such that most users perform only one or indices and, in some cases, adding more form a join to the Product table. This
two common tasks, then conﬁguration indices does not help at all. query is fundamentally much more
should be suspected as a possible cause of efﬁcient and will run faster, whilst not
the slow performance. When tackling this type of performance changing the way the application
problem, the ﬁrst thing to check is that works from a user point of view.
there is only one SQL statement generated
Example: by Siebel to load the view that is affected
by bad performance. Multiple SQL state- Example 2: a button click takes a long
We once encountered a situation where ments are problematic when the applica- time to execute
the complaint was that the whole tion is showing a list of data because there
application ran slowly for a particular will always be a main SQL statement for Usually, this type of problem occurs when
group of users in a particular location. the list and then one or more SQL state- a whole series of updates occur at a partic-
Before our involvement, everyone was ments for each row in the list. As there is ular point in a process, so a script or a
focused on the fact that the users were an overhead for every SQL statement, the workﬂow is often involved.
on a different sub-LAN to the rest of total overhead will grow quickly as the list
the organisation and it was therefore grows. The conﬁguration example below The ﬁrst stage of investigating this type of
assumed that the problem was net- for multi value links is an example of this performance issue is to break the process
work related. When we looked at the type of problem. down into smaller parts and then to exam-
problem, however, we spotted that this ine it in order to track down the problem.
group of users performed a single task Assuming there is only one SQL state- The following are the main factors to con-
which was not performed by anyone ment, the SQL statement can then be sim- sider during this examination:
else in the organisation. pliﬁed, for example by removing columns
and tables from it systematically until the • Is the code as efﬁcient as possible?
This then suggested to us that the problem disappears, in order to identify • Are there any redundant queries?
problem might be the way the the problem. Next, the conﬁguration must • Exactly what SQL is generated?
particular task performed and that the be examined in order to see what part of it • Are events triggering events which are
location of the users might be a red is generating the problematic part of the then triggering events and so on? In other
herring. We tested our theory by SQL statement and, ﬁnally, the conﬁgura- words, do we have the situation where an
signing on as one of the users who tion can be corrected so that it generates apparently efﬁcient piece of code is calling
had a problem from a location that more efﬁcient SQL. something that is inefﬁcient?
was known to generally perform well. • Is it possible to run any parts of the
The task still performed badly which The following sorts of conﬁguration workﬂow as an asynchronous back-
proved what we had suspected – that errors are frequently to blame for slowly ground process, and thereby give the
the problem related to the conﬁgura- loading views: user a faster response even though there
tion of the task and not the network. is still a lot of processing to be done?
It was then a short step to investigate • No primaries deﬁned on multi value
the conﬁguration, and to discover and links (MVLs). Example 3: a batch interface takes
ﬁx the real problems. • Calculations carried out on multi value hours to execute
• Excessive use of ForceActive, resulting in Begin by breaking the interface up into
B. Speciﬁc tasks or processes unnecessary ﬁelds being returned in stages, and then ask whether the right tech-
perform poorly queries, potentially forcing the inclusion nology is being employed, whether the
of extra tables in the SQL statement. appropriate architecture (parallel or sequen-
Poor performance often does not affect the • Sorts and/or searches executed across tial) is being used, and whether there are
entire application. In many cases, only cer- multiple tables. opportunities to reduce the volumes of
tain interfaces perform poorly, particular data, for example by spreading the load
views take a long time to load, or certain throughout the day, or by performing incre-
actions take a long time to complete. Conﬁguration Example: mental updates instead of full data loads.
Although a limited number of tasks or No primaries on multi value links
processes are affected, these types of issue The investigation should include all of the
constitute a signiﬁcant performance prob- A common configuration error that non-Siebel parts of an interface, such as data
lem if the tasks or processes are widely or can lead to performance problems is mapping performed in a third party tool.
frequently used. not putting a primary on a
multi-value link. Let’s take the In the case of EIM interfaces, particular
Example 1: certain views take a long example of exposing Products on consideration must be given to batch sizes,
time to load the Opportunity List Applet where as well as to the optimisation of the conﬁg-
each Opportunity can be for uration (.ifb) ﬁles. For eAI interfaces, con-
If this is the type of performance problem many Products. sider using simpliﬁed business components.
that has been identiﬁed, then the cause of it is
almost certainly one or more badly perform- If the multi value link to Product in C. Particular tasks are cumbersome
ing SQL statements. However, it is essential the Opportunity Business Component
not to jump to conclusions as to how to deal is conﬁgured with no primary, then Often the most dramatic improvements
with this scenario. Most people assume that Siebel will generate a separate query from a user perspective do not actually
the solution is simply to add indices to the over the Product Business Component involve changing the response time of the
database. It is true that this solves the prob- for each Opportunity. In other words, application, but rather they involve look-
lem in some cases, but in many cases it does if there are n Opportunities, n+1 ing at key tasks and redesigning them with
not, or may even cause further problems. pieces of SQL will be generated the goal of minimising the number of
Well thought-out indices can improve query and executed. clicks and keystrokes that a user needs to
times, but there is a tradeoff because every make in order to perform them. Arguably,
6 From the UK Oracle User Group
BUSINESS & MANAGEMENT
They had experienced severe, long-
standing performance issues in the
“Making frequently-used tasks less application. Numerous common queries
took several minutes to complete and users
cumbersome can greatly contribute were forced to open additional Siebel
client sessions in order to conduct work
to increased user satisfaction...” while a query executed in the original
session. Furthermore, the performance was
erratic and varied signiﬁcantly over the
these are not “performance problems”, but Furthermore, when reaching 150 concur- working day.
in our experience this is exactly the termi- rent users, it was not possible to load any
nology used by the majority of users to further users. The database became over- The performance problems were severe
describe these situations. loaded and the tests needed to be aborted, enough to lead the customer to consider
falling more than 50% short of the num- upgrading to a new version of Siebel in
Making frequently-used tasks less cumber- ber of users required. order to resolve them. They engaged us to
some can greatly contribute to increased estimate the upgrade.
user satisfaction, and can serve to improve The customer’s efforts to resolve these per-
user perception of the application’s formance problems had failed, and we were After some investigation, our consultant’s
performance. Furthermore, the resulting engaged to provide the necessary assistance. conclusion was that, if an upgrade were
conﬁguration is often simpler and easier to carried out without any existing perform-
maintain than the conﬁguration it replaces. Within a day of coming on site, our con- ance problems being addressed, then these
sultant had developed a working theory of issues would be migrated to the newer
Summary what was causing the performance issues. implementation of Siebel, and the users’
This was suspected to be poor conﬁgura- problems would not be solved.
When embarking on a performance tion resulting in unnecessary SQL queries
improvement project in Siebel, it is essen- being executed. Our suggestion was that the performance
tial to adopt a systematic approach with an issues should be reviewed before the
open mind, and not to jump to conclu- By lunchtime on the second day, our upgrade took place, to see whether they
sions. However, more often than not, you consultant had implemented a solution in could be rapidly resolved for the immedi-
should suspect poor conﬁguration rather the load testing environment and had run ate beneﬁt of the users.
than inappropriate architecture. At all another test.
stages, keep in mind the real objective of Six key transactions were identiﬁed which
the exercise: to create an application which As a result of the performance improve- were commonly used, and which were
is straightforward, responsive and fast for ments implemented by our consultant, the exhibiting poor performance. During a ﬁve
users. This will allow you to focus your application was readily able to cope with day assignment, we reduced the response
efforts in the most important areas, and the 400 users in the load test with no bot- time of each of these transactions from
get the maximum improvement for the tlenecks, compared to less than 150 with- minutes down to one or two seconds.
minimum effort. out the performance improvements. As a result of the improvement in the
performance of these transactions, the
Case studies: succeeding where Within just three days, our consultant “cache hit ratio” on the database (an
others had failed delivered improvements in response times indicator for how well tuned a database is)
such that the important views loaded 70% improved by almost a third.
Here we will consider two case studies faster with 300 concurrent users than they
which demonstrate how Customer had done with just a single user before our Within just ﬁve days, our consultant had
Systems have succeeded in delivering sig- intervention. identiﬁed and improved these key
niﬁcant improvements in performance transactions, resulting in a faster running
within a matter of days. database, and a more stable performance
Customer Systems traced significant of the Siebel application over the course
performance problems in a customer’s of the working day.
Customer Systems delivered considerable application to a small number of trans-
performance improvements for a member- actions, and delivered a huge improve-
ship organisation by redesigning the way ment in the running of the application
its online registration system worked with- within just five days.
in just three days.
This customer uses Siebel to track the
This customer was about to launch its testing and approval of new products.
combined web and call centre application
which would allow members to register
and make payments, either online or by
speaking to an agent.
About the Author
During the test cycle, a load test had been
Duncan Scattergood is Operations Director and co-founder of
run to ensure that the application could cope
Customer Systems plc, where he is responsible for all sales,
with 400 simultaneous users. However, dur-
marketing, project delivery and recruitment functions.
ing load testing, it was discovered that when
150 concurrent users were using the applica- Customer Systems is wholly focused on Siebel, Siebel Reports
tion, performance seriously deteriorated. and Siebel Analytics and has accomplished hundreds of
Several user actions, such as opening views successful implementations. Based in the UK, they have
and clicking buttons, that took approximate- delivered services in 28 countries across 4 continents. 19% of
ly 3 seconds to perform when only one user the customers listed in Siebel’s last annual report have used
was using the system took 30 seconds to Customer Systems. Duncan can be contacted at
execute with 150 users connected. firstname.lastname@example.org.
OracleScene Issue 30 Summer 2007 7