Presentation is loading. Please wait.

Presentation is loading. Please wait.

Robin Moffatt, WM Morrisons plc

Similar presentations


Presentation on theme: "Robin Moffatt, WM Morrisons plc"— Presentation transcript:

1 Robin Moffatt, WM Morrisons plc

2 Oracle BI specialist at Morrisons plc Big IT development programme at its early stages implementing OBIEE, OBIA, ORDM, all on Oracle 11g & HP-UX

3 A Performance Tuning Methodology OBIEE techie stuff Learn from my mistakes!

4 Response times Report ETL batch OLTP transaction System impact Resource usage Scalability

5 Check that your system performs Are the users going to be happy? Baseline How fast is fast? How slow is slow? Validate system design Do it right, first time Capacity planning

6 Its never too late Youll never catch all your problems in pre- production testing. Thats why you need a reliable and efficient method for solving the problems that leak through your pre-production testing processes. Cary Millsap - Thinking Clearly About Performance

7 Because it makes you better at your job At the very least, your performance test plan will make you a more competent diagnostician (and clearer thinker) when it comes time to fix the performance problems that will inevitably occur during production operation. Cary Millsap - Thinking Clearly About Performance

8 Quantifying response times System impact User expectations Problem diagnosis Design validation

9 DefineMeasureAnalyseReviewImplement Timebox! Evaluate design / config options Do it right Dont fudge it Do more testing Redefine test Do more testing

10 Define – what are you going to test Aim of the test Scope Assumptions Specifics Data, environment, etc Build – how are you going to test it OBIEE specific DefineMeasureAnalyseReviewImplement E.g. : Check that the system performs Baseline performance Prove system capacity Validate system design E.g. : Check that the system performs Baseline performance Prove system capacity Validate system design

11 More components = more complex = more variables = larger margin of error Fewer components = easier to manage = more precise = more efficient DefineMeasureAnalyseReviewImplement

12 Database Presentation Services BI Server Report / Dashboard Logical SQL Physical SQL statement(s) Data set(s) Data set Rendered report Excludes App/Web server & presentation services plug-in DefineMeasureAnalyseReviewImplement

13 Database Presentation Services BI Server nqcmd SQL Client LSQL Physical SQL Data set(s) Data set Rendered report LSQL Physical SQL User & Stopwatch Load Testing tool (eg. LoadRunner, OATS) Load Testing tool (eg. LoadRunner, OATS) DefineMeasureAnalyseReviewImplement Report / Dashboard

14 Database BI Server nqcmd Physical SQL Data set(s) LSQL DefineMeasureAnalyseReviewImplement

15 Command: nqcmd - a command line client which can issue SQL statements against either Oracle BI server or a variety of ODBC compliant backend databases. SYNOPSIS nqcmd [OPTION]... DESCRIPTION -d -u -p -s -o -D -C -R -a (a flag to enable async processing) -f (a flag to enable to flush output file for each write) -H (a flag to enable to open/close a request handle for each query) -z (a flag to enable UTF8 instead of ACP) -utf16 (a flag to enable UTF16 instead of ACP) -q (a flag to turn off row output) -NoFetch (a flag to disable data fetch with query execution) -NotForwardCursor (a flag to disable forwardonly cursor) -SessionVar =

16 setup]$../sa-init.sh setup]$ nqcmd Oracle BI Server Copyright (c) Oracle Corporation, All rights reserved Give data source name: RNMVM01 Give user name: Administrator Give password: Administrator [T]able info [C]olumn info [D]ata type info [F]oreign keys info [P]rimary key info [K]ey statistics info [S]pecial columns info [Q]uery statement Select Option: C Give catalog pattern: Give user pattern: Give table pattern: Time Give column type pattern: TABLE_QUALIFIER TABLE_NAME COLUMN_NAME A_TYPE TYPE_NAME PRECISION LENGTH SCALE RADIX NULLABLE Sample Sales Reduced Time Day Date 9 DATE Sample Sales Reduced Time Week 12 VARCHAR Sample Sales Reduced Time Month 12 VARCHAR Sample Sales Reduced Time Quarter 12 VARCHAR Sample Sales Reduced Time Year 12 VARCHAR Row count:

17 perftest]$ cat /data/perftest/lsql/test01.lsql SELECT "D0 Time"."T01 Per Name Week" saw_0 FROM "Sample Sales" WHERE ("D01 More Time Objects"."T31 Cal Week" BETWEEN 40 AND 53) AND ("D01 More Time Objects"."T35 Cal Year" = 2007) ORDER BY saw_0 perftest]$. /app/oracle/product/obiee/setup/sa-init.sh perftest]$ nqcmd -d AnalyticsWeb -u Administrator -p Administrator -s /data/perftest/lsql/test01.lsql Oracle BI Server Copyright (c) Oracle Corporation, All rights reserved Connection open with info: [0][State: 01000] [DataDirect][ODBC lib] Application's WCHAR type must be UTF16, because odbc driver's unicode type is UTF16 SELECT "D0 Time"."T01 Per Name Week" saw_0 FROM "Sample Sales" WHERE ("D01 More Time Objects"."T31 Cal Week" BETWEEN 40 AND 53) AND ("D01 More Time Objects"."T35 Cal Year" = 2007) ORDER BY saw_ saw_ Week Week Week Week Week Week Week Week Week Week Week Week Week Week Row count: Processed: 1 queries

18

19 DefineMeasureAnalyseReviewImplement Usage Tracking or NQQuery.log Test script BI Server Data nqcmd Logical SQL

20 Master test script DefineMeasureAnalyseReviewImplement Test script BI Server Data nqcmd Logical SQL Test script nqcmd Test script nqcmd Test script nqcmd

21 Simulates user interaction – HTTP traffic Powerful, but can be difficult to set up Ajax complicates things Do you really need to use it? Tools Fiddler2 FireBug Reference: My Oracle Support – Doc ID DefineMeasureAnalyseReviewImplement

22 Be very clear what the aim of your test is You probably need to define multiple tests Different points on the OBIEE stack to interface Pick the most appropriate one Write everything down! DefineMeasureAnalyseReviewImplement

23 DefineMeasureAnalyseReviewImplement

24 Database Presentation Services BI Server Presentation Services plug-in App Server Web Server Apache log OAS log Analytics log sawserver.log NQServer.log NQQuery.log systems management Enterprise Manager BI Management Pack Enterprise Manager BI Management Pack Usage Tracking PerfMon (windows only) PerfMon (windows only) jConsole etc Presentation services Enterprise Manager ASH, AWR, SQL Monitor DefineMeasureAnalyseReviewImplement Server metrics e.g. : IO, CPU, Memory PerfMon (Windows) Oracle OS Watcher (unix) Enterprise Manager (Oracle)

25 Query Status: Successful Completion Rows 1, bytes 96 retrieved from database query id: > Physical query response time 1 (seconds), id > Rows 621, bytes 9246 retrieved from database query id: > Physical query response time 10 (seconds), id > Physical Query Summary Stats: Number of physical queries 2, Cumulative time 11, DB-connect time 0 (seconds) Rows returned to Client 50 Logical Query Summary Stats: Elapsed time 14, Response time 12, Compilation time 2 (seconds) DefineMeasureAnalyseReviewImplement

26 DefineMeasureAnalyseReviewImplement Oracle Enterprise Managers Performance functionality is fantastic For pure testing metrics capture you need to go to the tables V$SQL_MONITOR, etc

27 DefineMeasureAnalyseReviewImplement

28 Lots of different ways to measure Build measurement into your test plan Automate where possible Easier Less error DefineMeasureAnalyseReviewImplement

29 DefineMeasureAnalyseReviewImplement

30 DefineMeasureAnalyseReviewImplement

31 DefineMeasureAnalyseReviewImplement

32 Response time Response time Average (mean) th percentile (Median) 2 90 th percentile 9.1 DefineMeasureAnalyseReviewImplement

33 DefineMeasureAnalyseReviewImplement DashboardRequests ORA_HASH(QUERY_TEXT) Logical SQL SQL IDs Physical SQL Execution plan hash id Execution plan

34 S_NQ_ACCT START_TS ROW_COUNT TOTAL_TIME_SEC NUM_DB_QUERY QUERY_TEXT QUERY_SRC_CD SAW_SRC_PATH SAW_DASHBOARD S_NQ_ACCT START_TS ROW_COUNT TOTAL_TIME_SEC NUM_DB_QUERY QUERY_TEXT QUERY_SRC_CD SAW_SRC_PATH SAW_DASHBOARD OBIEE_REPLAY_STATEMENTS qt_ora_hash query_text saw_path dashboard OBIEE_REPLAY_STATEMENTS qt_ora_hash query_text saw_path dashboard OBIEE_REPLAY_STATS testid testenv qt_ora_hash start_ts response_time row_count db_query_cnt OBIEE_REPLAY_STATS testid testenv qt_ora_hash start_ts response_time row_count db_query_cnt DefineMeasureAnalyseReviewImplement

35 DefineMeasureAnalyseReviewImplement Evaluate design / config options Do it right Dont fudge it Timebox!

36 DefineMeasureAnalyseReviewImplement Redefine test Continue testing Implement

37 DefineMeasureAnalyseReviewImplement

38 DefineMeasureAnalyseReviewImplement

39 You wont get your testing right first time Theres no shame in that Dont cook the books Better to redefine your test than invalidate its results Stick to the methodology Dont move the goalposts Very tempting to pick off the low-hanging fruit If you do, make sure you dont get indigestion… Timebox Test your implementation!

40 Think clearly

41 DefineMeasureAnalyseReviewImplement Evaluate design / config options Do it right Dont fudge it Do more testing Redefine test Do more testing · ·

42


Download ppt "Robin Moffatt, WM Morrisons plc"

Similar presentations


Ads by Google