Performance tuning using SQL new features. By Riyaj Shamsudeen

Size: px
Start display at page:

Download "Performance tuning using SQL new features. By Riyaj Shamsudeen"

Transcription

1 Performance tuning using SQL new features By Riyaj Shamsudeen

2 Who am I? 15 years using Oracle products Over 14 years as Oracle DBA Certified DBA versions 7.0,7.3,8,8i &9i Specializes in performance tuning, Internals and E-business suite Currently consulting for Cingular through Avion systems Adjunct faculty Northlake College OakTable member rshams4 at yahoo.com Riyaj Shamsudeen 2

3 Agenda Model clause Analytic functions Lag and lead First_value and last_value Dense_rank Subquery factoring Questions Riyaj Shamsudeen 3

4 Model

5 Model Emulates spreadsheet like functionality Very powerful, very flexible Code is very compact Riyaj Shamsudeen 5

6 Model Table used: item_data, Randomly generated data CREATE TABLE ITEM_DATA ( ITEM VARCHAR2(10 BYTE), LOCATION NUMBER, WEEK NUMBER, SALES_QTY NUMBER, RCPT_QTY NUMBER ) ITEM LOCATION WEEK SALES_QTY RCPT_QTY Shirt Shirt Shirt Shirt Shirt Shirt Shirt Shirt Shirt Riyaj Shamsudeen 6

7 Problem #1: Tune inventory report Accesses previous rows Formula: Inventory = last_week_inventory + this week receipts this week sales Riyaj Shamsudeen 7

8 Solution :Original SQL Total logical reads: 3007 select item, location, week, (select sum(rcpt_qty)-sum(sales_qty) from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week <= out1.week ) inventory, sales_qty, rcpt_qty from item_data out1 order by item, location,week / ITEM LOCATION WEEK INVENTORY SALES_QTY RCPT_QTY Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Riyaj Shamsudeen 8

9 Explain plan call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT AGGREGATE (cr=3000 pr=0 pw=0 time=97619 us) 6300 TABLE ACCESS FULL ITEM_DATA (cr=3000 pr=0 pw=0 time=51167 us) 600 SORT ORDER BY (cr=3005 pr=0 pw=0 time= us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=32 us) Riyaj Shamsudeen 9

10 Model Excel like A B C D E week > location sales_qty rcpt_qty inventory sales_qty rcpt_qty In Excel, formula would be B5+C4-C3 in Shirts sheet. Riyaj Shamsudeen 10

11 Model select item, location, week, inventory, sales_qty, rcpt_qty from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [location, week]= nvl(inventory[cv(location), cv(week)-1],0) - sales_qty [cv(location), cv(week) ] +rcpt_qty [cv(location), cv(week) ] ) order by item, location, week / Script: model_example2.sql Riyaj Shamsudeen 11

12 Model inventory [location, week]= nvl(inventory[cv(location), cv(week)-1],0) - sales_qty [cv(location), cv(week) ] - +rcpt_qty [cv(location), cv(week) ] + model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) ITEM LOCATION WEEK INVENTORY SALES_QTY RCPT_QTY Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Shirts Shirts rules ( inventory [location, week]= nvl(inventory[cv(location), cv(week)-1],0) - sales_qty [cv(location), cv(week) ] +rcpt_qty [cv(location), cv(week) ] ) Cv(location) refers to current value of location from left side of rule Riyaj Shamsudeen 12

13 Formula inventory [1,3]= nvl(inventory[1, 2],0) - sales_qty [1,3 ] +rcpt_qty [1, 3) ] Location Week Rcpt Sales Inventory (623-55)= ( )= ( )= ( )= ( )=433 inventory [location, week]= nvl(inventory[cv(location), cv(week)-1],0) - sales_qty [cv(location), cv(week) ] +rcpt_qty [cv(location), cv(week) ] Riyaj Shamsudeen 13

14 Model Accessing non-existent rows Returns null SQL Output: nvl( inventory[cv(location), cv(week)-1],0) ITEM LOCATION WEEK INVENTORY SALES_QTY RCPT_QTY Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Notice the value is reset, at the onset of different location. Riyaj Shamsudeen 14

15 Explain plan 6 logical reads, Compared to 3007 logical reads. call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT ORDER BY (cr=5 pr=0 pw=0 time=26842 us) 600 SQL MODEL ORDERED (cr=5 pr=0 pw=0 time=17662 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=39 us) Table accessed just once Riyaj Shamsudeen 15

16 More performance issues Suppose, if the SQL need to calculate running total of sales_qty also.. select item, location, week, (select sum(rcpt_qty)-sum(sales_qty) from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week <= out1.week ) inventory, (select sum(sales_qty) from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week <= out1.week ) sales_so_far, sales_qty, rcpt_qty from item_data out1 order by item, location,week This section added Riyaj Shamsudeen 16

17 Explain plan Logical reads jumped from 3007 to 6008 After adding running_sales_qty metrics call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT AGGREGATE (cr=3000 pr=0 pw=0 time=96618 us) 6300 TABLE ACCESS FULL ITEM_DATA (cr=3000 pr=0 pw=0 time=50626 us) 600 SORT AGGREGATE (cr=3000 pr=0 pw=0 time= us) 6300 TABLE ACCESS FULL ITEM_DATA (cr=3000 pr=0 pw=0 time=53670 us) 600 SORT ORDER BY (cr=6005 pr=0 pw=0 time= us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=32 us) Riyaj Shamsudeen 17

18 Model We can easily add another metrics, without any major performance impact, with model. select item, location, week, inventory, sales_qty, rcpt_qty, sales_so_for, rcpt_so_for from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 sales_so_for ) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ], sales_so_for [location, week] = sales_qty [cv(location), cv(week)] + nvl(sales_so_for [cv(location), cv(week)-1],0), ) order by item, location,week Script: model_example3.sql Riyaj Shamsudeen 18

19 Model - Rules sales_so_for [location, week] = sales_qty [cv(location), cv(week)] + nvl(sales_so_for [cv(location), cv(week)-1],0), sales_so_for [ 10, 1] = sales_qty [ 10, 1 ] + nvl ( sales_so_for [ 10, 0], 0 ) Riyaj Shamsudeen 19

20 Explain plan No increase in logical reads, even after Adding a new metric call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT ORDER BY (cr=5 pr=0 pw=0 time=37941 us) 600 SQL MODEL ORDERED (cr=5 pr=0 pw=0 time=25158 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=40 us) Riyaj Shamsudeen 20

21 Model Added more metrics, still, no increase in Logical reads! select item, location, week, inventory, sales_qty, rcpt_qty, sales_so_for, rcpt_so_for from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 sales_so_for, 0 rcpt_so_for ) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ], sales_so_for [location, week] = sales_qty [cv(location), cv(week)] + nvl(sales_so_for [cv(location), cv(week)-1],0), rcpt_so_for [location, week] = rcpt_qty [cv(location), cv(week)] + nvl(rcpt_so_for [cv(location), cv(week)-1],0) ) order by item, location,week Script: model_example3.sql Riyaj Shamsudeen 21

22 Model Problem #2: Tune moving sales average SQL Formula Moving_sales_avg = Average of ( current week sales and last two week sales ) Riyaj Shamsudeen 22

23 Old SQL select item, location, week, ( sales_qty + nvl((select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week-1 ), sales_qty) + nvl((select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week-2 ),sales_qty) )/3 avg_running_sales, sales_qty, rcpt_qty from item_data out1 order by item, location,week / Current week sales_qty Last week sales_qty Week before last week sales_qty Riyaj Shamsudeen 23

24 Explain plan Total logical reads: 2321 call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT ORDER BY (cr=2321 pr=2 pw=0 time=26089 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=645 us) Riyaj Shamsudeen 24

25 Model Calculating the moving sales avg using this week and past two weeks.. select item, location, week, sales_qty, rcpt_qty, moving_sales_avg from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 moving_sales_avg, sales_qty, rcpt_qty) rules ( moving_sales_avg [location, week] = (sales_qty [cv(location), cv(week)]+ nvl( sales_qty [cv(location, cv(week)-1 ], sales_qty [cv(location), cv(week)] ) + nvl( sales_qty [cv(location), cv(week)-2 ], sales_qty [cv(location), cv(week)] ) ) /3 ) order by item, location,week current week sales_qty Last week sales_qty Week before Last week Script : model_example3.sql Riyaj Shamsudeen 25

26 Model explain plan Just 5 logical reads in Fetch step call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SQL MODEL ORDERED (cr=5 pr=0 pw=0 time=14086 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=43 us) Riyaj Shamsudeen 26

27 Model & Aggregation Aggregation function also possible. Max value of inventory for a store calculated here. Second rule is referring first rule. select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ], max_inventory [location, week] = max(inventory) [cv(location), ANY ] ) order by item, location,week ANY keyword substitutes for all possible Values in that partition. ITEM LOCATION WEEK INVENTORY SALES_SO_FAR SALES_QTY RCPT_QTY MAX_INVENTORY Pants Pants Pants Script: model_features.sql Riyaj Shamsudeen 27

28 Model & Aggregation More granular boundary conditions can be specified too. Maximum inventory within a 10 weeks boundary. select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ], max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ] ) order by item, location,week / Riyaj Shamsudeen 28

29 Model & Aggregation Data from prior SQL for a 10 weeks boundary ITEM LOCATION WEEK INVENTORY SALES_SO_FAR SALES_QTY RCPT_QTY MAX_INVENTORY Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Riyaj Shamsudeen 29

30 Uses analytic functions under the cover Model & Aggregation Column projection for aggregation rule: max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ] Model uses analytic functions under the cover: Column Projection Information (identified by operation id): 1 - "ITEM"[10], "LOCATION"[22], "WEEK"[22], 0[22], "RCPT_QTY"[22], "SALES_QTY"[22], 0[22] 2 - "ITEM"[10], "LOCATION"[22], "WEEK"[22], 0[22], 0[22], "SALES_QTY"[22], "RCPT_QTY"[22] 3 - "ITEM"[VARCHAR2,10], "LOCATION"[NUMBER,22], "WEEK"[NUMBER,22], "SALES_QTY"[NUMBER,22], "RCPT_QTY"[NUMBER,22] 4 - "LOCATION"[22], "WEEK"[22], 0[22], MAX(0) OVER ( PARTITION BY "LOCATION ORDER BY "WEEK" RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING )[22] Riyaj Shamsudeen 30

31 Model Predicate push explain plan for select * from ( select.from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week)-1 ] + rcpt_qty [cv(location), cv(week)-1 ] ) order by item, location, week ) where item='pants' and location=100 and week =10; select * from table(dbms_xplan.display(null,'','typical')); Script: model_pred_push.sql In this SQL, predicates are for all three columns. But, Model rule accesses prior week. Pushing week predicate earlier in the step, will eliminate other weeks, causing logic issues Id Operation Name Rows Bytes SELECT STATEMENT * 1 VIEW SORT ORDER BY SQL MODEL ORDERED * 4 TABLE ACCESS FULL ITEM_DATA PLAN_TABLE_OUTPUT filter("week"=10) 4 - filter("item"='pants' AND "LOCATION"=100) Week predicate is not pushed here Riyaj Shamsudeen 31

32 Model Predicate push explain plan for select * from ( select.from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week) ],0) - sales_qty [cv(location), cv(week) ] + rcpt_qty [cv(location), cv(week) ] ) order by item, location, week ) where item='pants' and location=100 and week =10; select * from table(dbms_xplan.display(null,'','typical')); In this SQL, it is safe to push all three predicates, without affecting functionality Id Operation Name Rows Bytes SELECT STATEMENT * 1 VIEW SORT ORDER BY SQL MODEL ORDERED * 4 TABLE ACCESS FULL ITEM_DATA PLAN_TABLE_OUTPUT filter("week"=10) 4 - filter("item"='pants' AND "LOCATION"=100 AND "WEEK"=10) All predicates are pushed here Riyaj Shamsudeen 32

33 Model Predicate push explain plan for select * from ( select item, location, week, inventory, sales_qty, rcpt_qty from item_data model return updated rows partition by (item, location) dimension by ( week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [ week] = nvl(inventory [cv(week) ],0) - sales_qty [cv(location)-1 ] + + rcpt_qty [cv(week) ] ) order by item, location, week ) where item='pants' and location=100 and week =10 / This predicate push works incorrectly in Throws ORA-7445 in , Id Operation Name Rows SELECT STATEMENT 7 * 1 VIEW 7 2 SORT ORDER BY 7 3 SQL MODEL ORDERED 7 * 4 TABLE ACCESS FULL ITEM_DATA PLAN_TABLE_OUTPUT Predicate Information (identified by operation id): filter("week"=10) 4 - filter("item"='pants' AND "LOCATION"=100) select * from table(dbms_xplan.display(null,'','typical')); Location predicate is pushed even though Rule accesses prior row, since location is a partitioning column Riyaj Shamsudeen 33

34 Model Predicates & transitivity explain plan for select m.* from ( select item, location, week, inventory, sales_qty, rcpt_qty from item_data model return updated rows partition by (item,location) dimension by ( week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [ week] = nvl(inventory [cv(week) ],0) - sales_qty [cv(week) ] + + rcpt_qty [cv(week) ] ) order by item, location, week ) m, item_data i1 Where m.item = i1.item and m.week = i1.week and m.location = i1.location and i1.item='pants' and i1.location=100 and i1.week =10; Predicates are on i1 alias and these predicates are applied to model subquery also transitively Id Operation Name Rows SELECT STATEMENT 1 1 MERGE JOIN CARTESIAN 1 * 2 TABLE ACCESS FULL ITEM_DATA 1 3 BUFFER SORT 1 4 VIEW 1 5 SORT ORDER BY 1 6 BUFFER SORT 1 7 SQL MODEL ORDERED 1 * 8 TABLE ACCESS FULL ITEM_DATA Predicate Information (identified by operation id): filter("i1"."item"='pants' AND "I1"."LOCATION"=100 AND "I1"."WEEK"=10) 8 - filter("item"='pants' AND "LOCATION"=100 AND "WEEK"=10) Riyaj Shamsudeen 34

35 Rule evaluation order explain plan for select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + rcpt_qty [cv(location), cv(week) ], max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ] ) order by item, location,week / Script : model_order.sql Rules are evaluated in the order Specified, by default. Note ORDERED keyword in the plan Id Operation Name SELECT STATEMENT 1 SORT ORDER BY 2 SQL MODEL ORDERED 3 TABLE ACCESS FULL ITEM_DATA 4 WINDOW (IN SQL MODEL) SORT Riyaj Shamsudeen 35

36 Rule evaluation order explain plan for select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules sequential order ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + rcpt_qty [cv(location), cv(week) ], max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ] ) order by item, location,week / Sequential order can be explicitly specified Id Operation Name SELECT STATEMENT 1 SORT ORDER BY 2 SQL MODEL ORDERED 3 TABLE ACCESS FULL ITEM_DATA 4 WINDOW (IN SQL MODEL) SORT Riyaj Shamsudeen 36

37 Rule evaluation order explain plan for select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules automatic order ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + rcpt_qty [cv(location), cv(week) ], max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ] ) order by item, location,week / If rules have many inter dependencies, use automatic order. Oracle will rearrange rule order evaluation optimally Id Operation Name SELECT STATEMENT 1 SORT ORDER BY 2 SQL MODEL CYCLIC 3 TABLE ACCESS FULL ITEM_DATA 4 WINDOW (IN SQL MODEL) SORT Riyaj Shamsudeen 37

38 Model & For loop For loop can be specified in the rule, only range of weeks between 3 & 9 printed in this example. select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [location, for week from 3 to 9 increment 1 ] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] ) order by item, location,week / Riyaj Shamsudeen 38

39 Model & iterate Model can iterate rule in a loop until maximum number of iteration reached or until condition reached. Create table iter (n1 number); select fib from iter model return updated rows dimension by (n1) measures (0 fib, n1) ignore nav rules iterate (50) ( fib [-2]=0, fib[-1]=1, fib [iteration_number ]= fib [iteration_number-1 ] + fib [iteration_number-2] ) order by fib / Riyaj Shamsudeen 39

40 Model & in phrase For loop can be specified in the rule, only range of weeks between 3 & 9 printed in this example. select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [location in (10,20), for week from 3 to 9 increment 1 ] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] ) order by item, location,week / Riyaj Shamsudeen 40

41 Model & positional notation Positional value specified. Rows with location=10. select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules ( inventory [10, for week from 3 to 9 increment 1 ] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] ) order by item, location,week / Riyaj Shamsudeen 41

42 select item, location, week, inventory, sales_qty, rcpt_qty from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) ignore nav rules ( inventory [10, for week from 3 to 9 increment 1 ] = inventory [cv(location), cv(week)-1 ] ) order by item, location,week / Model & Ignore Nav Not Available Values [ non-existent rows or null values] considered as 0 instead of nulls in arithmetic calculation. - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] Riyaj Shamsudeen 42

43 Model Works fine with Cursor_sharing set to force too select item, location, week, inventory, sales_qty, rcpt_qty from item_data where location=:"sys_b_0" model return updated rows partition by (item) dimension by (location, week) measures ( :"SYS_B_1" inventory, sales_qty, rcpt_qty) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-:"sys_b_2" ],:"SYS_B_3") - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] ) order by item, location,week call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Misses in library cache during execute: 1 Optimizer mode: ALL_ROWS Riyaj Shamsudeen 43

44 Gotcha Of course, if rules are inconsistent, errors thrown: explain plan for select item, location, week, inventory, sales_qty, rcpt_qty, max_inventory from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty, 0 max_inventory) rules automatic ORDER ( max_inventory [location, week] = max(inventory) [cv(location), week between cv(week)-5 and cv(week)+5 ], inventory [location, week] = cv(week) ] + max_inventory [location, week] ) order by item, location,week / ERROR at line 11: ORA-32622: illegal multi-cell reference Two rules are cyclically referring to each other. So, illegal multi-cell reference is thrown. rcpt_qty [cv(location), cv(week) ] - sales_qty [cv(location), Riyaj Shamsudeen 44

45 Gotcha In and , model errors out: select item, location, week, inventory, sales_qty, rcpt_qty from item_data model return updated rows partition by (item) dimension by (location, week) measures ( 0 inventory, sales_qty, rcpt_qty) rules ( inventory [location, week] = nvl(inventory [cv(location), cv(week)-1 ],0) - sales_qty [cv(location), cv(week) ] + + rcpt_qty [cv(location), cv(week) ] ) order by item, location,week / select item, location, week, inventory, sales_qty, rcpt_qty * ERROR at line 1: ORA-32637: Self cyclic rule in sequential order MODEL Just specify rules automatic order To circumvent this bug. Riyaj Shamsudeen 45

46 Gotcha View merging is not considered in SQL with model clause ( at least until ) Few lines from trace ; CVM: Considering view merge in query block SEL$1 (#0) CVM: Checking validity of merging SEL$2 (#0) CVM: Considering view merge in query block SEL$2 (#0) CVM: CVM bypassed: MODEL in this view Riyaj Shamsudeen 46

47 Analytic functions

48 Analytic functions Powerful feature provides ability to access previous and following rows SQL can be written concisely using these functions Works great for data warehouse and reporting queries Riyaj Shamsudeen 48

49 Running sales total Problem: To calculate running sales total for an item and location (store) by week. select item, location, week, (select sum(sales_qty) from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week <= out1.week ) running_sales_total, sales_qty, rcpt_qty from item_data out1 order by item, location,week Script: anfn_example1.sql Riyaj Shamsudeen 49

50 Running sales total ITEM LOCATION WEEK SALES_QTY RCPT_QTY RUNNING_SALES_TOTAL Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Riyaj Shamsudeen 50

51 Performance old SQL all count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT AGGREGATE (cr=1227 pr=2 pw=0 time=21528 us) 6300 TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1227 pr=2 pw=0 time=19522 us) 6300 INDEX RANGE SCAN ITEM_I1 (cr=611 pr=2 pw=0 time=11008 us)(object id 44482) 600 SORT ORDER BY (cr=1232 pr=2 pw=0 time=24812 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=33 us) Riyaj Shamsudeen 51

52 Running sales total New way select item, location, week, sales_qty, rcpt_qty, sum (sales_qty) over (partition by item, location order by week rows between unbounded preceding and current row ) running_sales_total from item_data Script: anfn_example1.sql Riyaj Shamsudeen 52

53 Running sales total New way call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation WINDOW SORT (cr=5 pr=0 pw=0 time=2606 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=33 us) Riyaj Shamsudeen 53

54 Running sales total ITEM LOCATION WEEK SALES_QTY RCPT_QTY RUNNING_SALES_TOTAL Pants Pants Pants Pants Pants Pants Pants Pants sum 4629 Pants Pants Pants Pants Pants sum 1490 Riyaj Shamsudeen 54

55 Running sales total ITEM LOCATION WEEK SALES_QTY RCPT_QTY Pants Pants Pants Pants sum (sales_qty) over ( Pants Pants Pants Pants Pants Pants Pants Pants Pants partition by item, location order by week rows between unbounded preceding and current row ) Sorts data by item,location and week ITEM LOCATION WEEK SALES_QTY RCPT_QTY RUNNING_SALES_TOTAL Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Calculates sum of prior rows in this partition and current row Riyaj Shamsudeen 55

56 Moving sales average Problem: To calculate moving sales average for an item and location (store). Moving_sales_avg = Average of ( sales_qty for this week and past two weeks). select item, location, week, sales_qty, rcpt_qty, (select avg(sales_qty) from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week <= out1.week and in1.week >= out1.week-2 ) moving_sales_avg from item_data out1 order by item, location,week Riyaj Shamsudeen 56

57 Moving sales average call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT AGGREGATE (cr=1209 pr=2 pw=0 time=17194 us) 1710 FILTER (cr=1209 pr=2 pw=0 time=12288 us) 1710 TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1209 pr=2 pw=0 time=10003 us) 1710 INDEX RANGE SCAN ITEM_I1 (cr=605 pr=2 pw=0 time=5878 us)(object id 46238) 600 SORT ORDER BY (cr=1214 pr=2 pw=0 time=20611 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=35 us) Riyaj Shamsudeen 57

58 Moving sales average New way select item, location, week, sales_qty, rcpt_qty, avg (sales_qty) over ( partition by item, location order by week rows between 2 preceding and current row ) running_sales_total from item_data / Specifying a window of current Row and past two rows Script: anfn_example2.sql Riyaj Shamsudeen 58

59 Moving sales average New way TEM LOCATION WEEK SALES_QTY RCPT_QTY RUNNING_SALES_TOTAL Ties Ties Ties Ties Ties Avg Ties Ties Avg 460 Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Ties Riyaj Shamsudeen 59

60 Explain plan 5 logical reads compared to 1215 logical reads call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation WINDOW SORT (cr=5 pr=0 pw=0 time=5088 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=38 us) Riyaj Shamsudeen 60

61 Lead & Lag functions Lead function provides ability to access later rows from that data partition Lag function provides ability to access prior rows from that data partition You can even specify the offset and default values. Riyaj Shamsudeen 61

62 Lag Problem: Tune query for sales_change_percent Sales change percent formula= (this_week_sales - last_week_sales) / *100 last_week_sales ) Riyaj Shamsudeen 62

63 Lag old way select item, location, week, sales_qty, rcpt_qty, ((sales_qty - last_week_sales_qty )/last_week_sales_qty ) *100 sales_change_percent from ( select item, location, week, sales_qty, rcpt_qty, (select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week-1 ) last_week_sales_qty from item_data out1 order by item, location,week ) Script : anfn_lag.sql Riyaj Shamsudeen 63

64 Lag old way call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation VIEW (cr=1178 pr=2 pw=0 time=13670 us) 600 SORT ORDER BY (cr=1178 pr=2 pw=0 time=13659 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=632 us) Riyaj Shamsudeen 64

65 Lag - tuned select item, location, week, sales_qty, rcpt_qty, ((sales_qty - last_week_sales_qty )/last_week_sales_qty ) *100 sales_change_percent from ( select item, location, week, sales_qty, rcpt_qty, lag(sales_qty,1,sales_qty) over (partition by item, location order by week) last_week_sales_qty from item_data out1 order by item, location,week ) Lag is to access prior row, in that partition. First argument : column_name Second argument : offset Third argument : default value if out of partition Partitions data, sorts rows by week in that data partitions Riyaj Shamsudeen 65

66 ITEM LOCATION WEEK SALES_QTY RCPT_QTY Sales change percent Pants Pants Pants Pants lag(sales_qty,1,sales_qty) over ( partition by item, location order by week ) Sales change percent (( )/239 )*100=213.3 Pants Pants Pants Pants Pants Pants Pants Pants Pants Sorts data by item,location and week ITEM LOCATION WEEK SALES_QTY RCPT_QTY SALES_CHANGE_PERCENT Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Lag accesses prior row to calculate sales_change_percent Riyaj Shamsudeen 66

67 Lag sales_change_percent (( )/239 )*100=213.3 ITEM LOCATION WEEK SALES_QTY RCPT_QTY SALES_CHANGE_PERCENT Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Riyaj Shamsudeen 67

68 Lag 6 buffer gets compared to 1180 buffer gets. call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation VIEW (cr=5 pr=0 pw=0 time=4489 us) 600 WINDOW SORT (cr=5 pr=0 pw=0 time=4486 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=37 us) Riyaj Shamsudeen 68

69 Lag and lead Problem: Tune SQL that prints past two weeks and next two weeks sales_qty in the same line. Preceding Preceding This Succeeding Succeeding ITEM LOCATION WEEK week 2 week 1 week week 1 week Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Pants Riyaj Shamsudeen 69

70 Lag and lead -old select item, location, week, rcpt_qty, (select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week-2 ) prev_week_2_sales_qty, (select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week-1 ) prev_week_1_sales_qty, sales_qty, (select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week+1 ) succ_week_1_sales_qty, (select sales_qty from item_data in1 where in1.item=out1.item and in1.location=out1.location and in1.week = out1.week+2 ) succ_week_2_sales_qty from item_data out1 order by item, location,week Script : anfn_lead_n_lag.sql Riyaj Shamsudeen 70

71 Lag and lead call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1143 pr=0 pw=0 time=8574 us) 540 INDEX RANGE SCAN ITEM_I1 (cr=603 pr=0 pw=0 time=5512 us)(object id 46444) 570 TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1173 pr=0 pw=0 time=8713 us) 570 INDEX RANGE SCAN ITEM_I1 (cr=603 pr=0 pw=0 time=5503 us)(object id 46444) 570 TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1173 pr=0 pw=0 time=8836 us) 570 INDEX RANGE SCAN ITEM_I1 (cr=603 pr=0 pw=0 time=5614 us)(object id 46444) 570 TABLE ACCESS BY INDEX ROWID ITEM_DATA (cr=1173 pr=2 pw=0 time=10029 us) 570 INDEX RANGE SCAN ITEM_I1 (cr=603 pr=2 pw=0 time=6720 us)(object id 46444) 600 SORT ORDER BY (cr=4667 pr=2 pw=0 time=43306 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=40 us) Riyaj Shamsudeen 71

72 Lag and lead - tuned select item, location, week, rcpt_qty, lag (sales_qty, 2) over ( partition by item, location order by week asc ) prev_week_2_sales_qty, lag (sales_qty, 1) over ( partition by item, location order by week asc ) prev_week_1_sales_qty, sales_qty, lead (sales_qty, 1) over ( partition by item, location order by week asc ) succ_week_1_sales_qty, lead (sales_qty, 2) over ( partition by item, location order by week asc ) succ_week_2_sales_qty from item_data Prior weeks Following weeks Riyaj Shamsudeen 72

73 Lag and lead - tuned 6 logical reads, compared to 4667 logical reads call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation WINDOW SORT (cr=5 pr=0 pw=0 time=8597 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=35 us) Riyaj Shamsudeen 73

74 First_value & last_value These functions provides first or last values in an ordered set of rows Very useful in finding the top or bottom values and also other columns in that same row. Riyaj Shamsudeen 74

75 First_value & last_value Problem: Tune SQL that finds worst and best seller for an item by week OLD way: Finds maximum sales qty and location select mi.item, mi.week, ma.max_location top_seller, ma.max_sales_qty top_sales_qty, mi.min_location worst_seller, mi.min_sales_qty worst_sales_qty from (select item, week, sales_qty max_sales_qty, location max_location from item_data where (item, week, sales_qty) in ( select item, week, max(sales_qty) from item_data group by item, week ) ) ma, (select item, week, sales_qty min_sales_qty, location min_location from item_data where (item, week, sales_qty ) in ( select item, week, min(sales_qty) from item_data group by item, week ) ) mi where mi.item = ma.item and mi.week = ma.week order by item, week Finds minimum sales qty and location Riyaj Shamsudeen 75

76 First_value & last_value call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT ORDER BY (cr=20 pr=0 pw=0 time=15415 us) 61 HASH JOIN RIGHT SEMI (cr=20 pr=0 pw=0 time=14170 us) 60 VIEW (cr=5 pr=0 pw=0 time=1178 us) 60 SORT GROUP BY (cr=5 pr=0 pw=0 time=1174 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=39 us) 610 HASH JOIN (cr=15 pr=0 pw=0 time=9695 us) 61 HASH JOIN RIGHT SEMI (cr=10 pr=0 pw=0 time=5926 us) 60 VIEW (cr=5 pr=0 pw=0 time=1306 us) 60 SORT GROUP BY (cr=5 pr=0 pw=0 time=1186 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=35 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=31 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=27 us) Riyaj Shamsudeen 76

77 First_value & last_value (tuned) select distinct item, week, first_value (location) over (partition by item, week order by sales_qty desc rows between unbounded preceding and unbounded following ) top_seller, first_value (sales_qty) over (partition by item, week order by sales_qty desc rows between unbounded preceding and unbounded following ) top_sales_qty, last_value (location) over (partition by item, week order by sales_qty desc rows between unbounded preceding and unbounded following ) worst_seller, last_value (sales_qty) over (partition by item, week order by sales_qty desc rows between unbounded preceding and unbounded following ) worst_sales_qty from item_data order by item, week Script : anfn_first_value.sql Riyaj Shamsudeen 77

78 First_value & last_value (tuned) first_value (location) over ( partition by item, week order by sales_qty desc rows between unbounded preceding and unbounded following ) First_value and last_value Retrieves column values from First and last row, in that ordered set ITEM WEEK LOCATION SALES_QTY Shirt Shirt Shirt Shirt Shirt Shirt Shirt Shirt Sort by item, week, sales_qty desc ITEM LOCATION WEEK SALES_QTY Shirt Shirt Shirt Shirt Shirt Shirt first_value/last_value ITEM WEEK TOP_SELLER TOP_SALES_QTY WORST_SELLER WORST_SALES_QTY Shirt Shirt Shirt Shirt Riyaj Shamsudeen 78

79 First_value & last_value (tuned) 6 logical reads, compared to 20 logical reads. Item_data accessed just once, compared to four times. call count cpu elapsed disk query current rows Parse Execute Fetch total Misses in library cache during parse: 1 Optimizer mode: ALL_ROWS Parsing user id: 30 Rows Row Source Operation SORT UNIQUE (cr=5 pr=0 pw=0 time=4478 us) 600 WINDOW SORT (cr=5 pr=0 pw=0 time=3580 us) 600 TABLE ACCESS FULL ITEM_DATA (cr=5 pr=0 pw=0 time=39 us) Riyaj Shamsudeen 79

80 Dense_rank Tune SQL to print top two selling locations and receipt_qty select item, week, location, sales_qty, sales_rnk, rcpt_rank from ( select item, week, location, sales_qty, (select count(*) from item_data i1 where i1.item = iout.item and i1.week = iout.week and Finding sales_rnk i1.sales_qty >= iout.sales_qty ) sales_rnk, (select count(*) from item_data i1 where i1.item = iout.item and i1.week = iout.week and i1.rcpt_qty >= iout.rcpt_qty ) rcpt_rank from item_data iout ) where sales_rnk <3 order by item, week, sales_qty desc Script : anfn_dense_rank.sql Riyaj Shamsudeen 80

Exciting SQL/PLSQL new features. By Riyaj shamsudeen

Exciting SQL/PLSQL new features. By Riyaj shamsudeen Exciting SQL/PLSQL new features By Riyaj shamsudeen Who am I? 15 years using Oracle Over 12 years as Oracle DBA Certified DBA versions 7.0,7.3,8,8i &9i Specializes in performance tuning and Internals Currently

More information

Analytic functions allow the rows in a result set to 'peek' at each other, avoiding the need for joining duplicated data sources.

Analytic functions allow the rows in a result set to 'peek' at each other, avoiding the need for joining duplicated data sources. Standard SQL functionality focuses on rows. When you want to explore the relationship between rows, those rows would have to come from different sources, even if it was the same table with a different

More information

Reading Plans in the cloud or not Revised November 2017

Reading Plans in the cloud or not Revised November 2017 Reading Plans in the cloud or not Revised November 2017 This free training webinar is a lesson from the Hotsos Optimizing Oracle SQL, Intensive (OPINT) course. Please visit our website for more information.

More information

Data Warehousing and Data Mining SQL Window Functions

Data Warehousing and Data Mining SQL Window Functions Data Warehousing and Data Mining SQL Window Functions SQL analytic/window functions Ranking Moving Window Cumulative aggregates Densification Acknowledgements: I am indebted to M. Böhlen for providing

More information

Things You Should Know About 11g CBO

Things You Should Know About 11g CBO Things You Should Know About 11g CBO Dave Anderson Founder and Oracle DBA, SkillBuilders dave@skillbuilders.com SkillBuilders.com/SQLTuning Some Things I Really Hope You Want to Know About CBO! Agenda

More information

Explaining the Explain Plan

Explaining the Explain Plan 1 Explaining the Explain Plan Thomas Kyte http://asktom.oracle.com/ Disclaimer The goal of this session to provide you with a guide for reading SQL execution plans and to help you

More information

Anthony Carrick INFS7903 Assignment

Anthony Carrick INFS7903 Assignment INFS7903 Assignment Contents Task 1: Constraints... 2 1a - SQL to show all constraints:... 2 1b Implement the missing constraints... 2 Result (of rerunning the sql in 1a):... 3 Task 2: Triggers... 4 2a

More information

Analytic Functions 101

Analytic Functions 101 Analytic Functions 101 Kim Berg Hansen KiBeHa Middelfart, Denmark Keywords: SQL, analytics Introduction The company I have worked at since 2000 as developer/architect is a major Danish retail company called

More information

Query Tuning Using Advanced Hints

Query Tuning Using Advanced Hints Query Tuning Using Advanced Hints NYOUG Meeting December 12, 2002 Claudio Fratarcangeli Adept Technology Inc. claudiof@computer.org PUSH_PRED Hint Applicable when doing an outer join to a view Normally,

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13 1 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any

More information

Dynamic_plan_table, x$kqlfxpl and extreme library cache latch contention

Dynamic_plan_table, x$kqlfxpl and extreme library cache latch contention Dynamic_plan_table, x$kqlfxpl and extreme library cache latch contention We had an interesting latch contention issue with a client database worth sharing. Client complained that they are seeing increased

More information

Graham Wood Architect Oracle Corporation

Graham Wood Architect Oracle Corporation Graham Wood Architect Oracle Corporation Performance Diagnostic Data and Statspack: What s New in Oracle9iR2 or Not more new statistics! Overview New Statistics highlights Statspack changes Tweaks and

More information

Oracle DB-Tuning Essentials

Oracle DB-Tuning Essentials Infrastructure at your Service. Oracle DB-Tuning Essentials Agenda 1. The DB server and the tuning environment 2. Objective, Tuning versus Troubleshooting, Cost Based Optimizer 3. Object statistics 4.

More information

Why does Optimizer hates my SQL!

Why does Optimizer hates my SQL! Why does Optimizer hates my SQL! By Riyaj Shamsudeen OraInternals Riyaj Shamsudeen Who am I? 17 years using Oracle products Over 16 years as Oracle DBA Certified DBA versions 7.0,7.3,8,8i &9i Specializes

More information

Adaptive Cursor Sharing Short answer to sharing cursors and optimizing SQL

Adaptive Cursor Sharing Short answer to sharing cursors and optimizing SQL Adaptive Cursor Sharing Short answer to sharing cursors and optimizing SQL Mohamed Houri www.hourim.wordpress.com 1 Agenda Set the scene Expose the performance problem caused by sharing cursors Literal,

More information

the Cost Based Optimiser in 11g Rel 2

the Cost Based Optimiser in 11g Rel 2 SAGE Computing Services Customised Oracle Training Workshops and Consulting the Cost Based Optimiser in 11g Rel 2 Penny Cookson SAGE Computing Services www.sagecomputing.com.au penny@sagecomputing.com.au

More information

RAC performance tuning

RAC performance tuning RAC performance tuning By Riyaj Shamsudeen OraInternals Riyaj Shamsudeen These are receive metrics RAC CR Wait Events GC cr block 2-way/3-way GC cr block busy GC cr block congested/ GC cr grants congested.

More information

What is new in the Oracle 9i CBO

What is new in the Oracle 9i CBO What is new in the Oracle 9i CBO Wolfgang Breitling breitliw@centrexcc.com Centrex Consulting Corporation www.centrexcc.com Who am I OCP certified DBA - 7, 8, 8i, 9i Independent consultant since 1996 specializing

More information

Tips and Techniques for Statistics Gathering. Arup Nanda Longtime Oracle DBA

Tips and Techniques for Statistics Gathering. Arup Nanda Longtime Oracle DBA Tips and Techniques for Statistics Gathering Arup Nanda Longtime Oracle DBA Agenda High Level Pending stats Correlated Stats Sampling 2 Reporting New reporting function for auto stats collection Returns

More information

Performance tuning for developers By Riyaj Shamsudeen

Performance tuning for developers By Riyaj Shamsudeen Performance tuning for developers By Riyaj Shamsudeen Who am I? 18 years using Oracle products/dba OakTable member Oracle ACE Certified DBA versions 7.0,7.3,8,8i &9i Specializes in RAC, performance tuning,

More information

ABSTRACT INTRODUCTION IMPORTANT CONCEPTS. John Jay King, King Training Resources

ABSTRACT INTRODUCTION IMPORTANT CONCEPTS. John Jay King, King Training Resources ANALYZE THIS! USING ORACLE8I ANALYTIC FUNCTIONS John Jay King, King Training Resources ABSTRACT Oracle 8.1.6 introduced new Analytic functions allowing complex statistical calculations to be accomplished

More information

CH-15 SIMPLE QUERY AND GROUPING

CH-15 SIMPLE QUERY AND GROUPING SQL SELECT STATEMENT. ASHOK GARG CH-15 SIMPLE QUERY AND GROUPING The SELECT statement is used to retrieve information from a table. Syntax: SELECT FROM [WHERE ] [GROUP

More information

Why does Optimizer hates my SQL!

Why does Optimizer hates my SQL! Why does Optimizer hates my SQL! By Riyaj Shamsudeen OraInternals Riyaj Shamsudeen Who am I? 17 years using Oracle products/dba OakTable member Certified DBA versions 7.0,7.3,8,8i &9i Specializes in RAC,

More information

DTrace Introduction. Kyle Hailey and Adam Leventhal

DTrace Introduction. Kyle Hailey and Adam Leventhal DTrace Introduction Kyle Hailey and Adam Leventhal Agenda Intro Performance problems Cloned DB slower when everything the same Orion benchmark impossibly fast Oracle process on 100% CPU, no waits How DTrace

More information

www.informatik-aktuell.de Independent consultant Performance Troubleshooting In-house workshops Cost-Based Optimizer Performance By Design Oracle ACE Director Member of OakTable Network Parallel Execution

More information

Chasing the optimizer, step by step. Mauro Pagano

Chasing the optimizer, step by step. Mauro Pagano Chasing the optimizer, step by step Mauro Pagano Mauro Pagano Consultant/Developer/Analyst Oracle Enkitec Accenture DBPerf and SQL Tuning Training Tools (SQLT, SQLd360, Pathfinder) 2 Agenda Optimizer Introduction

More information

Chasing the optimizer, step by step. Mauro Pagano

Chasing the optimizer, step by step. Mauro Pagano Chasing the optimizer, step by step Mauro Pagano Mauro Pagano Consultant & Developer Oracle è Enkitec è Accenture DBPerf and SQL Tuning Training, Conferences and Workshops Tools (SQLT, SQLd360, TUNAs360,

More information

Performance specific new features in 11g. By Riyaj Shamsudeen

Performance specific new features in 11g. By Riyaj Shamsudeen Performance specific new features in 11g By Riyaj Shamsudeen Who am I? 16 years using Oracle products Over 15 years as Oracle DBA Certified DBA versions 7.0,7.3,8,8i &9i Specializes in performance tuning,

More information

Beginning Performance Tuning. Arup Nanda Longtime Oracle DBA (and a beginner, always)

Beginning Performance Tuning. Arup Nanda Longtime Oracle DBA (and a beginner, always) Beginning Performance Tuning Arup Nanda Longtime Oracle DBA (and a beginner, always) Agenda What this is about? You noticed some degradation of performance What should you do next? Where to start What

More information

Getting Started with Exadata & Smart Scan

Getting Started with Exadata & Smart Scan Getting Started with Exadata & Smart Scan Aman Sharma Aman Sharma Who Am I? Aman Sharma About 12+ years using Oracle Database Oracle ACE Frequent Contributor to OTN Database forum(aman.) Oracle Certified

More information

Partition by combination of several (correlated) date columns.

Partition by combination of several (correlated) date columns. Partition by combination of several (correlated date columns. Many systems have several date columns which could be used as partitioning base. E.g. in ordering system there is ORDER_DATE, LOADING_DATE,

More information

Parallel Execution With Oracle Database 12c. Ivica Arsov June 8, 2018

Parallel Execution With Oracle Database 12c. Ivica Arsov June 8, 2018 Parallel Execution With Oracle Database 12c Ivica Arsov June 8, 2018 Ivica Arsov Database Consultant Based in Skopje, Macedonia Oracle Certified Master 12c & 11g Oracle ACE Blogger Founder of MKOUG Twitter:

More information

Oracle Database 12c Release 2 and 18c New Indexing Features

Oracle Database 12c Release 2 and 18c New Indexing Features Oracle Database 12c Release 2 and 18c New Indexing Features Richard Foote Consulting RICHARD FOOTE CONSULTING 1 Richard Foote richardfoote Working in IT for 30+ years, 20+ years with Oracle Database 19

More information

Bloom filters. Toon Koppelaars. Real World Performance team Database Server Technologies

Bloom filters. Toon Koppelaars. Real World Performance team Database Server Technologies Bloom filters Toon Koppelaars Real World Performance team Database Server Technologies Agenda Hash function Hash joins Bloom filters Examples Hash joins and Bloom filters Bloom filters (BF) introduced

More information

Lo siento, no hablo español :-(

Lo siento, no hablo español :-( Lo siento, no hablo español :-( Connor McDonald 1 3 4 2 Typical speaker slide blog connor-mcdonald.com youtube tinyurl.com/connor-tube twitter @connor_mc_d https://asktom.oracle.com 6 3 https://asktom.oracle.com/officehours7

More information

Tuna Helper Proven Process for SQL Tuning. Dean Richards Senior DBA, Confio Software

Tuna Helper Proven Process for SQL Tuning. Dean Richards Senior DBA, Confio Software Tuna Helper Proven Process for SQL Tuning Dean Richards Senior DBA, Confio Software 1 Tuna Helper Proven Process for SQL Tuning Give a man a fish and you feed him for a day. Teach a man to fish and you

More information

Under The Hood Of Query Transformations

Under The Hood Of Query Transformations Under The Hood Of Query Transformations Jože Senegačnik Oracle ACE Director www.dbprof. joze.senegacnik@dbprof. - 2013 - Jože Senegačnik 1 About the Speaker Jože Senegačnik Registered private researcher

More information

Tuna Helper Proven Process for SQL Tuning. Dean Richards Senior DBA, Confio Software

Tuna Helper Proven Process for SQL Tuning. Dean Richards Senior DBA, Confio Software Tuna Helper Proven Process for SQL Tuning Dean Richards Senior DBA, Confio Software 1 Tuna Helper Proven Process for SQL Tuning Give a man a fish and you feed him for a day. Teach a man to fish and you

More information

Jože Senegačnik

Jože Senegačnik DbProf. Use Constraints to Improve the Performance DOAG 2010 Nürnberg, 16. 18.11.2010 Jože Senegačnik Oracle ACE Director www.dbprof.joze.senegacnik@dbprof. - 2010 Jože Senegačnik Oracle ACE Director 1

More information

Performance Tuning Customer Success Stories

Performance Tuning Customer Success Stories Oracle Business Intelligence 11g Performance Tuning Customer Success Stories Antony Heljula December 2013 Peak Indicators Limited 2 About this Presentation Aggregation using Oracle BI This presentation

More information

RAC 12c Cache Fusion Internals

RAC 12c Cache Fusion Internals RAC 12c Cache Fusion Internals By Riyaj Shamsudeen OraInternals Riyaj Shamsudeen Me 20+ years using Oracle products/dba OakTable member Oracle ACE Director Specializes in RAC, performance tuning and Internals.

More information

Methodical Performance Troubleshooting. Arup Nanda. You noticed some degradation of performance

Methodical Performance Troubleshooting. Arup Nanda. You noticed some degradation of performance Methodical Performance Troubleshooting Arup Nanda Agenda What this is about? You noticed some degradation of performance What should you do next? Where to start What tool to use How to understand the root

More information

Mining AWR V2. Trend Analysis. MARIS ELSINS Lead Database Consultant Pythian

Mining AWR V2. Trend Analysis. MARIS ELSINS Lead Database Consultant Pythian Mining AWR V2 Trend Analysis MARIS ELSINS Lead Database Consultant 216 Pythian 1 Located in Riga, Latvia Oracle [Apps] DBA since 25 Speaker at conferences since 27 @MarisElsins elsins@pythian.com http://bit.ly/getmospatchv2

More information

Parallel Execution Oracle Database 12c

Parallel Execution Oracle Database 12c Parallel Execution Oracle Database 12c Who Am I Ivica Arsov - Database consultant - Pythian - ACE Associate - Certifications - Oracle Database 12c Administrator Certified Master - Oracle Database 11g Administrator

More information

Check List Mastering Oracle Analytic Function

Check List Mastering Oracle Analytic Function Check List Mastering Oracle Analytic Function ( 주 ) 오픈메이드컨설팅 오동규수석컨설턴트 1 RANKING FUNCTION PARTITION BY 절 ORDER BY 절 Windowing 절 분배함수 Hypothetical Functions Reporting Functions 2 분석함수를사용하는것이 SQL 튜닝방법이된다.

More information

Define Metrics in Reports

Define Metrics in Reports in Reports Metrics are used to build reports. They are the numerical values displayed in reports. They represent aggregations of facts and attributes. A metric is a simple or complex calculation applied

More information

BI4Dynamics NAV White Paper

BI4Dynamics NAV White Paper BI4Dynamics NAV White Paper BI4Dynamics NAV version: 6.2 Last update: March 2018 Version: 01 Content 1 PREFACE 2 2 BI4DYNAMICS PROFILER 5 3 ANALYTICAL AREA: BANK ACCOUNT 11 4 ANALYTICAL AREA: FIED ASSETS

More information

Metadata Matters. Thomas Kyte

Metadata Matters. Thomas Kyte Metadata Matters Thomas Kyte http://asktom.oracle.com/ Did you know The optimizer uses constraints Statistics plus Extended statistics (profiles, virtual columns, etc) plus System statistics plus Dictionary

More information

nuijten.blogspot.com

nuijten.blogspot.com nuijten.blogspot.com 4 Years 2009 2013 R1 Multitenant Architecture 2009 2013 R1 In Memory Option 2013 2014 R1 12.1.0.2 but what s in it for the Database Developer? Increased Size Limit SQL> create table

More information

RDBMS Using Oracle. Lecture week 5. Lecture Overview

RDBMS Using Oracle. Lecture week 5. Lecture Overview RDBMS Using Oracle Lecture week 5 CASE Expression Group Functions Lecture Overview AVG MAX MIN SUM COUNT Etc Working with Date Decode Function INSERT, UPDATE and DELETE commands Commit and Rollback, Alter

More information

Performance monitoring in SQL*Plus using AWR. and analytic functions

Performance monitoring in SQL*Plus using AWR. and analytic functions November 2014 Performance monitoring in SQL*Plus using AWR Performance monitoring in SQL*Plus using AWR and analytic functions and analytic functions By Marcin Przepiorowski, Principal Oracle DBA Marcin

More information

The middle ground in the Buffer Cache Lothar Flatz Senior Principal Consultant

The middle ground in the Buffer Cache Lothar Flatz Senior Principal Consultant Software & Informatik The middle ground in the Buffer Cache Lothar Flatz Senior Principal Consultant May I introduce myself... Who am I? 25 Year Oracle Database experience (starting with Version 5) 15

More information

SQL Programming 1 SQL1 1

SQL Programming 1 SQL1 1 SQL Programming 1 The SELECT-FROM-WHERE Structure Single Relation Queries ORDER BY LIKE IS (NOT) NULL DISTINCT Aggregation Queries Grouping Having Oracle SQL*Plus Readings: Section 6.1 and 6.4 of Textbook.

More information

Teradata Corporation Copyright All Rights Reserved.

Teradata Corporation Copyright All Rights Reserved. Recursive Queries After completing this module, you will be able to: Identify the need for recursive derived table vs. (non-recursive) derived table. Discern the different parts of the recursive query

More information

Oracle Hyperion Planning for Interactive Users

Oracle Hyperion Planning for Interactive Users Oracle University Contact Us: 1.800.529.0165 Oracle Hyperion Planning 11.1.2 for Interactive Users Duration: 0 Days What you will learn This course is designed to teach you how to use Planning. It includes

More information

Common Pitfalls in Complex Apps Performance Troubleshooting

Common Pitfalls in Complex Apps Performance Troubleshooting Common Pitfalls in Complex Apps Performance Troubleshooting HrOUG October 2017 Timur Akhmadeev ABOUT PYTHIAN Pythian s 400+ IT professionals help companies adopt and manage disruptive technologies to better

More information

Landed Cost PO This Extended Solution cannot be enabled if Landed Cost is enabled.

Landed Cost PO This Extended Solution cannot be enabled if Landed Cost is enabled. Landed Cost PO-1094 Overview This Extended Solution to the Purchase Order module adds new features and processing to support posting an Inventory Item s Landed Cost in the Inventory Management and Purchase

More information

Correlation, Nocorrelation and extended stats

Correlation, Nocorrelation and extended stats Correlation, Nocorrelation and extended stats I blogged about extended stats in my earlier blog, extended stats, and also documented that in Investigations: extended stats and multi-column correlation.

More information

Demystifying Cache Buffer Chains

Demystifying Cache Buffer Chains Demystifying Cache Buffer Chains Session 431 Arup Nanda Longtime Oracle DBA Twitter @ArupNanda Blog aarup.blogspot.com Facebook.com/ArupKNanda REMINDER Check in on the COLLABORATE mobile app Agenda SQL>

More information

A Process for Data Requirements Analysis. David Loshin Knowledge Integrity, Inc. October 30, 2007

A Process for Data Requirements Analysis. David Loshin Knowledge Integrity, Inc. October 30, 2007 A Process for Data Requirements Analysis David Loshin Knowledge Integrity, Inc. loshin@knowledge-integrity.com October 30, 2007 1 Agenda The criticality of business information Data requirements analysis

More information

Oracle Product Lifecycle Analytics

Oracle Product Lifecycle Analytics Oracle Product Lifecycle Analytics Readme v.3.3 Part Number E20563-02 May 2011 Readme Oracle Copyright Copyright 1995, 2011, Oracle and/or its affiliates. All rights reserved. This software and related

More information

RESOLV THIRD PARTY MANAGEMENT (3PL)

RESOLV THIRD PARTY MANAGEMENT (3PL) RESOLV THIRD PARTY MANAGEMENT (3PL) USER MANUAL Version 9.2 for Desktop HANA PRESENTED BY ACHIEVE IT SOLUTIONS Copyright 2012-2016 by Achieve IT Solutions These materials are subject to change without

More information

tackling time troubles ORA-01883: overlap was disabled during a region transition

tackling time troubles ORA-01883: overlap was disabled during a region transition ORA-01847: day of month must be between 1 and ORA-01839: date not valid for month last day of month specified tackling time troubles ORA-01883: overlap was disabled during a region transition ORA-01878:

More information

Item Management. SIMMS Inventory Management Software 7.3. Updated September 28, 2010

Item Management. SIMMS Inventory Management Software 7.3. Updated September 28, 2010 Item Management SIMMS Inventory Management Software 7.3 Updated September 28, 2010 Contents Item Management.................. 1 Adding an Item s Profile................ 1 Add an Item s Profile..............

More information

COPYRIGHTED MATERIAL. Contents. Part One Requirements, Realities, and Architecture 1. Acknowledgments Introduction

COPYRIGHTED MATERIAL. Contents. Part One Requirements, Realities, and Architecture 1. Acknowledgments Introduction Contents Contents ix Foreword xix Preface xxi Acknowledgments xxiii Introduction xxv Part One Requirements, Realities, and Architecture 1 Chapter 1 Defining Business Requirements 3 The Most Important Determinant

More information

Transferring Inventory

Transferring Inventory 1 Inventory: Using CounterPoint Transferring Inventory Overview Transfers allow you to move goods from one location to another and to reconcile any difference between what was shipped and what was received.

More information

COINS Ti PO/IN Inventory Turnover Report

COINS Ti PO/IN Inventory Turnover Report Modules Affected: Purchase Order/Inventory Versions Affected: COINS Ti (revised for software level 9.7c2.33TI) Documentation Updated: New fields and screens described within this CE document are included

More information

TABLE OF CONTENTS DOCUMENT HISTORY

TABLE OF CONTENTS DOCUMENT HISTORY TABLE OF CONTENTS DOCUMENT HISTORY 4 UPDATE 18B 4 Revision History 4 Overview 4 Optional Uptake of New Features (Opt In) 5 Feature Summary 6 Inventory Management 8 Use Infolets to View Unprocessed Transactions

More information

Document Number: LIMS021 Last Revision Date: 7/12/2004 Software Versions: SQL*LIMS v and v4.1 Platform: All Platforms Author: Deborah Man

Document Number: LIMS021 Last Revision Date: 7/12/2004 Software Versions: SQL*LIMS v and v4.1 Platform: All Platforms Author: Deborah Man Applied Biosystems SQL*LIMS Technical Support Technical Note Document Number: LIMS021 Last Revision Date: 7/12/2004 Software Versions: SQL*LIMS v4.0.16 and v4.1 Platform: All Platforms Author: Deborah

More information

2-Day Oracle Primavera P6 Professional Advanced Scheduling - Training Outline -

2-Day Oracle Primavera P6 Professional Advanced Scheduling - Training Outline - 2-Day Oracle Primavera P6 Professional Advanced Scheduling - Training Outline - PREPARED BY: Jake Lilley, PMP President PPM Global Services, Inc. P: 1-800-746-4029 F: 1-800-746-4029 E: jlilley@ppmglobalservices.com

More information

ABOUT MULTIBLOCK READS

ABOUT MULTIBLOCK READS Frits Hoogland - Hotsos Symposium 2013 ABOUT MULTIBLOCK READS Who am I? Frits Hoogland Working with Oracle products since 1996 Blog: http://fritshoogland.wordpress.com Twitter: @fritshoogland Email: fhoogland@vxcompany.com

More information

SQL and PL/SQL. Connor McDonald 7/17/2018. The meanest, fastest thing out there. Connor McDonald

SQL and PL/SQL. Connor McDonald 7/17/2018. The meanest, fastest thing out there. Connor McDonald SQL and PL/SQL The meanest, fastest thing out there Connor McDonald 1 Copyright 2017, Oracle and/or its affiliates. All rights reserved. Connor McDonald 1 3 4 2 Typical speaker ego slide blog connor-mcdonald.com

More information

Interpreting AWR reports straight to the Goal

Interpreting AWR reports straight to the Goal Interpreting AWR reports straight to the Goal Franck Pachot dbi services Switzerland Keywords: AWR, Statspack, Oracle, Tuning, DB Time. Introduction A Statspack/AWR report is not something to be read from

More information

Performance Tuning in Oracle 10g Part 2

Performance Tuning in Oracle 10g Part 2 Performance Tuning in Oracle 10g Part 2 SAGE Computing Services Customised Oracle Training Workshops and Consulting Penny Cookson - Managing Director Agenda System Statistics Using wait events Tuning I/O

More information

Oracle MOOC: SQL Fundamentals

Oracle MOOC: SQL Fundamentals Week 3 Homework for Lesson 3 Homework is your chance to put what you've learned in this lesson into practice. This homework is not "graded" and you are encouraged to write additional code beyond what is

More information

Warehouse Management System for Adagio Accounting

Warehouse Management System for Adagio Accounting Warehouse Management System for Adagio Accounting 1. Create PO in Purchase Orders for Adagio Receiving 2. Import PO from Purchase Orders for Adagio into WMS using ERP Light for Adagio Console 3. Check

More information

Oracle BI 12c: Create Analyses and Dashboards Ed 1

Oracle BI 12c: Create Analyses and Dashboards Ed 1 Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle BI 12c: Create Analyses and Dashboards Ed 1 Duration: 5 Days What you will learn This Oracle BI 12c: Create Analyses and

More information

Assigning and Updating Prices in Eclipse. Release 9.0.4

Assigning and Updating Prices in Eclipse. Release 9.0.4 Assigning and Updating Prices in Eclipse Release 9.0.4 i Table of Contents Disclaimer This document is for informational purposes only and is subject to change without notice. This document and its contents,

More information

Assigning and Updating Prices. Release (Eterm)

Assigning and Updating Prices. Release (Eterm) Assigning and Updating Prices Release 8.6.5 (Eterm) Legal Notices 2009 Activant Solutions Inc. All rights reserved. Unauthorized reproduction is a violation of applicable laws. Activant and the Activant

More information

ACCTivate! Release Notes (QuickBooks Edition)

ACCTivate! Release Notes (QuickBooks Edition) ACCTivate! 7.3.2 Release Notes (QuickBooks Edition) Business Activity - Product Tax Code overrides Customer Tax code on Materials tab of Business Activity - #56665 Business Alerts - Sales Order Workflow

More information

Pepperi Plugin for SAP Business One

Pepperi Plugin for SAP Business One Pepperi Plugin for SAP Business One April. 2015 Ver 1.1 Contents 1 Introduction...4 1.1 System Requirements... 4 1.2 Glossary... 4 2 System Architecture...5 3 Overview...6 3.1 Installation and Setup...

More information

Working with Merchandise History

Working with Merchandise History 1 Inventory: Using CounterPoint Working with Merchandise History Overview Merchandise history keeps track of the movement of your inventory items and keeps records of markdowns. You can access this information

More information

Importing Part Information in Sage BusinessWorks 2013

Importing Part Information in Sage BusinessWorks 2013 Importing Part Information in Sage BusinessWorks 2013 Sage BusinessWorks Accounting import format requirements: 1. The import file must be in a comma delimited variable (.CSV) text format. Each field can

More information

IBM TRIRIGA Application Platform Version 3 Release 4.1. Reporting User Guide

IBM TRIRIGA Application Platform Version 3 Release 4.1. Reporting User Guide IBM TRIRIGA Application Platform Version 3 Release 4.1 Reporting User Guide Note Before using this information and the product it supports, read the information in Notices on page 166. This edition applies

More information

Analytics Cloud Service Administration Guide

Analytics Cloud Service Administration Guide Analytics Cloud Service Administration Guide Version 17 November 2017 Contents About This Guide... 5 About Primavera Analytics... 5 About Primavera Data Warehouse... 6 Overview of Oracle Business Intelligence...

More information

ORACLE BUSINESS INTELLIGENCE FOUNDATION SUITE

ORACLE BUSINESS INTELLIGENCE FOUNDATION SUITE ORACLE BUSINESS INTELLIGENCE FOUNDATION SUITE Technical Overview April 12, 2013 TABLE OF CONTENTS INTRODUCTION... 5 Enabling Enterprise Business Intelligence... 5 Product Overview... 6 Server-Side Components...

More information

Advanced Cycle Counting. Release 9.0.2

Advanced Cycle Counting. Release 9.0.2 Advanced Cycle Counting Release 9.0.2 Disclaimer This document is for informational purposes only and is subject to change without notice. This document and its contents, including the viewpoints, dates

More information

MYOB Exo Distribution Advantage. User Guide

MYOB Exo Distribution Advantage. User Guide MYOB Exo Distribution Advantage User Guide 2018.3 Table of Contents On-Demand vs. Forecast Purchase Orders... 2 End-User Scenarios... 2 Viewing Statuses... 3 On-Demand Purchase Orders Setup... 3 On-Demand

More information

Oracle. SCM Cloud Using Order Promising. Release 13 (update 17D)

Oracle. SCM Cloud Using Order Promising. Release 13 (update 17D) Oracle SCM Cloud Release 13 (update 17D) Release 13 (update 17D) Part Number E89216-02 Copyright 2011-2017, Oracle and/or its affiliates. All rights reserved. Authors: Deborah West, Naveen Mudle, Nithin

More information

Global Settings. SIMMS Inventory Management Software February 1, 2012

Global Settings. SIMMS Inventory Management Software February 1, 2012 Global Settings SIMMS Inventory Management Software 2012 February 1, 2012 Contents Global Settings................... 1 General..................... 1 Item & Stock.................... 4 Purchase.....................

More information

IBM Cognos Controller Financial Analytics Publisher Version User Guide

IBM Cognos Controller Financial Analytics Publisher Version User Guide IBM Cognos Controller Financial Analytics Publisher Version 10.1.1 User Guide Note Before using this information and the product it supports, read the information in Notices on page 39. Product Information

More information

UMBC CMSC 461 Database Management Systems. Course Project

UMBC CMSC 461 Database Management Systems. Course Project UMBC CMSC 461 Spring 2018 Database Management Systems Purpose Course Project To analyze the requirements, design, implement, document and test a database application for Book Fetch, Inc. The User Requirements

More information

Performance Baseline of Hitachi Data Systems UCP for Oracle

Performance Baseline of Hitachi Data Systems UCP for Oracle Performance Baseline of Hitachi Data Systems UCP for Oracle Part IV: Benchware Performance Suite Release 8.4 (Build 130830) August 2013 Contents 1 Introduction to Tests 2 Database Configuration 3 Benchmark

More information

Inventory Control. Inventory: Getting Started. Overview. Defining inventory control information

Inventory Control. Inventory: Getting Started. Overview. Defining inventory control information 1 Inventory: Getting Started Inventory Control Overview The Inventory Control file contains information about the inventory requirements of your business. A control file contains key information about

More information

ASYST Intelligence South Africa A Decision Inc. Company

ASYST Intelligence South Africa A Decision Inc. Company Business Intelligence - SAP BusinessObjects BI Platform 4.1 SBO BI Platform 4.1: Admin and Security (2 days)... 2 SBO BI Platform 4.1: Administering Servers (3 days)... 3 SBO BI Platform 4.0: Designing

More information

SpectrumSpatialforBI: MarryingLI andbi. Luke Robinson Head of GIS Presales

SpectrumSpatialforBI: MarryingLI andbi. Luke Robinson Head of GIS Presales SpectrumSpatialforBI: MarryingLI andbi Luke Robinson Head of GIS Presales Definition ofbusiness Intelligence Business Intelligence-gain insight from various business data and on a basis of this insight

More information

MYOB EXO DISTRIBUTION ADVANTAGE

MYOB EXO DISTRIBUTION ADVANTAGE MYOB EXO DISTRIBUTION ADVANTAGE User Guide EXO BUSINESS MYOB ENTERPRISE SOLUTIONS Important Notices This material is copyright. It is intended only for MYOB Enterprise Solutions Business Partners and their

More information

Advanced Forecast version For MAX TM. Users Manual

Advanced Forecast version For MAX TM. Users Manual Advanced Forecast version 2016 For MAX TM Users Manual www.maxtoolkit.com Revised: October 25, 2016 Copyright Trademarks Warranty Limitation of Liability License Agreement Publication Date Manual copyright

More information

Reward/Referral Program

Reward/Referral Program Table of Contents Introduction... 3 Rewards vs. Referral Cards... 3 Set Up... 3 System Options... 3 Default Settings Rewards Cards... 5 Best Practices for Creating Tiers... 9 Assigning Tiers... 10 Referral

More information

July Copyright 2018 NetSuite Inc.

July Copyright 2018 NetSuite Inc. 1 NetSuite SuiteAnalytics User Sample Test July 2018 2 Contents About this Sample Test... 3 Reports and Searches... 4 I. Given a use case, identify the best way to aggregate data results.... 4 II. Identify

More information