Rac Optimisation For Siebel Crm, Doag 2008

1,566 views

Published on

Optimisation for RAC based Siebel CRM installations.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,566
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rac Optimisation For Siebel Crm, Doag 2008

  1. 1. DOAG 2008 29.11.2008 DOAG 2008 RAC Optimisation for Siebel CRM Dipl.-Inform. Frank Beutelschiess
  2. 2. Contents 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Chapter 1 – Introduction </li></ul><ul><li>Chapter 2 – Siebel in 5 Minutes </li></ul><ul><li>Chapter 3 – Databank schema </li></ul><ul><li>Chapter 4 – Problem </li></ul><ul><li>Chapter 5 – Results </li></ul><ul><li>Chapter 6 – Questions and Answers </li></ul>
  3. 3. Chapter 1 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>2 Minute Ad (Introduction) </li></ul>
  4. 4. Who am I? 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Computer science graduate out of a passion for the field </li></ul><ul><li>Active freelancer for 17 years </li></ul><ul><li>10 years experience with Siebel </li></ul><ul><li>BzYxS.com for 2 years </li></ul>
  5. 5. What does BzYxS.com do? 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Training & Consulting </li></ul><ul><ul><li>Among other things, for Oracle University </li></ul></ul><ul><li>Configuration reviews in Siebel area </li></ul><ul><li>Component tuning in Siebel area </li></ul><ul><li>Database tuning in Oracle area </li></ul><ul><li>Development of special analysis software </li></ul><ul><ul><li>eScriptAdvisor (eScript analysis) </li></ul></ul><ul><ul><li>QueryAdvisor (database analysis) </li></ul></ul>
  6. 6. Why am I… here? 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>To introduce the experience from the startup of a very large Siebel installation and subsequently necessary optimisation of the database. </li></ul><ul><li>Very large = 20.000 Users </li></ul><ul><li>Database = 4er 10g RAC </li></ul><ul><li>Several TeraBytes of productive data </li></ul>
  7. 7. Chapter 2 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Siebel in 5 Minutes </li></ul>
  8. 8. Note 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>The following introduction has been very simplified technically for a better understanding. </li></ul>
  9. 9. Siebel Client 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  10. 10. System Architecture 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page User Gateway DB SiebelFilesystem WebServer SWSE FSMgr. AOM SiebelServer SiebelEnterprise
  11. 11. System Architecture 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page User Gateway DB SiebelFilesystem WebServer SWSE FSMgr. AOM SiebelServer SiebelEnterprise User User …
  12. 12. System Architecture 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page User Gateway DB SiebelFilesystem WebServer SWSE FSMgr. AOM SiebelServer SiebelEnterprise User User … Automatic Component Balancing / Siebel Server Clustering Clustering Round- Robing IP-Based Routing Distributed Share ?
  13. 13. System Architecture 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page User Gateway DB SiebelFilesystem WebServer SWSE FSMgr. AOM SiebelServer SiebelEnterprise User User … Automatic Component Balancing / Siebel Server Clustering Clustering Round- Robing IP-Based Routing Distributed Share RAC
  14. 14. System Architecture 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  15. 15. Manual Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  16. 16. Manual Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  17. 17. Manual Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  18. 18. Manual Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page DB S_CONTACT DBC DBC AOM Script SWSE SWE Workflow EAI DBC DBC AOM Script SWSE SWE Workflow EAI DBC DBC AOM Script SWSE SWE Workflow EAI
  19. 19. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  20. 20. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  21. 21. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  22. 22. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  23. 23. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  24. 24. Automatic Processes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page DB S_WF_..... DBC DBC AOM Script SWSE SWE Workflow EAI DBC DBC AOM Script SWSE SWE Workflow EAI DBC DBC AOM Script SWSE SWE Workflow EAI
  25. 25. Summary 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Each user- and component task has its own database session. </li></ul><ul><li>According to the logon, the databank session has an individual or a generic value. </li></ul><ul><li>Database tables are used for the storage of user- and component data during runtime. </li></ul><ul><li>Siebel installations are commonly shared among multiple computers. </li></ul>
  26. 26. Chapter 3 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Database schema </li></ul>
  27. 27. Basics 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Number of tables: 4,287 </li></ul><ul><li>Number of columns: up to 998 </li></ul><ul><li>Number of indices: 21,732 </li></ul><ul><li>Generic schema, that means </li></ul><ul><ul><li>Not all tables are used in a concrete installation. </li></ul></ul><ul><ul><li>Not all fields are used in the tables. </li></ul></ul>
  28. 28. Naming Conventions for Tables 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Siebel tables start with S_ </li></ul><ul><li>Appropriate schema extension: </li></ul><ul><ul><li>Tables start with CX_ </li></ul></ul><ul><ul><li>Columns start with X_ </li></ul></ul><ul><li>Tables with _X (1:1) or _XM (1:M) make extension fields available </li></ul><ul><li>EIM_ - Intermediate tables for data import used by the „Enterprise Integration Manager“ component </li></ul>
  29. 29. Naming Conventions for Indices 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Index names are self explaining </li></ul><ul><ul><li>P1… PrimaryKey (unique/notNull) </li></ul></ul><ul><ul><li>U1…99 UserKey (unique & holy) </li></ul></ul><ul><li>Combination of fields to detect the equality of 2 data sets during export/import and to assure uniqueness. </li></ul><ul><ul><li>F1…99 ForeignKey </li></ul></ul><ul><ul><li>No Bitmap-Indices </li></ul></ul><ul><ul><li>No functional Indices </li></ul></ul>
  30. 30. Table Structure 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>ROW_ID is always the primary key! </li></ul><ul><li>There are 7, respectively 9 system columns, which provide information when the data set is allocated and changed. </li></ul><ul><li>The type Long is used. </li></ul><ul><li>When a schema is extended, the Long type columns are no longer at the end of the tables. </li></ul><ul><li>In Siebel 8 the type Clob will be added. </li></ul>
  31. 31. Referential Integrity 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Foreign key columns end with _ID and contain a Siebel-generated value. </li></ul><ul><li>Changes to these values compromise the referential integrity! </li></ul><ul><li>Changes to other values compromise the data exchange with remote clients. </li></ul><ul><li>Therefore: Never make a data change directly with SQL! </li></ul><ul><li>(Exception: When Easter and Christmas fall on the same date!) </li></ul>
  32. 32. Synchronisation 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Synchronisation of Siebel tasks for </li></ul><ul><ul><li>encapsulation through the separate transaction levels of databases. </li></ul></ul><ul><ul><li>system column modification_num as change counter in each Siebel table. </li></ul></ul>
  33. 33. SQL-Structure 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>SELECT T8.CONFLICT_ID,T8.LAST_UPD,T8.CREATED, </li></ul><ul><li>T8.LAST_UPD_BY,T8.CREATED_BY,T8.MODIFICATION_NUM,T8.ROW_ID,... </li></ul><ul><li>FROM SIEBEL.S_ACTIVITY_ATT T1, </li></ul><ul><li>SIEBEL.S_SRV_REQ T2, </li></ul><ul><li>SIEBEL.S_CONTACT T3, </li></ul><ul><li>SIEBEL.S_ORG_EXT T4, </li></ul><ul><li>SIEBEL.S_PARTY T5, </li></ul><ul><li>SIEBEL.S_EVT_MAIL T6, </li></ul><ul><li>SIEBEL.S_EVT_ACT_SS T7, </li></ul><ul><li>SIEBEL.S_EVT_ACT T8 </li></ul><ul><li>WHERE T8.TARGET_OU_ID = T4.PAR_ROW_ID (+) AND </li></ul><ul><li>T8.SRA_SR_ID = T2.ROW_ID (+) AND </li></ul><ul><li>T8.ROW_ID = T6.PAR_ROW_ID (+) AND </li></ul><ul><li>T8.ROW_ID = T7.PAR_ROW_ID (+) AND </li></ul><ul><li>T8.TARGET_PER_ID = T5.ROW_ID (+) AND </li></ul><ul><li>T8.TARGET_PER_ID = T3.PAR_ROW_ID (+) AND </li></ul><ul><li>T8.PR_ATT_ID = T1.ROW_ID (+) AND </li></ul><ul><li>(T8.ROW_ID = :1) </li></ul><ul><li>ORDER BY T8.ACTIVITY_UID; </li></ul>
  34. 34. SQL-Structure 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Each column in „select…“ is separately quantified. </li></ul><ul><li>High amount of joined tables. </li></ul><ul><li>These joins are always against the indexed columns „ROW_ID“ (unique/notNull). </li></ul><ul><li>Structure: „select…from…where…order by…“ </li></ul><ul><li>No „group by…having…“ or „connect by…“. </li></ul><ul><li>No „select…for…update…“ rather, only simple encapsulation using „begin…end“ blocks. </li></ul>
  35. 35. Summary 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Siebel is, for the purposes of a generic installation, over-indexed and uses Longs. </li></ul><ul><li>Never use SQL to directly change data! </li></ul><ul><li>(Exceptions: when Easter and Christmas fall on the same date!) </li></ul><ul><li>Indices are the holy cow, which means, adding almost always works, but removal should only be done in agreement with support! </li></ul>
  36. 36. Chapter 4 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>The Problem </li></ul>
  37. 37. Golden Rule 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Tune the application first, therefore ask: </li></ul><ul><ul><li>Must these complicated sortings remain? </li></ul></ul><ul><ul><li>Are tables joined repeatedly for no reason? </li></ul></ul><ul><ul><li>Are all requested fields really be necessary? </li></ul></ul><ul><ul><li>… </li></ul></ul>
  38. 38. Basics 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>SGA – Sizing of Buffer Cache? </li></ul><ul><li>PGA –Sorting? </li></ul><ul><ul><ul><ul><li>Memory </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Single Pass </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Multi Pass </li></ul></ul></ul></ul><ul><li>Symmetry between the instances? </li></ul>
  39. 39. Optimizer 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  40. 40. Invalidation of SQL-Area 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  41. 41. Outlines & Plan Stability 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  42. 42. Multiple Block Sizes 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  43. 43. Partitioning 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  44. 44. Indexing 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  45. 45. Serialisation 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  46. 46. Sequences 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  47. 47. Interconnect 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page
  48. 48. Summary 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>SQL-Optimisation </li></ul><ul><ul><li>Outlines & Index structure (Support!) </li></ul></ul><ul><li>Object optimisation </li></ul><ul><ul><li>Block size & PCTFree, PCTUsed, ITL </li></ul></ul><ul><li>Instance optimisation </li></ul><ul><ul><li>Symmety of all parameters </li></ul></ul><ul><ul><li>Parameterisation and sizing (SGA, PGA) </li></ul></ul><ul><li>InterInstance optimisation </li></ul><ul><ul><li>Parameterisation & network </li></ul></ul>
  49. 49. Chapter 5 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>The moral of the story… (Results) </li></ul>
  50. 50. Communication 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Siebel developers and database administrators must talk with one another about the sizing of the application. </li></ul><ul><li>Permanent monitoring of the generated SQLs during the development and feedback to the developer. </li></ul><ul><li>Monitoring all database objects during the test to identify serialisation as quickly as possible. </li></ul>
  51. 51. Test, Test, Test & Test 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page <ul><li>Carry out in a realistic environment, if there is a productive 4 node RAC, testing should done there. </li></ul><ul><li>Perform tests with realistic data, that means same quantity and distribution as the production data. </li></ul><ul><li>Variations of this testing approach, for example the use of simulations, imply nonlinear RAC-optimized models. </li></ul>
  52. 52. The End 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page RAC makes the realisation of high-performance Siebel installations possible! „ Most of the time a performance problem is not a RAC problem.“ (Oracle Whitepaper) „ But sometimes the performance problem starts to get visible in an RAC environment first!“ (BzYxS.com)
  53. 53. Chapter 6 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page Questions & Answers
  54. 54. 29.11.2008 DOAG 2008 29.11.2008 DOAG 2008 Page Danke für Ihre Aufmerksamkeit!

×