SlideShare une entreprise Scribd logo
1  sur  19
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                           E
                                                           Q
                                                           U
                                                           I
                                                           R
                     SIEBEL BEST PRACTICES
                                                           E
                                                           M
                    Topic: Configuring the Front-End for Optimal
                                    Performance
                                                           E
                                                           N
                                                           T
                                                           S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 1 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                                                             R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                                                             E
          OVERVIEW .................................................................................................................3
          D  ISCUSSING    P                            I
                                    ERFORMANCE SSUES WITH THE                             C     LIENT    ........................................4
          T P
            OP       RIORITYC          ONSIDERATIONS                                                                         Q
                                                                ...........................................................................5
            Using a Sort Specification on a Non-Indexed Column ............................................................... 5

                                                                                                                             U
            Using a Search Specification on a Non-Indexed Column ........................................................... 5
            Using a Search Specification on a Calculated Field .................................................................... 5
            List Applets Containing Multi Value Links That Do Not Have A Primary Id Field ................ 5


          S
            List Applets Containing Multi Value Links That Have “Check No Match” Set to “TRUE” ... 6
            ECOND    P      RIORITY C          ONSIDERATIONS
                                                                                                                             I
                                                                         ....................................................................8
            Number of Business Components Per View ............................................................................... 8
            Form Applets Containing Multi Value Links That Do Not Have A Primary Id Field ............. 8
            Form Applets Containing MVLs That Have “Check No Match” Set to “TRUE” .................... 8
                                                                                                                             R
            Number of Joins, Extension Tables, and Primary MVLs per Business Component .................. 8
          T HIRD   P     RIORITYC           ONSIDERATIONS                                                                    E
                                                                     .......................................................................9
            Number of Fields Used per Business Component ....................................................................... 9


          B EST  P    RACTICES
                                                                                                                             M
            Joins that can be Inner Joins Instead of Outer Joins ................................................................... 9
                                .....................................................................................................11
            Analyzing SQL Statements ...................................................................................................... 11
                                                                                                                             E
            Comparison with Vanilla Siebel................................................................................................ 15
            Coaxing the Optimizer into Using the Best Indices ................................................................. 15
            Removing Sort Specifications ................................................................................................... 16
            Search Specifications and Sort Specifications Using the Same Index ...................................... 16     N
            Enforcing Case Sensitivity ........................................................................................................ 16
            Adding Indices .......................................................................................................................... 17
            Search Specifications in Business Components Instead of in Applets or in Pick Lists ............ 17
            Putting Sort Specifications in Business Components Instead of in Pick Lists ......................... 18
                                                                                                                             T
            Using a New View in Place of an MVG ................................................................................... 18
            Deciding Between Extension Columns and Extension Tables ................................................. 18     S
            Avoiding Automatically Displayed Totals ............................................................................... 18
             Queries in Siebel Visual Basic .................................................................................................. 18
             Using the Cache Data Property on a Business Component ..................................................... 18
                                                                                                                             D
             Setting the Long List Property on a Pick List ........................................................................... 19


                                                                                                                             E
Created: Dinesh Chandrasekar                           Page 2 of 19
                                                                                                                             F        Sierra Atlantic Proprietary &


                                                                                                                             I
                                                                                                                                                       Confidential




                                                                                                                             N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          OVERVIEW
                                                                                               E
                                                                                               Q
          This document contains Sierra‟s Best Practices for Configuring the Front-End for Optimal
          Performance for Siebel Enterprise Applications. It assumes that the reader has a general
          knowledge of front-end configuration principles and of database theory.For the most part, this
          document does not contain information already contained in Siebel documentation unless it is
                                                                                               U
          among the more important practices. It does include research from Sierra implementations,
          competitor implementations, and from Siebel‟s Support Web Site.
          The issues contained in this document are organized by priority. The higher priority
                                                                                               I
          considerations have a higher probability of causing performance problems, and are also
          associated with more severe problems.

                                                                                               R
                                                                                               E
                                                                                               M
                                                                                               E
                                                                                               N
                                                                                               T
                                                                                               S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 3 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          DISCUSSING PERFORMANCE ISSUES WITH THE CLIENT
                                                                                               E
                                                                                               Q
          This document will help developers identify potential performance issues with configuration
          requests. We must be careful to handle these issues properly with the client. Our clients must
          not get the impression that Siebel is a slow system – it‟s not. At the same time, we must ensure
          that clients are aware of any issues that may arise. It can be very difficult to balance these two
                                                                                               U
          maxims. Let us take an example of a client who wishes to have seven MVGs on a list applet.
          This means that Siebel must execute up to eight separate SQL statements to display a record in
          the list applet (one for the applet itself and one for each of the seven MVGs to display the initial
                                                                                               I
          value). It would be inappropriate to simply say to the client that performance will be poor.
          First, this may lead the client to think that Siebel is a slow system. Second, performance is a
          result of several factors, such as network speed, database configuration, and processing speed.

                                                                                               R
          A list applet with seven MVGs may not exhibit poor performance depending on these and other
          factors. However, the client should be made aware in advance that performance issues might
          arise. This is not a result of anything specific to Siebel, it is simply the result of a large amount

                                                                                               E
          of SQL hitting the database. A good way to approach this with a client is as follows: “As I‟ve
          been reviewing our design, I‟ve noticed that this applet is going to be displaying a lot of
          information from a lot of different tables. As with any application, the more tables that have to

                                                                                               M
          be accessed, the more time it takes to retrieve the information from these tables. Sometimes,
          this can result in slow performance. This isn‟t because of Siebel; we could run the SQL directly
          against the database and it wouldn‟t go much faster. It‟s just a result of the fact that it‟s a

                                                                                               E
          complex SQL statement. We‟ll make sure to carefully monitor this as we get closer to
          production, but I wanted you to be aware of this possibility in advance. It may mean that we‟ll
          redesign the screens for better performance.” This way, the client is aware of the issue but is
          not concerned that they made the wrong choice by purchasing Siebel. Sierra has routinely
                                                                                               N
          generated a high customer satisfaction rating for Siebel‟s clients. As Premier Partners, we must
          continue to deliver this level of satisfaction and promote the high quality of the Siebel software.


                                                                                               T
                                                                                               S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 4 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          TOP PRIORITY CONSIDERATIONS
                                                                            E
          Using a Sort Specification on a Non-Indexed Column                Q
          If a sort is performed on a non-indexed column, Siebel performs a full table scan to retrieve the

                                                                            U
          data. The data are also sorted in a temporary table that must be created to perform the sort. For
          tables containing many records, this can be a very time-consuming process. As an example, an
          implementation had a Sort Specification on a non-indexed column in the Account table. With
          100,000 Accounts, it took seven minutes between the time a user clicked to open the Account
                                                                            I
          Pick List and the time that the Pick List actually opened. Once the Sort Specification was
          removed, the Pick List appeared in three seconds. Unindexed Sort Specifications should never
          be used on tables containing a large number of records.
                                                                            R
          As a note, people often respond to this statement by asking, “How many records is a large
          number?” The answer is that it depends on several factors. Since there is no hard-and-fast rule,
          it is best just to be aware of this consideration if performance issues arise.
                                                                            E
          Using a Search Specification on a Non-Indexed Column

                                                                            M
          If a Search Specification is applied to a non-indexed column, Siebel may perform a full table
          scan to retrieve the data. For tables containing many records, this can be a very time-consuming
          process. For these tables, Search Specifications should always be performed on indexed
          columns.
                                                                            E
          Using a Search Specification on a Calculated Field

                                                                            N
          If a Search Specification is applied to a calculated field, Siebel performs a full table scan to
          retrieve the data. For tables containing many records, this can be a very time-consuming
          process. For these tables, Search Specifications should never be performed on calculated fields.

                                                                            T
          List Applets Containing Multi Value Links That Do Not Have A Primary Id Field
          Siebel always displays a value in a multi-value field if that MVG has child records. For
                                                                            S
          example, in the Account List Applet one of the Account‟s addresses is displayed when the
          Account List Applet is populated. The remaining addresses are displayed when the Address
          MVG is opened. The point here is that, if the Account has one or more addresses, Siebel will

                                                                                               D
          display one in the MVG. To rephrase in generic terms, if a record has an MVG that has one or
          more child records, Siebel will display one of the child records in the MVG.
          The Primary Id Field property of a Multi Value Link specifies the field that holds the ROW_ID

                                                                                               E
          of the one primary child record. When Siebel needs to display one of the child records in an
          MVG, if the corresponding MVL has a Primary Id Field and has the Use Primary Join property
          set to “TRUE” then Siebel will use that field to join directly to the primary child record and


Created: Dinesh Chandrasekar                 Page 5 of 19
                                                                                               F
          display it in the MVG. If there is no Primary Id Field on the MVF, Siebel will execute a second

                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                        E
          query against the child Business Component to retrieve all child records; one will be displayed
          in the MVG. Since this second query is performed for each parent record, this can cause poor
          performance in list applets. Let us take the example of a list applet that has an MVG that does
                                                                        Q
          not have a Primary Id Field. If the list applet displays fifteen records, Siebel will need to
          execute sixteen separate SQL statements to display the list applet (one for the list applet itself
          and one for the MVG for each of the fifteen records to display the initial value in the MVG). List

                                                                        U
          applets should never contain MVGs that do not have a Primary Id Field.
          As a design note, many MVG Applets have a “Primary” field that places a checkmark next to
          the primary child record. It is not necessary to display this “Primary” field in the MVG Applet
                                                                        I
          to obtain the performance benefits. It is only important that the underlying database contain
          this value.

          List Applets Containing Multi Value Links That Have “Check No R
                                                                        Match” Set to
          “TRUE”

                                                                        E
          The Check No Match property tells Siebel that if no record is found while trying to execute a
          Primary Join to a child record then Siebel should execute a second query to retrieve all child
          records. Setting this property to “TRUE” can cause poor performance unless nearly all parent
          records have child records through the MVG. For the most part, the only MVLs that have the
                                                                        M
          Check No Match property set to “TRUE” are the Address MVLs. This is because a) most
          records that can have addresses (such as Accounts, Opportunities and Contacts) do have
          addresses, and b) the address functionality is critical to much of the other functionality in Siebel
                                                                        E
          such as Territory Assignment. MVLs that match these criteria are the only MVLs that should
          have the Check No Match property set to “TRUE”. Otherwise, similar to the case of MVLs that
          do not have a Primary Id Field, a second query will be executed for each record in the list
          applet.
                                                                        N
          Exhibit 1 contains information about the relationship between the Primary Id Field property
          and the Check No Match property.
                                                                        T
                                                                        S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 6 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                                R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                                E
          Does MVL Have a Primary                      Check No Match                          Results
                 Id Field?
                         No                                  TRUE
                                                                                                Q
                                                                                    Siebel will always execute a
                                                                                    second query for each record


                         No                                 FALSE
                                                                                                U
                                                                                    in the parent applet.
                                                                                    Siebel will always execute a
                                                                                    second query for each record
                                                                                                I
                                                                                    in the parent applet.
                         Yes                                 TRUE                   Siebel will execute a second

                                                                                                R
                                                                                    query for each record in the
                                                                                    parent applet if that record
                                                                                    either does not have a value in

                                                                                                E
                                                                                    the Primary Id Field or if a
                                                                                    match cannot be found
                                                                                    between the Primary Id Field
                                                                                    and a ROW_ID in the child
                                                                                    table.      M
                         Yes                                FALSE                   This generates the best

                                                                                                E
                                                                                    performance. Siebel will not
                                                                                    perform the second query for
                                                                                    the child records until and

                                                                                                N
                                                                                    unless the MVG is opened.
              Exhibit 1: Relationship Between the Primary Id Field Property and the Check No Match Property


                                                                                                T
          As a reminder, the Use Primary Join property must be set to “TRUE” for the Primary Id Field to
          be used. Even if there is a Primary Id Field, Siebel will not perform the join unless the Use
          Primary Join property is set to “TRUE”.

                                                                                                S
                                                                                                D
                                                                                                E
Created: Dinesh Chandrasekar                 Page 7 of 19
                                                                                                F     Sierra Atlantic Proprietary &


                                                                                                I
                                                                                                                       Confidential




                                                                                                N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          SECOND PRIORITY CONSIDERATIONS
                                                                             E
          Number of Business Components Per View                             Q
          Siebel must execute a separate SQL statement for each Business Component that appears in the

                                                                             U
          applets in a view. If the client‟s business requirements allow, it is best to minimize the number
          of Business Components in a view. For example, instead of creating an Account view that
          displays Accounts in one applets, Contacts for the Account in another, and Opportunities for
          the Account in another, it is best to split this into two views. One should contain the Account
                                                                             I
          and its Contacts, the other should contain the Account and its Opportunities.



                                                                             R
          Form Applets Containing Multi Value Links That Do Not Have A Primary Id Field
          The functional issue here is the same as with list applets. However, because form applets only
          display one record at a time, only one additional query will be executed for each MVG. This is

                                                                             E
          the reason that this is a second priority issue.

          Form Applets Containing MVLs That Have “Check No Match” Set to “TRUE”

                                                                             M
          The functional issue here is the same as with list applets. However, because form applets only
          display one record at a time, only one additional query will be executed for each MVG. This is
          the reason that this is a second priority issue.

                                                                             E
          Number of Joins, Extension Tables, and Primary MVLs per Business Component
          There are three items in a Business Component that can cause a join to be executed. The first is
                                                                             N
          an explicitly defined join. The second is if Siebel needs a field in an extension table for a
          Business Component. Siebel needs to perform a join to get to the extension table. (As a note,
          such joins do not need to be explicitly defined. When an extension table is created, a join is
                                                                             T
          implicitly defined.) Third is a Multi Value Link that has a Primary Id Field and has Use
          Primary Join set to “TRUE”. This type of join is defined elsewhere in this document.
          Performance issues are not a result of simply having joins, extension tables, and MVLs in a
                                                                             S
          Business Component. The potential issues revolve around the number of these that are used by
          Siebel at any one time.


                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 8 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          THIRD PRIORITY CONSIDERATIONS
                                                                                               E
          Number of Fields Used per Business Component                                         Q
          Siebel will only execute SQL that is necessary for it to retrieve data from the necessary columns

                                                                                               U
          in the database. A database column is considered necessary if a) the values in that column will
          be displayed in an applet in the current view, b) the Force Active property for the Business
          Component Field is set to “TRUE”, or c) the Link Spec property for the Business Component
          Field is set to “TRUE”. Let us take the example of a Contact applet that displays the name of the
                                                                                               I
          Contact‟s Account. In this case, Siebel will perform a join to get to the NAME field in the
          Account table. Let us take another example of a Contact applet that does not display the name
          of the Contact‟s Account. Assuming the field in the Contact Business Component that contains
                                                                                               R
          the Account name is not forced active, Siebel will not perform a join to get to the NAME field in
          the Account table.
          The Force Active property tells Siebel to always retrieve the data for the field regardless of
                                                                                               E
          whether it will be displayed in an applet. This is often used for Search Specifications when the
          field used in the Search Specification is not displayed to the user. The field must be forced
          active so that Siebel will retrieve the data and can perform the search.
                                                                                               M
          The Link Specification property is set to “TRUE” to make the value in the field available to
          “Parent:” default values in child Business Components. For example, the Action Business

                                                                                               E
          Component (used by Activities and the Calendar) has a field that stores a Contact‟s Job Title.
          The Pre Default Value for this field is “Parent: 'Contact.Job Title'”. This means that when an
          activity is created with the Contact Business Component as Parent and the Action Business
          Component as child, the Contact Job Title field in the Action Business Component will pre
                                                                                               N
          default to the value of the Job Title field in the Contact Business Component. For this to work,
          the Job Title field in the Contact Business Component must have the Link Specification property
          set to “TRUE”.

          Joins that can be Inner Joins Instead of Outer Joins
                                                                                               T
                                                                                               S
          Siebel can perform two different types of joins when joining one table (the source table) to
          another (the target table). This is specified by the Outer Join property of a Join. An outer join
          retrieves all records in the source table and all values in the target table where the joined
          columns are equal (technically, this is actually a left outer join – Siebel cannot perform right

                                                                                               D
          outer joins). As an example, the join from the Contact Business Component to the Account table
          is an outer join. The Contact Business Component will retrieve all Contacts, and will retrieve
          the information from the Account table if the Contact has a foreign key to an Account. An inner

                                                                                               E
          join retrieves only those records in the source table where there is a foreign key to an Account.
          If the above join were an inner join, Siebel will only retrieve those Contacts that have Accounts.
          Therefore, this join must be an outer join since some Contacts do not have an Account.


Created: Dinesh Chandrasekar                 Page 9 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          When all records in the source table will have a corresponding record in the target table, an
          inner join can be used. Inner joins generate faster performance than outer joins. As an example,
          the Opportunity Product Business Component uses an inner join to join to the product. This is
                                                                                               Q
          because this Business Component is based off of the S_OPTY_PROD table. This table requires
          that all records have a foreign key to the product table. There can never be a record in this
          Business Component that does not have a corresponding product. Therefore, an inner join can
          be used.
                                                                                               U
                                                                                               I
                                                                                               R
                                                                                               E
                                                                                               M
                                                                                               E
                                                                                               N
                                                                                               T
                                                                                               S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 10 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance


          BEST PRACTICES
                                                                                               E
          Analyzing SQL Statements                                                             Q
          Siebel can be set to spool out the SQL that it generates while running. To do this, right-click on

                                                                                               U
          the Siebel icon on your desktop. Click on Properties. Click on the Shortcut tab. To the existing
          information in the Target section, add “/s c:siebelbinXXXXXX.sql” where “XXXXXX”
          represents the file name of your choice. This is illustrated in Exhibit 2.

                                                                                               I
                                                                                               R
                                                                                               E
                                                                                               M
                                                                                               E
                                                                                               N
                                                                                               T
                                      Exhibit 2: Setting Siebel to Spool SQL Statements        S
                                                                                               D
          Siebel will copy all SQL statements to this file. The file can then be opened with WordPad and
          reviewed. Notepad should not be used since the formatting will be lost.
          Siebel sends each and every SQL statement to this file as it is executed. This brings up two

                                                                                               E
          considerations. First, when analyzing the SQL from a particular view or applet, it is best to go
          into Siebel, go directly to the view or applet, and close Siebel as soon as the query is complete.
          This file can become very large very fast as a user spends much time in Siebel. Second, it is best
          to start looking for your SQL statement at the bottom of the file. Siebel generates a number of

Created: Dinesh Chandrasekar                 Page 11 of 19
                                                                                               F
          SQL statements during startup before the application even appears. These are related to tasks
                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          such as verifying the user‟s login information, retrieving system preferences from the database,
          checking the user‟s Responsibilities and Views, and retrieving today‟s appointments from the
          Activity table. These statements will appear at the beginning of the file.
                                                                                               Q
          Analysis of these SQL statements can provide ideas for improving performance. Exhibit 3
          provides an example of an SQL statement from the “My Accounts” view that will be briefly

                                                                                               U
          analyzed for performance.
          SELECT
                T1.ROW_ID,
                T1.MODIFICATION_NUM,

                                                                                               I
                T1.CREATED_BY,
                T1.LAST_UPD_BY,
                T1.CREATED,
                T1.LAST_UPD,
                T1.CONFLICT_ID,
                T1.PAR_OU_ID,
                T2.LOC,
                T2.NAME,
                T3.NAME,
                                                                                               R
                T1.CURR_PRI_LST_ID,
                T1.PR_ADDR_ID,
                T1.PR_REP_ASGN_TYPE,
                T1.PR_BL_ADDR_ID,
                                                                                               E
                T1.PR_BL_PER_ID,


                                                                                               M
                T1.PR_INDUST_ID,
                T1.PR_POSTN_ID,
                T1.PR_SRV_AGREE_ID,
                T1.PR_SHIP_ADDR_ID,
                T1.PR_SHIP_PER_ID,


                                                                                               E
                T1.PR_SYN_ID,
                T1.PR_TERR_ID,
                T1.PR_OU_TYPE_ID,
                T1.REGION,
                T1.OU_TYPE_CD,
                T1.CUST_STAT_CD,
                T1.ASGN_PH_AC,
                T1.ASGN_PH_CC,
                T1.ASGN_USR_EXCLD_FLG,
                                                                                               N
                T1.CMPT_FLG,
                T1.BASE_CURCY_CD,
                T1.DIVISION,
                T1.URL,
                                                                                               T
                T1.LOC,


                                                                                               S
                T1.LOCATION_LEVEL,
                T1.MAIN_FAX_PH_NUM,
                T1.MAIN_PH_NUM,
                T1.NAME,
                T4.NAME,



                                                                                               D
                T5.NAME,
                T6.ZIPCODE,
                T6.STATE,
                T6.ADDR,
                T6.CITY,
                T6.COUNTRY,
                T7.NAME,
                T9.NAME,
                T9.ROW_ID,
                T8.ROW_STATUS,
                                                                                               E
                                                                                               F
                T9.PR_EMP_ID,
                T10.LOGIN,
                T8.ASGN_TYPE,
Created: Dinesh Chandrasekar                 Page 12 of 19                                          Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance
                T8.ACCNT_LOC,
                T8.ACCNT_NAME,
                T8.POSITION_ID,
                                                                                               E
                T4.ROW_ID,
                T5.ROW_ID,
                T6.ROW_ID,
                T7.ROW_ID,
                T9.ROW_ID,
                                                                                               Q
                T8.ROW_ID
             FROM
                                                                                               U
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ORG_EXT T2 ON T1.PAR_OU_ID = T2.ROW_ID,
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_PRI_LST T3 ON T1.CURR_PRI_LST_ID =
          T3.ROW_ID,


                                                                                               I
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_INDUST T4 ON T1.PR_INDUST_ID = T4.ROW_ID,
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ORG_SYN T5 ON T1.PR_SYN_ID = T5.ROW_ID,
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ADDR_ORG T6 ON T1.PR_ADDR_ID = T6.ROW_ID,
                 SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_TERR T7 ON T1.PR_TERR_ID = T7.ROW_ID,
                 SIEBEL.S_ACCNT_POSTN T8 JOIN SIEBEL.S_POSTN T9 ON (T9.ROW_ID = T8.POSITION_ID, 1),

          T8.OU_EXT_ID,
                                                                                               R
                 SIEBEL.S_ORG_EXT T1 JOIN SIEBEL.S_ACCNT_POSTN T8 ON T8.POSITION_ID = ? AND T1.ROW_ID =

                 SIEBEL.S_POSTN T9 LEFT OUTER JOIN SIEBEL.S_EMPLOYEE T10 ON T9.PR_EMP_ID = T10.ROW_ID
             WHERE

                                                                                               E
                 (T1.OU_TYPE_CD = ?)
              ORDER BY
                 T8.POSITION_ID, T8.ACCNT_NAME, T8.ACCNT_LOC


                                                                                               M
          Bind variable 1: 0-5220
          Bind variable 2: Commercial

          ***** SQL Statement Execute Time: 0.050 seconds *****
                                    Exhibit 3: Sample SQL From the “My Account” View
                                                                                               E
          We will look at three examples from this SQL statement. First, look at the bold and shaded

                                                                                               N
          “S_PRI_LST” in the FROM clause. This indicates that Siebel is looking for the Account‟s Price
          Lists. If your client does not need to have the Price Lists displayed in the “My Account” view,
          you can remove these fields from the applets. Then, Siebel will not join to this table to get Price
          Lists. This will remove this join from the FROM clause in this SQL statement.
                                                                                               T
          Second, look at the bold and shaded WHERE clause and the bold and shaded bind variable.
          This is not the forum for a detailed explanation of bind variables, but a brief and moderately

                                                                                               S
          accurate explanation is required for those readers who may not be familiar with them. The
          WHERE clause contains a question mark. At runtime, Siebel inserts the bind variable into the
          SQL statement to replace these question marks. Bind variable 1 will be inserted into the second-

                                                                                               D
          to-last line of the FROM clause for the POSITION_ID. Bind variable 2 will be inserted into the
          WHERE clause. This indicates that Siebel is looking for Accounts where the value of the
          OU_TYPE_CD column is “Commercial”. Apparently, this Business Component was designed
          to display only commercial Accounts since WHERE clauses are the result of Search
                                                                                               E
          Specifications. Looking in Siebel Tools at the indices on the Account table, we can see that there
          is no index on this field. These can be found in the Table Folder under Index -> Index Column.
          None of the indices in the S_ORG_EXT table have OU_TYPE_CD as an Index Column. To


Created: Dinesh Chandrasekar                 Page 13 of 19
                                                                                               F
          improve performance, either a) a different field that has an index should be used to store this

                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          information, or b) your Technical Account Manager can investigate the possibility of creating an
          index on this field. These options are all discussed in greater detail in the Best Practices
          Examples section of this document.
                                                                                               Q
          Third, look at the bold and shaded ORDER BY clause. ORDER BY clauses are either the result
          of a Sort Specification or of the automatic use of an index. If there is no Sort Specification on a

                                                                                               U
          Business Component, Siebel will automatically sort by using an index. Look at the “T8” in the
          ORDER BY clause. This is an alias for one of the tables in the FROM clause. These aliases are
          used throughout the SQL statement, making the statement easier to read. The bold and
          highlighted “S_ACCNT_POSTN T8” in the FROM clause indicates that T8 is the alias for the
                                                                                               I
          S_ACCNT_POSTN table. Looking at the indices for this table, we see that there is an index that
          uses the columns in the ORDER BY clause in the same order. It is the S_ACCNT_POSTN_M1


                                                                                               R
                                                                                               E
                                                                                               M
                                                                                               E
                                                                                               N
                                                                                               T
                                                                                               S
                                                                                               D
                                                                                               E
          index and is shown in Exhibit 4.
                          Exhibit 4: Examining the Columns in the S_ACCNT_POSTN_M1 Index.



Created: Dinesh Chandrasekar                 Page 14 of 19
                                                                                               F
          Since the columns in the SQL statement correspond to the columns in the index, we can focus
          on performance improvement opportunities other than the ORDER BY clause.
                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          To summarize, the FROM clause is a result of the joins that are used. The WHERE clause is a
          result of the Search Specification. The ORDER BY clause is either the result of a Sort
          Specification or of the automatic use of an index.
                                                                                               Q
          As a note, “All” views automatically ignore a configured Sort Specification and use all or part of
          the U1 index for the table on which the Business Component is based. Developers should be

                                                                                               U
          aware of this when reviewing spooled SQL so that they do not misinterpret this as a bug.

          Comparison with Vanilla Siebel

                                                                                               I
          Since performance is a result of several factors, it is best to compare the performance of a
          configured version of a view with the performance of the Vanilla version of the view if
          applicable. If the Vanilla view performs poorly, the performance issues may be the result of
          network or database issues instead of front-end configuration.
                                                                                               R
          Coaxing the Optimizer into Using the Best Indices

                                                                                               E
          Accounts, Opportunities, and Contacts are the main tables off of which Siebel is based. The
          “My Accounts”, “My Opportunities”, and “My Contacts” views are those records of which the
          user is part of the Account Team, Sales Team, and Access List accordingly. Team memberships

                                                                                               M
          are stored in respective intersection tables with the Position table. These intersection tables are
          the S_ACCNT_POSTN, S_OPTY_POSTN, and S_POSTN_CON tables respectively. Generally,
          the best indices for the “My” views are on these tables. This is because the best way to perform

                                                                                               E
          a query is to first execute those parts of the query that most quickly reduce the number of
          records that are retrieved. As an extreme example, let us say that only one out of the 100,000
          Accounts in the database is not a commercial Account. It would be much better for Siebel to

                                                                                               N
          first narrow down the list of Accounts to those where the user is a member of the team and then
          filter for those that are commercial, rather than first retrieving the 99,999 commercial Accounts
          and then examining the teams.

                                                                                               T
          Siebel is best run on a rule-based optimizer as opposed to a cost-based optimizer. An optimizer
          is a component of the database that determines the best way to run a query. However,
          optimizers do not always succeed in determining the best way to run a query. Let us return to

                                                                                               S
          the SQL in Exhibit 3. The WHERE clause may cause Siebel to first filter the Account table for
          commercial Accounts and then look for Accounts where the user is part of the team. It would
          be better if Siebel would first look in the S_ACCNT_POSTN table. (Note: your database


                                                                                               D
          administrator can use RDBMS tools to analyze the query to see how it is being performed.)
          Sometimes the optimizer can be coaxed into using the best indices by modifying the Search
          Specification. Looking in the Account Business Component, we see that the Assignment Type
          field is using the Position MVL to get to the S_ACCNT_POSTN table. Changing the Search
                                                                                               E
          Specification from „[Type]="Commercial"‟ to „[Assignment Type]=”*”, [Type]="Commercial"‟
          can coax the optimizer into going to the S_ACCNT_POSTN table first. Notice that the asterisk
          is the wildcard character for searches. This means that Siebel will retrieve all Accounts


Created: Dinesh Chandrasekar                 Page 15 of 19
                                                                                               F
          regardless of the Assignment Type. This is the intention. We do not want to change the results
                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          of the query, we just want it to perform better. This Search Specification can sometimes cause
          the optimizer to use the S_ACCNT_POSTN table and its indices first rather than first looking
          through the Account Type field. Your database administrator can analyze the results of the
          query to determine if an improvement was made. Performance improvements may also be
          readily apparent simply from running the application.
                                                                                               Q
                                                                                               U
          The best way to implement this technique is to expose a multi value field in the Business
          Component that maps to the POSITION_ID column in the intersection table. This is the field
          that should be used in the Search Specification. This will, if successful, coax the optimizer into
          using an index in the intersection table that starts with the POSITION_ID column. These are
          always the best indices in the intersection tables.                                  I
          Removing Sort Specifications
                                                                                               R
          Sort Specifications can often be removed without adversely affecting usage of the system.
          When there are more than a few hundred records in a table, it is often faster for users to

                                                                                               E
          perform a query rather than scrolling to the record for which they are looking. As an example,
          if there are 100,000 Accounts in the system, users will never open the Account Pick List and
          scroll through 100,000 Accounts to find the record for which they are looking. Instead, they
          should be trained to perform a query in the Pick List to find the record.
                                                                                               M
          Search Specifications and Sort Specifications Using the Same Index

                                                                                               E
          When possible, Search Specifications and Sort Specification for a Business Component should
          use the same index. Let us take an example of a Contact Affiliation Business Component that is
          based off of the S_CONTACT_XM table. Let us also assume there is another Business

                                                                                               N
          Component based off of this table that is storing other types of records. TYPE is a required
          column, so it will likely be predefaulted with some standard value such as “AFFILIATION”.
          NAME is a required column, and will contain the name of the affiliation (e.g. “Rotary Club”,
          “Toastmasters”). Users may want to see these affiliations listed in alphabetical order. The
          Contact Affiliation Business Component will need a Search Specification of           T
          „[Type]=”AFFILIATION”‟ to avoid retrieving the records in the other Business Component.
          This will cause Siebel to use the S_CONTACT_XM_M1 index since TYPE is the first column in
                                                                                               S
          the index. If the Sort Specification sorted by the NAME field, Siebel would have to perform a
          scan because there is no index that has NAME as the first column. However, if the Sort
          Specification was „TYPE, NAME‟, Siebel could still use the S_CONTACT_XM_M1 index that it

                                                                                               D
          had already used, because these two columns in this order comprise the index. The result will
          be the same, but performance will be better. Since the Search Specification and the Sort
          Specification are using the same index, the query will be performed faster.

          Enforcing Case Sensitivity                                                           E
          Case sensitive queries are faster than case insensitive queries. Forcing the application to be case
          sensitive can be handled with four techniques.

Created: Dinesh Chandrasekar                 Page 16 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          First, application-wide case sensitivity is specified in the datasource sections of the CFG file.
          Look in your CFG file in the [Local] datasource for the CaseInsensitivity parameter. This
          should be set to “FALSE”. This tells Siebel that, throughout the application, all interaction with
          the database should be on a case sensitive basis.
                                                                                               Q
          Second, Search Specifications can contain a tilde (~) to indicate that this specific part of the

                                                                                               U
          query should use the opposite sensitivity setting as in the CFG file. Let us take an example of a
          Search Specification on the Contact Business Component where „[Alias]=”Personal”‟ and
          CaseInsensitivity=”FALSE” in the CFG. Siebel will perform a case sensitive search on this field.
          If the Search Specification was changed to „[Alias]~=”Personal”‟, Siebel would perform a case
          insensitive search on this field.                                                    I
          Third, Predefined Queries can also contain a tilde to indicate that this specific part of the query

                                                                                               R
          should use the opposite sensitivity setting as in the CFG file.
          Fourth, the Use Default Sensitivity property of a Field in a Business Component indicates
          whether queries on that field should, by default, use or not use the sensitivity specified in the

                                                                                               E
          CFG. If Use Default Sensitivity is set to “TRUE”, Siebel will use whatever is specified in the
          CFG. If Use Default Sensitivity is set to “FALSE”, Siebel will use the opposite of whatever is
          specified in the CFG. This property can be overridden with a tilde in a Search Specification or
          in a Pre Defined Query.
                                                                                               M
          The best approach for optimizing performance is to have CaseInsensitivity=”FALSE” for all
          datasources in the CFG file, not to use tildes in Search Specifications or in Predefined Queries,

                                                                                               E
          and to set Use Default Sensitivity to “TRUE” for all Fields in all Business Components. If the
          client‟s business processes require a case insensitive search on a specific field, the best approach
          is to have CaseInsensitivity=”FALSE” for all datasources in the CFG file, not to use tildes in

                                                                                               N
          Search Specifications or in Predefined Queries, and to set Use Default Sensitivity to “TRUE” for
          all Fields in all Business Components except those that need to be case insensitive.

          Adding Indices
                                                                                               T
          If necessary, custom indices can be created on a table to help performance. Your Technical
          Account Manager should be consulted before creating a new index to ensure there are no

                                                                                               S
          adverse effects. New indices can cause poor performance in other areas of the application.

          Search Specifications in Business Components Instead of in Applets or in Pick Lists

                                                                                               D
          Applets and Pick Lists can also have Search Specifications. However, data are retrieved into the
          Business Component first. This means that a separate SQL statement will be issued if there is a
          Search Specification in the Applet or Pick List. If such an Applet or Pick List is exhibiting poor

                                                                                               E
          performance, it may be better to create a new Business Component with the proper Search
          Specification, remove the Search Specification from the Applet or Pick List, and base the Applet
          or Pick List off of the new Business Component. New Business Components should not be


Created: Dinesh Chandrasekar                 Page 17 of 19
                                                                                               F
          created in these cases simply as a rule of thumb, but instead should be created only if no other
          performance improvement techniques have worked.
                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

          Putting Sort Specifications in Business Components Instead of in Pick Lists          E
          Pick Lists can also have a Sort Specification. However, data are retrieved into the Business

                                                                                               Q
          Component first. This means that a separate SQL statement will be issued if there is a Sort
          Specification in the Pick List. If such a Pick List is exhibiting poor performance, it may be better
          to create a new Business Component with the proper Sort Specification, remove the Sort
          Specification from the Pick List, and base the Pick List off of the new Business Component.
                                                                                               U
          New Business Components should not be created in these cases simply as a rule of thumb, but
          instead should be created only if no other performance improvement techniques have worked.

          Using a New View in Place of an MVG                                                  I
          Where possible, parent-child relationships can be represented by creating a new view rather

                                                                                               R
          than creating an MVG. Let us take the earlier example of creating a Contact Affiliations
          Business Component. It would be better to display these affiliations by creating a Contact
          Affiliations View instead of putting an Affiliations MVG in an existing applet. This will reduce
          the number of joins or additional queries that are executed per view. The new view would have
          Contacts in the top Applet and Affiliations in the bottom Applet.                    E
                                                                                               M
          Deciding Between Extension Columns and Extension Tables
          For additional fields that will always be displayed in the Business Component, it is best to
          create extension columns on the base table to avoid the extra join associated with the extension

                                                                                               E
          table. For additional fields that will be displayed on only one or a few views, it is best to create
          an extension table. Most database platforms have a limit to the number of columns that can
          exist in any one table. Also, a large number of columns in one table can exceed the page size of

                                                                                               N
          the database.

          Avoiding Automatically Displayed Totals

                                                                                               T
          For list applets that can display totals, performance can be improved by setting the Total
          Displayed property of the List object to “FALSE”. With this setting, users will only see totals if
          they explicitly select Show Totals from the Edit menu. The view will initially appear faster, and
          users can incur the extra time only if they wish to see totals.
                                                                                               S
          Queries in Siebel Visual Basic

                                                                                               D
          Developers should keep the concepts described in this document in mind when writing VB that
          performs queries. These queries are subject to the same performance issues as queries that are
          executed directly from Applets or Business Components.

          Using the Cache Data Property on a Business Component                                E
          If the Cache Data property is set to “TRUE” for a Business Component, the data are read once


Created: Dinesh Chandrasekar                 Page 18 of 19
                                                                                               F
          from the database and cached. If the property is set to “FALSE”, the data are retrieved every

                                                                                                    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N
BEST PRACTICES


                                                                                               R
          Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance

                                                                                               E
          time they are requested for display in the user interface. Although setting this property to
          “TRUE” can improve performance, it should only be set to “TRUE” for Business Components
          that contain data that will not change often. As examples, the Pick List Generic Business
                                                                                               Q
          Component, which displays List of Values data, has Cache Data set to “TRUE”. The Account
          Business Component does not have Cache Data set to “TRUE” because Account data changes
          frequently.

          Setting the Long List Property on a Pick List
                                                                                               U
                                                                                               I
          If the Long List property on a Pick List is set to “FALSE”, Siebel will try to position the cursor
          on the current value of the field in the Pick List. Let us take the example of the Account Type
          Pick List, which has Long List set to “FALSE”. Assume an existing Account has an Account
          Type of “OEM”. When the user clicks on the Account Type Pick List for this Account, Siebel
                                                                                               R
          will scroll the list in the Pick List to “OEM” and highlight this selection. This is the default
          setting for a Pick List.


                                                                                               E
          If there is going to be a long list of records in a Pick List, this functionality can be time
          consuming. Because of this, Pick Lists that will display a long list of records have the Long List
          property set to “TRUE”. This tells Siebel not to spend the time trying to scroll the list to the
          current value. As an example, Pick Lists for Opportunities have the Long List property set to
          “TRUE”.                                                                              M
          Please feel free to post your queries and Clarifications to
          Siebel. Competency@ SierraAtlantic.com
                                                                                               E
                                                                                               N
                                                                                               T
                                                                                               S
                                                                                               D
                                                                                               E
Created: Dinesh Chandrasekar                 Page 19 of 19
                                                                                               F    Sierra Atlantic Proprietary &


                                                                                               I
                                                                                                                     Confidential




                                                                                               N

Contenu connexe

Similaire à Dinesh Wp Configuring Siebel Front End For Optimal Performance

Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...
Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...
Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...Impetus Technologies
 
Nemertes Research Report
Nemertes Research ReportNemertes Research Report
Nemertes Research ReportLanair
 
V mware organizing-for-the-cloud-whitepaper
V mware organizing-for-the-cloud-whitepaperV mware organizing-for-the-cloud-whitepaper
V mware organizing-for-the-cloud-whitepaperEMC
 
Business and Economic Benefits of VMware NSX
Business and Economic Benefits of VMware NSXBusiness and Economic Benefits of VMware NSX
Business and Economic Benefits of VMware NSXAngel Villar Garea
 
Network Virtualization and Security with VMware NSX - Business Case White Pap...
Network Virtualization and Security with VMware NSX - Business Case White Pap...Network Virtualization and Security with VMware NSX - Business Case White Pap...
Network Virtualization and Security with VMware NSX - Business Case White Pap...Błażej Matusik
 
Beginers Guide To Seo
Beginers Guide To SeoBeginers Guide To Seo
Beginers Guide To SeoW.Peterson
 
Not all XML Gateways are Created Equal
Not all XML Gateways are Created EqualNot all XML Gateways are Created Equal
Not all XML Gateways are Created EqualCA API Management
 
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...Creating Value with SAP BusinessObjects Planning and Consolidation, version f...
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...dcd2z
 
VMware Networking 5.0
VMware Networking 5.0VMware Networking 5.0
VMware Networking 5.0rashedmasood
 
xCP2 0 Performance Best Practices and Guidelines
xCP2 0 Performance Best Practices and GuidelinesxCP2 0 Performance Best Practices and Guidelines
xCP2 0 Performance Best Practices and GuidelinesHaytham Ghandour
 
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...ENVIMART
 
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow meters
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow metersDynasonics tfx 5000 manual badger meter-transit time ultrasonic flow meters
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow metersENVIMART
 
Downloads pdf-echo operate (1)
Downloads pdf-echo operate (1)Downloads pdf-echo operate (1)
Downloads pdf-echo operate (1)Punya Benja
 
EMC Cisco SAP HANA Appliance Disaster Tolerance
EMC Cisco SAP HANA Appliance Disaster ToleranceEMC Cisco SAP HANA Appliance Disaster Tolerance
EMC Cisco SAP HANA Appliance Disaster ToleranceEMC
 
Dell Data Migration A Technical White Paper
Dell Data Migration  A Technical White PaperDell Data Migration  A Technical White Paper
Dell Data Migration A Technical White Papernomanc
 
Payroll
PayrollPayroll
Payrollravi78
 

Similaire à Dinesh Wp Configuring Siebel Front End For Optimal Performance (20)

Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...
Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...
Three Unique Approaches for Dynamic Database Design Challenges- Impetus White...
 
Crisp dm
Crisp dmCrisp dm
Crisp dm
 
Nemertes Research Report
Nemertes Research ReportNemertes Research Report
Nemertes Research Report
 
V mware organizing-for-the-cloud-whitepaper
V mware organizing-for-the-cloud-whitepaperV mware organizing-for-the-cloud-whitepaper
V mware organizing-for-the-cloud-whitepaper
 
Business and Economic Benefits of VMware NSX
Business and Economic Benefits of VMware NSXBusiness and Economic Benefits of VMware NSX
Business and Economic Benefits of VMware NSX
 
Network Virtualization and Security with VMware NSX - Business Case White Pap...
Network Virtualization and Security with VMware NSX - Business Case White Pap...Network Virtualization and Security with VMware NSX - Business Case White Pap...
Network Virtualization and Security with VMware NSX - Business Case White Pap...
 
Beginers Guide To Seo
Beginers Guide To SeoBeginers Guide To Seo
Beginers Guide To Seo
 
SEAMLESS MPLS
SEAMLESS MPLSSEAMLESS MPLS
SEAMLESS MPLS
 
Lfa
LfaLfa
Lfa
 
Not all XML Gateways are Created Equal
Not all XML Gateways are Created EqualNot all XML Gateways are Created Equal
Not all XML Gateways are Created Equal
 
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...Creating Value with SAP BusinessObjects Planning and Consolidation, version f...
Creating Value with SAP BusinessObjects Planning and Consolidation, version f...
 
VMware Networking 5.0
VMware Networking 5.0VMware Networking 5.0
VMware Networking 5.0
 
Oracle sap
Oracle sapOracle sap
Oracle sap
 
xCP2 0 Performance Best Practices and Guidelines
xCP2 0 Performance Best Practices and GuidelinesxCP2 0 Performance Best Practices and Guidelines
xCP2 0 Performance Best Practices and Guidelines
 
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...
Dynasonics tfx 500w manual badger meter-clamp-on transit time ultrasonic flow...
 
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow meters
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow metersDynasonics tfx 5000 manual badger meter-transit time ultrasonic flow meters
Dynasonics tfx 5000 manual badger meter-transit time ultrasonic flow meters
 
Downloads pdf-echo operate (1)
Downloads pdf-echo operate (1)Downloads pdf-echo operate (1)
Downloads pdf-echo operate (1)
 
EMC Cisco SAP HANA Appliance Disaster Tolerance
EMC Cisco SAP HANA Appliance Disaster ToleranceEMC Cisco SAP HANA Appliance Disaster Tolerance
EMC Cisco SAP HANA Appliance Disaster Tolerance
 
Dell Data Migration A Technical White Paper
Dell Data Migration  A Technical White PaperDell Data Migration  A Technical White Paper
Dell Data Migration A Technical White Paper
 
Payroll
PayrollPayroll
Payroll
 

Plus de Dr.Dinesh Chandrasekar PhD(hc)

SQL Architect posting 8th April 2018 /parimala.rekha@pactera.com
SQL Architect posting 8th April 2018 /parimala.rekha@pactera.comSQL Architect posting 8th April 2018 /parimala.rekha@pactera.com
SQL Architect posting 8th April 2018 /parimala.rekha@pactera.comDr.Dinesh Chandrasekar PhD(hc)
 
Everyday Life Champion - A Book by Dinesh Chandrasekar
Everyday Life Champion - A Book by Dinesh ChandrasekarEveryday Life Champion - A Book by Dinesh Chandrasekar
Everyday Life Champion - A Book by Dinesh ChandrasekarDr.Dinesh Chandrasekar PhD(hc)
 
Big Data Customer Experience Analytics -- The Next Big Opportunity for You
Big Data Customer Experience Analytics -- The Next Big Opportunity for You Big Data Customer Experience Analytics -- The Next Big Opportunity for You
Big Data Customer Experience Analytics -- The Next Big Opportunity for You Dr.Dinesh Chandrasekar PhD(hc)
 
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*Dr.Dinesh Chandrasekar PhD(hc)
 

Plus de Dr.Dinesh Chandrasekar PhD(hc) (20)

Dr Dinesh Chandrasekar LinkedIn Profile May 2020
Dr Dinesh Chandrasekar LinkedIn Profile May 2020Dr Dinesh Chandrasekar LinkedIn Profile May 2020
Dr Dinesh Chandrasekar LinkedIn Profile May 2020
 
CIO Review - Dinesh Chandrasekar Article on IoT
CIO Review - Dinesh Chandrasekar Article on IoTCIO Review - Dinesh Chandrasekar Article on IoT
CIO Review - Dinesh Chandrasekar Article on IoT
 
SQL Architect posting 8th April 2018 /parimala.rekha@pactera.com
SQL Architect posting 8th April 2018 /parimala.rekha@pactera.comSQL Architect posting 8th April 2018 /parimala.rekha@pactera.com
SQL Architect posting 8th April 2018 /parimala.rekha@pactera.com
 
Everyday Life Champion - A Book by Dinesh Chandrasekar
Everyday Life Champion - A Book by Dinesh ChandrasekarEveryday Life Champion - A Book by Dinesh Chandrasekar
Everyday Life Champion - A Book by Dinesh Chandrasekar
 
Emerging Leader 101 by Dinesh Chandrasekar
Emerging Leader 101 by Dinesh ChandrasekarEmerging Leader 101 by Dinesh Chandrasekar
Emerging Leader 101 by Dinesh Chandrasekar
 
Big Data Customer Experience Analytics -- The Next Big Opportunity for You
Big Data Customer Experience Analytics -- The Next Big Opportunity for You Big Data Customer Experience Analytics -- The Next Big Opportunity for You
Big Data Customer Experience Analytics -- The Next Big Opportunity for You
 
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*
Everyday Customer Experience (CX) Champion by Dinesh Chandrasekar DC*
 
Celebrate success at work
Celebrate success at workCelebrate success at work
Celebrate success at work
 
Cart before the horse
Cart before the horseCart before the horse
Cart before the horse
 
Building the responsive crm
Building the responsive crmBuilding the responsive crm
Building the responsive crm
 
Building a business case for crm upgrade
Building a business case for crm upgradeBuilding a business case for crm upgrade
Building a business case for crm upgrade
 
Brotherhood of master data
Brotherhood of master dataBrotherhood of master data
Brotherhood of master data
 
Brand relationship management
Brand relationship managementBrand relationship management
Brand relationship management
 
Book review steve jobs way
Book review  steve jobs wayBook review  steve jobs way
Book review steve jobs way
 
Bi roi
Bi roiBi roi
Bi roi
 
Bi breaks free
Bi breaks freeBi breaks free
Bi breaks free
 
Being second in race and first in quality
Being second in race and first in qualityBeing second in race and first in quality
Being second in race and first in quality
 
Befriend your crm workforce
Befriend your crm workforceBefriend your crm workforce
Befriend your crm workforce
 
CX
CX CX
CX
 
B2 b crm
B2 b crmB2 b crm
B2 b crm
 

Dernier

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Dinesh Wp Configuring Siebel Front End For Optimal Performance

  • 1. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E Q U I R SIEBEL BEST PRACTICES E M Topic: Configuring the Front-End for Optimal Performance E N T S D E Created: Dinesh Chandrasekar Page 1 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 2. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E OVERVIEW .................................................................................................................3 D ISCUSSING P I ERFORMANCE SSUES WITH THE C LIENT ........................................4 T P OP RIORITYC ONSIDERATIONS Q ...........................................................................5 Using a Sort Specification on a Non-Indexed Column ............................................................... 5 U Using a Search Specification on a Non-Indexed Column ........................................................... 5 Using a Search Specification on a Calculated Field .................................................................... 5 List Applets Containing Multi Value Links That Do Not Have A Primary Id Field ................ 5 S List Applets Containing Multi Value Links That Have “Check No Match” Set to “TRUE” ... 6 ECOND P RIORITY C ONSIDERATIONS I ....................................................................8 Number of Business Components Per View ............................................................................... 8 Form Applets Containing Multi Value Links That Do Not Have A Primary Id Field ............. 8 Form Applets Containing MVLs That Have “Check No Match” Set to “TRUE” .................... 8 R Number of Joins, Extension Tables, and Primary MVLs per Business Component .................. 8 T HIRD P RIORITYC ONSIDERATIONS E .......................................................................9 Number of Fields Used per Business Component ....................................................................... 9 B EST P RACTICES M Joins that can be Inner Joins Instead of Outer Joins ................................................................... 9 .....................................................................................................11 Analyzing SQL Statements ...................................................................................................... 11 E Comparison with Vanilla Siebel................................................................................................ 15 Coaxing the Optimizer into Using the Best Indices ................................................................. 15 Removing Sort Specifications ................................................................................................... 16 Search Specifications and Sort Specifications Using the Same Index ...................................... 16 N Enforcing Case Sensitivity ........................................................................................................ 16 Adding Indices .......................................................................................................................... 17 Search Specifications in Business Components Instead of in Applets or in Pick Lists ............ 17 Putting Sort Specifications in Business Components Instead of in Pick Lists ......................... 18 T Using a New View in Place of an MVG ................................................................................... 18 Deciding Between Extension Columns and Extension Tables ................................................. 18 S Avoiding Automatically Displayed Totals ............................................................................... 18 Queries in Siebel Visual Basic .................................................................................................. 18 Using the Cache Data Property on a Business Component ..................................................... 18 D Setting the Long List Property on a Pick List ........................................................................... 19 E Created: Dinesh Chandrasekar Page 2 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 3. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance OVERVIEW E Q This document contains Sierra‟s Best Practices for Configuring the Front-End for Optimal Performance for Siebel Enterprise Applications. It assumes that the reader has a general knowledge of front-end configuration principles and of database theory.For the most part, this document does not contain information already contained in Siebel documentation unless it is U among the more important practices. It does include research from Sierra implementations, competitor implementations, and from Siebel‟s Support Web Site. The issues contained in this document are organized by priority. The higher priority I considerations have a higher probability of causing performance problems, and are also associated with more severe problems. R E M E N T S D E Created: Dinesh Chandrasekar Page 3 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 4. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance DISCUSSING PERFORMANCE ISSUES WITH THE CLIENT E Q This document will help developers identify potential performance issues with configuration requests. We must be careful to handle these issues properly with the client. Our clients must not get the impression that Siebel is a slow system – it‟s not. At the same time, we must ensure that clients are aware of any issues that may arise. It can be very difficult to balance these two U maxims. Let us take an example of a client who wishes to have seven MVGs on a list applet. This means that Siebel must execute up to eight separate SQL statements to display a record in the list applet (one for the applet itself and one for each of the seven MVGs to display the initial I value). It would be inappropriate to simply say to the client that performance will be poor. First, this may lead the client to think that Siebel is a slow system. Second, performance is a result of several factors, such as network speed, database configuration, and processing speed. R A list applet with seven MVGs may not exhibit poor performance depending on these and other factors. However, the client should be made aware in advance that performance issues might arise. This is not a result of anything specific to Siebel, it is simply the result of a large amount E of SQL hitting the database. A good way to approach this with a client is as follows: “As I‟ve been reviewing our design, I‟ve noticed that this applet is going to be displaying a lot of information from a lot of different tables. As with any application, the more tables that have to M be accessed, the more time it takes to retrieve the information from these tables. Sometimes, this can result in slow performance. This isn‟t because of Siebel; we could run the SQL directly against the database and it wouldn‟t go much faster. It‟s just a result of the fact that it‟s a E complex SQL statement. We‟ll make sure to carefully monitor this as we get closer to production, but I wanted you to be aware of this possibility in advance. It may mean that we‟ll redesign the screens for better performance.” This way, the client is aware of the issue but is not concerned that they made the wrong choice by purchasing Siebel. Sierra has routinely N generated a high customer satisfaction rating for Siebel‟s clients. As Premier Partners, we must continue to deliver this level of satisfaction and promote the high quality of the Siebel software. T S D E Created: Dinesh Chandrasekar Page 4 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 5. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance TOP PRIORITY CONSIDERATIONS E Using a Sort Specification on a Non-Indexed Column Q If a sort is performed on a non-indexed column, Siebel performs a full table scan to retrieve the U data. The data are also sorted in a temporary table that must be created to perform the sort. For tables containing many records, this can be a very time-consuming process. As an example, an implementation had a Sort Specification on a non-indexed column in the Account table. With 100,000 Accounts, it took seven minutes between the time a user clicked to open the Account I Pick List and the time that the Pick List actually opened. Once the Sort Specification was removed, the Pick List appeared in three seconds. Unindexed Sort Specifications should never be used on tables containing a large number of records. R As a note, people often respond to this statement by asking, “How many records is a large number?” The answer is that it depends on several factors. Since there is no hard-and-fast rule, it is best just to be aware of this consideration if performance issues arise. E Using a Search Specification on a Non-Indexed Column M If a Search Specification is applied to a non-indexed column, Siebel may perform a full table scan to retrieve the data. For tables containing many records, this can be a very time-consuming process. For these tables, Search Specifications should always be performed on indexed columns. E Using a Search Specification on a Calculated Field N If a Search Specification is applied to a calculated field, Siebel performs a full table scan to retrieve the data. For tables containing many records, this can be a very time-consuming process. For these tables, Search Specifications should never be performed on calculated fields. T List Applets Containing Multi Value Links That Do Not Have A Primary Id Field Siebel always displays a value in a multi-value field if that MVG has child records. For S example, in the Account List Applet one of the Account‟s addresses is displayed when the Account List Applet is populated. The remaining addresses are displayed when the Address MVG is opened. The point here is that, if the Account has one or more addresses, Siebel will D display one in the MVG. To rephrase in generic terms, if a record has an MVG that has one or more child records, Siebel will display one of the child records in the MVG. The Primary Id Field property of a Multi Value Link specifies the field that holds the ROW_ID E of the one primary child record. When Siebel needs to display one of the child records in an MVG, if the corresponding MVL has a Primary Id Field and has the Use Primary Join property set to “TRUE” then Siebel will use that field to join directly to the primary child record and Created: Dinesh Chandrasekar Page 5 of 19 F display it in the MVG. If there is no Primary Id Field on the MVF, Siebel will execute a second Sierra Atlantic Proprietary & I Confidential N
  • 6. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E query against the child Business Component to retrieve all child records; one will be displayed in the MVG. Since this second query is performed for each parent record, this can cause poor performance in list applets. Let us take the example of a list applet that has an MVG that does Q not have a Primary Id Field. If the list applet displays fifteen records, Siebel will need to execute sixteen separate SQL statements to display the list applet (one for the list applet itself and one for the MVG for each of the fifteen records to display the initial value in the MVG). List U applets should never contain MVGs that do not have a Primary Id Field. As a design note, many MVG Applets have a “Primary” field that places a checkmark next to the primary child record. It is not necessary to display this “Primary” field in the MVG Applet I to obtain the performance benefits. It is only important that the underlying database contain this value. List Applets Containing Multi Value Links That Have “Check No R Match” Set to “TRUE” E The Check No Match property tells Siebel that if no record is found while trying to execute a Primary Join to a child record then Siebel should execute a second query to retrieve all child records. Setting this property to “TRUE” can cause poor performance unless nearly all parent records have child records through the MVG. For the most part, the only MVLs that have the M Check No Match property set to “TRUE” are the Address MVLs. This is because a) most records that can have addresses (such as Accounts, Opportunities and Contacts) do have addresses, and b) the address functionality is critical to much of the other functionality in Siebel E such as Territory Assignment. MVLs that match these criteria are the only MVLs that should have the Check No Match property set to “TRUE”. Otherwise, similar to the case of MVLs that do not have a Primary Id Field, a second query will be executed for each record in the list applet. N Exhibit 1 contains information about the relationship between the Primary Id Field property and the Check No Match property. T S D E Created: Dinesh Chandrasekar Page 6 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 7. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E Does MVL Have a Primary Check No Match Results Id Field? No TRUE Q Siebel will always execute a second query for each record No FALSE U in the parent applet. Siebel will always execute a second query for each record I in the parent applet. Yes TRUE Siebel will execute a second R query for each record in the parent applet if that record either does not have a value in E the Primary Id Field or if a match cannot be found between the Primary Id Field and a ROW_ID in the child table. M Yes FALSE This generates the best E performance. Siebel will not perform the second query for the child records until and N unless the MVG is opened. Exhibit 1: Relationship Between the Primary Id Field Property and the Check No Match Property T As a reminder, the Use Primary Join property must be set to “TRUE” for the Primary Id Field to be used. Even if there is a Primary Id Field, Siebel will not perform the join unless the Use Primary Join property is set to “TRUE”. S D E Created: Dinesh Chandrasekar Page 7 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 8. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance SECOND PRIORITY CONSIDERATIONS E Number of Business Components Per View Q Siebel must execute a separate SQL statement for each Business Component that appears in the U applets in a view. If the client‟s business requirements allow, it is best to minimize the number of Business Components in a view. For example, instead of creating an Account view that displays Accounts in one applets, Contacts for the Account in another, and Opportunities for the Account in another, it is best to split this into two views. One should contain the Account I and its Contacts, the other should contain the Account and its Opportunities. R Form Applets Containing Multi Value Links That Do Not Have A Primary Id Field The functional issue here is the same as with list applets. However, because form applets only display one record at a time, only one additional query will be executed for each MVG. This is E the reason that this is a second priority issue. Form Applets Containing MVLs That Have “Check No Match” Set to “TRUE” M The functional issue here is the same as with list applets. However, because form applets only display one record at a time, only one additional query will be executed for each MVG. This is the reason that this is a second priority issue. E Number of Joins, Extension Tables, and Primary MVLs per Business Component There are three items in a Business Component that can cause a join to be executed. The first is N an explicitly defined join. The second is if Siebel needs a field in an extension table for a Business Component. Siebel needs to perform a join to get to the extension table. (As a note, such joins do not need to be explicitly defined. When an extension table is created, a join is T implicitly defined.) Third is a Multi Value Link that has a Primary Id Field and has Use Primary Join set to “TRUE”. This type of join is defined elsewhere in this document. Performance issues are not a result of simply having joins, extension tables, and MVLs in a S Business Component. The potential issues revolve around the number of these that are used by Siebel at any one time. D E Created: Dinesh Chandrasekar Page 8 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 9. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance THIRD PRIORITY CONSIDERATIONS E Number of Fields Used per Business Component Q Siebel will only execute SQL that is necessary for it to retrieve data from the necessary columns U in the database. A database column is considered necessary if a) the values in that column will be displayed in an applet in the current view, b) the Force Active property for the Business Component Field is set to “TRUE”, or c) the Link Spec property for the Business Component Field is set to “TRUE”. Let us take the example of a Contact applet that displays the name of the I Contact‟s Account. In this case, Siebel will perform a join to get to the NAME field in the Account table. Let us take another example of a Contact applet that does not display the name of the Contact‟s Account. Assuming the field in the Contact Business Component that contains R the Account name is not forced active, Siebel will not perform a join to get to the NAME field in the Account table. The Force Active property tells Siebel to always retrieve the data for the field regardless of E whether it will be displayed in an applet. This is often used for Search Specifications when the field used in the Search Specification is not displayed to the user. The field must be forced active so that Siebel will retrieve the data and can perform the search. M The Link Specification property is set to “TRUE” to make the value in the field available to “Parent:” default values in child Business Components. For example, the Action Business E Component (used by Activities and the Calendar) has a field that stores a Contact‟s Job Title. The Pre Default Value for this field is “Parent: 'Contact.Job Title'”. This means that when an activity is created with the Contact Business Component as Parent and the Action Business Component as child, the Contact Job Title field in the Action Business Component will pre N default to the value of the Job Title field in the Contact Business Component. For this to work, the Job Title field in the Contact Business Component must have the Link Specification property set to “TRUE”. Joins that can be Inner Joins Instead of Outer Joins T S Siebel can perform two different types of joins when joining one table (the source table) to another (the target table). This is specified by the Outer Join property of a Join. An outer join retrieves all records in the source table and all values in the target table where the joined columns are equal (technically, this is actually a left outer join – Siebel cannot perform right D outer joins). As an example, the join from the Contact Business Component to the Account table is an outer join. The Contact Business Component will retrieve all Contacts, and will retrieve the information from the Account table if the Contact has a foreign key to an Account. An inner E join retrieves only those records in the source table where there is a foreign key to an Account. If the above join were an inner join, Siebel will only retrieve those Contacts that have Accounts. Therefore, this join must be an outer join since some Contacts do not have an Account. Created: Dinesh Chandrasekar Page 9 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 10. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E When all records in the source table will have a corresponding record in the target table, an inner join can be used. Inner joins generate faster performance than outer joins. As an example, the Opportunity Product Business Component uses an inner join to join to the product. This is Q because this Business Component is based off of the S_OPTY_PROD table. This table requires that all records have a foreign key to the product table. There can never be a record in this Business Component that does not have a corresponding product. Therefore, an inner join can be used. U I R E M E N T S D E Created: Dinesh Chandrasekar Page 10 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 11. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance BEST PRACTICES E Analyzing SQL Statements Q Siebel can be set to spool out the SQL that it generates while running. To do this, right-click on U the Siebel icon on your desktop. Click on Properties. Click on the Shortcut tab. To the existing information in the Target section, add “/s c:siebelbinXXXXXX.sql” where “XXXXXX” represents the file name of your choice. This is illustrated in Exhibit 2. I R E M E N T Exhibit 2: Setting Siebel to Spool SQL Statements S D Siebel will copy all SQL statements to this file. The file can then be opened with WordPad and reviewed. Notepad should not be used since the formatting will be lost. Siebel sends each and every SQL statement to this file as it is executed. This brings up two E considerations. First, when analyzing the SQL from a particular view or applet, it is best to go into Siebel, go directly to the view or applet, and close Siebel as soon as the query is complete. This file can become very large very fast as a user spends much time in Siebel. Second, it is best to start looking for your SQL statement at the bottom of the file. Siebel generates a number of Created: Dinesh Chandrasekar Page 11 of 19 F SQL statements during startup before the application even appears. These are related to tasks Sierra Atlantic Proprietary & I Confidential N
  • 12. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E such as verifying the user‟s login information, retrieving system preferences from the database, checking the user‟s Responsibilities and Views, and retrieving today‟s appointments from the Activity table. These statements will appear at the beginning of the file. Q Analysis of these SQL statements can provide ideas for improving performance. Exhibit 3 provides an example of an SQL statement from the “My Accounts” view that will be briefly U analyzed for performance. SELECT T1.ROW_ID, T1.MODIFICATION_NUM, I T1.CREATED_BY, T1.LAST_UPD_BY, T1.CREATED, T1.LAST_UPD, T1.CONFLICT_ID, T1.PAR_OU_ID, T2.LOC, T2.NAME, T3.NAME, R T1.CURR_PRI_LST_ID, T1.PR_ADDR_ID, T1.PR_REP_ASGN_TYPE, T1.PR_BL_ADDR_ID, E T1.PR_BL_PER_ID, M T1.PR_INDUST_ID, T1.PR_POSTN_ID, T1.PR_SRV_AGREE_ID, T1.PR_SHIP_ADDR_ID, T1.PR_SHIP_PER_ID, E T1.PR_SYN_ID, T1.PR_TERR_ID, T1.PR_OU_TYPE_ID, T1.REGION, T1.OU_TYPE_CD, T1.CUST_STAT_CD, T1.ASGN_PH_AC, T1.ASGN_PH_CC, T1.ASGN_USR_EXCLD_FLG, N T1.CMPT_FLG, T1.BASE_CURCY_CD, T1.DIVISION, T1.URL, T T1.LOC, S T1.LOCATION_LEVEL, T1.MAIN_FAX_PH_NUM, T1.MAIN_PH_NUM, T1.NAME, T4.NAME, D T5.NAME, T6.ZIPCODE, T6.STATE, T6.ADDR, T6.CITY, T6.COUNTRY, T7.NAME, T9.NAME, T9.ROW_ID, T8.ROW_STATUS, E F T9.PR_EMP_ID, T10.LOGIN, T8.ASGN_TYPE, Created: Dinesh Chandrasekar Page 12 of 19 Sierra Atlantic Proprietary & I Confidential N
  • 13. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance T8.ACCNT_LOC, T8.ACCNT_NAME, T8.POSITION_ID, E T4.ROW_ID, T5.ROW_ID, T6.ROW_ID, T7.ROW_ID, T9.ROW_ID, Q T8.ROW_ID FROM U SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ORG_EXT T2 ON T1.PAR_OU_ID = T2.ROW_ID, SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_PRI_LST T3 ON T1.CURR_PRI_LST_ID = T3.ROW_ID, I SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_INDUST T4 ON T1.PR_INDUST_ID = T4.ROW_ID, SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ORG_SYN T5 ON T1.PR_SYN_ID = T5.ROW_ID, SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_ADDR_ORG T6 ON T1.PR_ADDR_ID = T6.ROW_ID, SIEBEL.S_ORG_EXT T1 LEFT OUTER JOIN SIEBEL.S_TERR T7 ON T1.PR_TERR_ID = T7.ROW_ID, SIEBEL.S_ACCNT_POSTN T8 JOIN SIEBEL.S_POSTN T9 ON (T9.ROW_ID = T8.POSITION_ID, 1), T8.OU_EXT_ID, R SIEBEL.S_ORG_EXT T1 JOIN SIEBEL.S_ACCNT_POSTN T8 ON T8.POSITION_ID = ? AND T1.ROW_ID = SIEBEL.S_POSTN T9 LEFT OUTER JOIN SIEBEL.S_EMPLOYEE T10 ON T9.PR_EMP_ID = T10.ROW_ID WHERE E (T1.OU_TYPE_CD = ?) ORDER BY T8.POSITION_ID, T8.ACCNT_NAME, T8.ACCNT_LOC M Bind variable 1: 0-5220 Bind variable 2: Commercial ***** SQL Statement Execute Time: 0.050 seconds ***** Exhibit 3: Sample SQL From the “My Account” View E We will look at three examples from this SQL statement. First, look at the bold and shaded N “S_PRI_LST” in the FROM clause. This indicates that Siebel is looking for the Account‟s Price Lists. If your client does not need to have the Price Lists displayed in the “My Account” view, you can remove these fields from the applets. Then, Siebel will not join to this table to get Price Lists. This will remove this join from the FROM clause in this SQL statement. T Second, look at the bold and shaded WHERE clause and the bold and shaded bind variable. This is not the forum for a detailed explanation of bind variables, but a brief and moderately S accurate explanation is required for those readers who may not be familiar with them. The WHERE clause contains a question mark. At runtime, Siebel inserts the bind variable into the SQL statement to replace these question marks. Bind variable 1 will be inserted into the second- D to-last line of the FROM clause for the POSITION_ID. Bind variable 2 will be inserted into the WHERE clause. This indicates that Siebel is looking for Accounts where the value of the OU_TYPE_CD column is “Commercial”. Apparently, this Business Component was designed to display only commercial Accounts since WHERE clauses are the result of Search E Specifications. Looking in Siebel Tools at the indices on the Account table, we can see that there is no index on this field. These can be found in the Table Folder under Index -> Index Column. None of the indices in the S_ORG_EXT table have OU_TYPE_CD as an Index Column. To Created: Dinesh Chandrasekar Page 13 of 19 F improve performance, either a) a different field that has an index should be used to store this Sierra Atlantic Proprietary & I Confidential N
  • 14. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E information, or b) your Technical Account Manager can investigate the possibility of creating an index on this field. These options are all discussed in greater detail in the Best Practices Examples section of this document. Q Third, look at the bold and shaded ORDER BY clause. ORDER BY clauses are either the result of a Sort Specification or of the automatic use of an index. If there is no Sort Specification on a U Business Component, Siebel will automatically sort by using an index. Look at the “T8” in the ORDER BY clause. This is an alias for one of the tables in the FROM clause. These aliases are used throughout the SQL statement, making the statement easier to read. The bold and highlighted “S_ACCNT_POSTN T8” in the FROM clause indicates that T8 is the alias for the I S_ACCNT_POSTN table. Looking at the indices for this table, we see that there is an index that uses the columns in the ORDER BY clause in the same order. It is the S_ACCNT_POSTN_M1 R E M E N T S D E index and is shown in Exhibit 4. Exhibit 4: Examining the Columns in the S_ACCNT_POSTN_M1 Index. Created: Dinesh Chandrasekar Page 14 of 19 F Since the columns in the SQL statement correspond to the columns in the index, we can focus on performance improvement opportunities other than the ORDER BY clause. Sierra Atlantic Proprietary & I Confidential N
  • 15. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E To summarize, the FROM clause is a result of the joins that are used. The WHERE clause is a result of the Search Specification. The ORDER BY clause is either the result of a Sort Specification or of the automatic use of an index. Q As a note, “All” views automatically ignore a configured Sort Specification and use all or part of the U1 index for the table on which the Business Component is based. Developers should be U aware of this when reviewing spooled SQL so that they do not misinterpret this as a bug. Comparison with Vanilla Siebel I Since performance is a result of several factors, it is best to compare the performance of a configured version of a view with the performance of the Vanilla version of the view if applicable. If the Vanilla view performs poorly, the performance issues may be the result of network or database issues instead of front-end configuration. R Coaxing the Optimizer into Using the Best Indices E Accounts, Opportunities, and Contacts are the main tables off of which Siebel is based. The “My Accounts”, “My Opportunities”, and “My Contacts” views are those records of which the user is part of the Account Team, Sales Team, and Access List accordingly. Team memberships M are stored in respective intersection tables with the Position table. These intersection tables are the S_ACCNT_POSTN, S_OPTY_POSTN, and S_POSTN_CON tables respectively. Generally, the best indices for the “My” views are on these tables. This is because the best way to perform E a query is to first execute those parts of the query that most quickly reduce the number of records that are retrieved. As an extreme example, let us say that only one out of the 100,000 Accounts in the database is not a commercial Account. It would be much better for Siebel to N first narrow down the list of Accounts to those where the user is a member of the team and then filter for those that are commercial, rather than first retrieving the 99,999 commercial Accounts and then examining the teams. T Siebel is best run on a rule-based optimizer as opposed to a cost-based optimizer. An optimizer is a component of the database that determines the best way to run a query. However, optimizers do not always succeed in determining the best way to run a query. Let us return to S the SQL in Exhibit 3. The WHERE clause may cause Siebel to first filter the Account table for commercial Accounts and then look for Accounts where the user is part of the team. It would be better if Siebel would first look in the S_ACCNT_POSTN table. (Note: your database D administrator can use RDBMS tools to analyze the query to see how it is being performed.) Sometimes the optimizer can be coaxed into using the best indices by modifying the Search Specification. Looking in the Account Business Component, we see that the Assignment Type field is using the Position MVL to get to the S_ACCNT_POSTN table. Changing the Search E Specification from „[Type]="Commercial"‟ to „[Assignment Type]=”*”, [Type]="Commercial"‟ can coax the optimizer into going to the S_ACCNT_POSTN table first. Notice that the asterisk is the wildcard character for searches. This means that Siebel will retrieve all Accounts Created: Dinesh Chandrasekar Page 15 of 19 F regardless of the Assignment Type. This is the intention. We do not want to change the results Sierra Atlantic Proprietary & I Confidential N
  • 16. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E of the query, we just want it to perform better. This Search Specification can sometimes cause the optimizer to use the S_ACCNT_POSTN table and its indices first rather than first looking through the Account Type field. Your database administrator can analyze the results of the query to determine if an improvement was made. Performance improvements may also be readily apparent simply from running the application. Q U The best way to implement this technique is to expose a multi value field in the Business Component that maps to the POSITION_ID column in the intersection table. This is the field that should be used in the Search Specification. This will, if successful, coax the optimizer into using an index in the intersection table that starts with the POSITION_ID column. These are always the best indices in the intersection tables. I Removing Sort Specifications R Sort Specifications can often be removed without adversely affecting usage of the system. When there are more than a few hundred records in a table, it is often faster for users to E perform a query rather than scrolling to the record for which they are looking. As an example, if there are 100,000 Accounts in the system, users will never open the Account Pick List and scroll through 100,000 Accounts to find the record for which they are looking. Instead, they should be trained to perform a query in the Pick List to find the record. M Search Specifications and Sort Specifications Using the Same Index E When possible, Search Specifications and Sort Specification for a Business Component should use the same index. Let us take an example of a Contact Affiliation Business Component that is based off of the S_CONTACT_XM table. Let us also assume there is another Business N Component based off of this table that is storing other types of records. TYPE is a required column, so it will likely be predefaulted with some standard value such as “AFFILIATION”. NAME is a required column, and will contain the name of the affiliation (e.g. “Rotary Club”, “Toastmasters”). Users may want to see these affiliations listed in alphabetical order. The Contact Affiliation Business Component will need a Search Specification of T „[Type]=”AFFILIATION”‟ to avoid retrieving the records in the other Business Component. This will cause Siebel to use the S_CONTACT_XM_M1 index since TYPE is the first column in S the index. If the Sort Specification sorted by the NAME field, Siebel would have to perform a scan because there is no index that has NAME as the first column. However, if the Sort Specification was „TYPE, NAME‟, Siebel could still use the S_CONTACT_XM_M1 index that it D had already used, because these two columns in this order comprise the index. The result will be the same, but performance will be better. Since the Search Specification and the Sort Specification are using the same index, the query will be performed faster. Enforcing Case Sensitivity E Case sensitive queries are faster than case insensitive queries. Forcing the application to be case sensitive can be handled with four techniques. Created: Dinesh Chandrasekar Page 16 of 19 F Sierra Atlantic Proprietary & I Confidential N
  • 17. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E First, application-wide case sensitivity is specified in the datasource sections of the CFG file. Look in your CFG file in the [Local] datasource for the CaseInsensitivity parameter. This should be set to “FALSE”. This tells Siebel that, throughout the application, all interaction with the database should be on a case sensitive basis. Q Second, Search Specifications can contain a tilde (~) to indicate that this specific part of the U query should use the opposite sensitivity setting as in the CFG file. Let us take an example of a Search Specification on the Contact Business Component where „[Alias]=”Personal”‟ and CaseInsensitivity=”FALSE” in the CFG. Siebel will perform a case sensitive search on this field. If the Search Specification was changed to „[Alias]~=”Personal”‟, Siebel would perform a case insensitive search on this field. I Third, Predefined Queries can also contain a tilde to indicate that this specific part of the query R should use the opposite sensitivity setting as in the CFG file. Fourth, the Use Default Sensitivity property of a Field in a Business Component indicates whether queries on that field should, by default, use or not use the sensitivity specified in the E CFG. If Use Default Sensitivity is set to “TRUE”, Siebel will use whatever is specified in the CFG. If Use Default Sensitivity is set to “FALSE”, Siebel will use the opposite of whatever is specified in the CFG. This property can be overridden with a tilde in a Search Specification or in a Pre Defined Query. M The best approach for optimizing performance is to have CaseInsensitivity=”FALSE” for all datasources in the CFG file, not to use tildes in Search Specifications or in Predefined Queries, E and to set Use Default Sensitivity to “TRUE” for all Fields in all Business Components. If the client‟s business processes require a case insensitive search on a specific field, the best approach is to have CaseInsensitivity=”FALSE” for all datasources in the CFG file, not to use tildes in N Search Specifications or in Predefined Queries, and to set Use Default Sensitivity to “TRUE” for all Fields in all Business Components except those that need to be case insensitive. Adding Indices T If necessary, custom indices can be created on a table to help performance. Your Technical Account Manager should be consulted before creating a new index to ensure there are no S adverse effects. New indices can cause poor performance in other areas of the application. Search Specifications in Business Components Instead of in Applets or in Pick Lists D Applets and Pick Lists can also have Search Specifications. However, data are retrieved into the Business Component first. This means that a separate SQL statement will be issued if there is a Search Specification in the Applet or Pick List. If such an Applet or Pick List is exhibiting poor E performance, it may be better to create a new Business Component with the proper Search Specification, remove the Search Specification from the Applet or Pick List, and base the Applet or Pick List off of the new Business Component. New Business Components should not be Created: Dinesh Chandrasekar Page 17 of 19 F created in these cases simply as a rule of thumb, but instead should be created only if no other performance improvement techniques have worked. Sierra Atlantic Proprietary & I Confidential N
  • 18. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance Putting Sort Specifications in Business Components Instead of in Pick Lists E Pick Lists can also have a Sort Specification. However, data are retrieved into the Business Q Component first. This means that a separate SQL statement will be issued if there is a Sort Specification in the Pick List. If such a Pick List is exhibiting poor performance, it may be better to create a new Business Component with the proper Sort Specification, remove the Sort Specification from the Pick List, and base the Pick List off of the new Business Component. U New Business Components should not be created in these cases simply as a rule of thumb, but instead should be created only if no other performance improvement techniques have worked. Using a New View in Place of an MVG I Where possible, parent-child relationships can be represented by creating a new view rather R than creating an MVG. Let us take the earlier example of creating a Contact Affiliations Business Component. It would be better to display these affiliations by creating a Contact Affiliations View instead of putting an Affiliations MVG in an existing applet. This will reduce the number of joins or additional queries that are executed per view. The new view would have Contacts in the top Applet and Affiliations in the bottom Applet. E M Deciding Between Extension Columns and Extension Tables For additional fields that will always be displayed in the Business Component, it is best to create extension columns on the base table to avoid the extra join associated with the extension E table. For additional fields that will be displayed on only one or a few views, it is best to create an extension table. Most database platforms have a limit to the number of columns that can exist in any one table. Also, a large number of columns in one table can exceed the page size of N the database. Avoiding Automatically Displayed Totals T For list applets that can display totals, performance can be improved by setting the Total Displayed property of the List object to “FALSE”. With this setting, users will only see totals if they explicitly select Show Totals from the Edit menu. The view will initially appear faster, and users can incur the extra time only if they wish to see totals. S Queries in Siebel Visual Basic D Developers should keep the concepts described in this document in mind when writing VB that performs queries. These queries are subject to the same performance issues as queries that are executed directly from Applets or Business Components. Using the Cache Data Property on a Business Component E If the Cache Data property is set to “TRUE” for a Business Component, the data are read once Created: Dinesh Chandrasekar Page 18 of 19 F from the database and cached. If the property is set to “FALSE”, the data are retrieved every Sierra Atlantic Proprietary & I Confidential N
  • 19. BEST PRACTICES R Siebel Enterprise Applications – Configuring the Front-End for Optimal Performance E time they are requested for display in the user interface. Although setting this property to “TRUE” can improve performance, it should only be set to “TRUE” for Business Components that contain data that will not change often. As examples, the Pick List Generic Business Q Component, which displays List of Values data, has Cache Data set to “TRUE”. The Account Business Component does not have Cache Data set to “TRUE” because Account data changes frequently. Setting the Long List Property on a Pick List U I If the Long List property on a Pick List is set to “FALSE”, Siebel will try to position the cursor on the current value of the field in the Pick List. Let us take the example of the Account Type Pick List, which has Long List set to “FALSE”. Assume an existing Account has an Account Type of “OEM”. When the user clicks on the Account Type Pick List for this Account, Siebel R will scroll the list in the Pick List to “OEM” and highlight this selection. This is the default setting for a Pick List. E If there is going to be a long list of records in a Pick List, this functionality can be time consuming. Because of this, Pick Lists that will display a long list of records have the Long List property set to “TRUE”. This tells Siebel not to spend the time trying to scroll the list to the current value. As an example, Pick Lists for Opportunities have the Long List property set to “TRUE”. M Please feel free to post your queries and Clarifications to Siebel. Competency@ SierraAtlantic.com E N T S D E Created: Dinesh Chandrasekar Page 19 of 19 F Sierra Atlantic Proprietary & I Confidential N