Optimising Performance in Siebel By Duncan Scattergood, Operations

Document Sample
Optimising Performance in Siebel By Duncan Scattergood, Operations Powered By Docstoc
					                                                                                                                                                  BUSINESS & MANAGEMENT
Optimising Performance
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
configuration 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 configuration 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-specific 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 first 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 identification 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 find 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 find 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
                                   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 specified,
                                                                                      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 field 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 configuration                indices does not help at all.                    query is fundamentally much more
                                   should be suspected as a possible cause of                                                          efficient and will run faster, whilst not
                                   the slow performance.                              When tackling this type of performance           changing the way the application
                                                                                      problem, the first 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       workflow 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 configuration example below          The first 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.                        plified, for example by removing columns
                                                                                      and tables from it systematically until the    • Is the code as efficient 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 configuration 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, finally, the configura-         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 efficient piece of code is calling
                                     had a problem from a location that               more efficient SQL.                               something that is inefficient?
                                     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 configuration              workflow 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 configura-             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 defined on multi value
                                     the configuration, and to discover and              links (MVLs).                                Example 3: a batch interface takes
                                     fix the real problems.                            • Calculations carried out on multi value      hours to execute
                                                                                        fields (MVFs).
                                                                                      • Excessive use of ForceActive, resulting in   Begin by breaking the interface up into
                                   B. Specific tasks or processes                        unnecessary fields 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.                Configuration 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 significant 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 config-
                                                                                        each Opportunity can be for                  uration (.ifb) files. For eAI interfaces, con-
                                   If this is the type of performance problem           many Products.                               sider using simplified business components.
                                   that has been identified, 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 configured 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 significantly 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
configuration is often simpler and easier to                                                    carried out without any existing perform-
maintain than the configuration 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 configura-        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 configuration rather         the load testing environment and had run       ate benefit of the users.
than inappropriate architecture. At all         another test.
stages, keep in mind the real objective of                                                     Six key transactions were identified 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 five
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 five days, our consultant had
Systems have succeeded in delivering sig-       intervention.                                  identified and improved these key
nificant 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.                                      dscattergood@customersystems.com.

OracleScene Issue 30 Summer 2007                                                                                                             7

Shared By:
Description: Optimising Performance in Siebel By Duncan Scattergood, Operations