Upload
gloria-sheppard
View
221
Download
4
Tags:
Embed Size (px)
Citation preview
1
nVision Performance TuningDavid KurtzGo-Faster Consultancy Ltd.
www.go-faster.co.uk
2
nVision
• Performance Options
• Match Indexes to Analysis Criteria
• Oracle: choice of optimiser
3
PS/nVision
• ledger analysis - special processing
• drill down – unroll roll-up reporting
• analysis by attribute– attribute held in a tree
• TREESELECTnn
• generate matrix
4
nVision ->options
• Show Report SQL– See each SQL before it
is executed
• SQL Trace• Oracle Trace• 3-tier PSQRYSRV
– from PT 7.54, 7.05
5
Show Report SQL
• Window appears just before the SQL that is contains is executed.
6
SQL Statement
SELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT)FROM PS_LEDGER A, PSTREESELECT06 L, PSTREESELECT06 L1WHERE A.LEDGER='ACTUALS'AND A.FISCAL_YEAR=1995AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12AND A.BUSINESS_UNIT='M04'AND L.SELECTOR_NUM=214AND A.ACCOUNT>= L.RANGE_FROM_06AND A.ACCOUNT <= L.RANGE_TO_06AND ( L.TREE_NODE_NUM BETWEEN 1156779659 AND 1158898302 OR L.TREE_NODE_NUM BETWEEN 1224576269 AND 1288135590)AND L1.SELECTOR_NUM=216AND A.PRODUCT=L1.RANGE_FROM_06AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000AND A.DEPTID IN ('21200', '21300', '21401', '31000')AND A.CURRENCY_CD=’USD'AND A.STATISTICS_CODE=' 'GROUP BY L1.TREE_NODE_NUM, A.DEPTID
7
Which trees
SELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT)FROM PS_LEDGER A, PSTREESELECT06 L, PSTREESELECT06 L1WHERE A.LEDGER='ACTUALS'AND A.FISCAL_YEAR=1995AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12AND A.BUSINESS_UNIT='M04'AND L.SELECTOR_NUM=214AND A.ACCOUNT>= L.RANGE_FROM_06AND A.ACCOUNT <= L.RANGE_TO_06AND ( L.TREE_NODE_NUM BETWEEN 1156779659 AND 1158898302 OR L.TREE_NODE_NUM BETWEEN 1224576269 AND 1288135590)AND L1.SELECTOR_NUM=216AND A.PRODUCT=L1.RANGE_FROM_06AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000AND A.DEPTID IN ('21200', '21300', '21401', '31000')AND A.CURRENCY_CD=’USD'AND A.STATISTICS_CODE=' 'GROUP BY L1.TREE_NODE_NUM, A.DEPTID
8
Which trees
• Use selector numbers from query to identify trees
select * from pstreeselctl where selector_num in(214,216)
SETID TREE_NAME EFFDT VERSION SELECTOR_NUM SELECTOR_ T LENGTH----- ------------------ --------- ---------- ------------ --------- - ----------MFG MFG_PRODUCTS 01-JAN-00 44787 216 03-AUG-99 R 6MFG ACCTROLLUP 01-JAN-00 45057 214 02-AUG-99 R 6
9
Without performance options
10
PS_LED G ER
PSTR EESELEC Tnn L1
PSTR EESELEC Tnn LL ite ra lV a lues
With performance options
11
Security for performance options
12
nVision Performance Options
13
Resultant SQL
SELECT L1.TREE_NODE_NUM, A.DEPTID, SUM(A.POSTED_TOTAL_AMT)FROM PS_LEDGER A, PSTREESELECT06 L1WHERE A.LEDGER='ACTUALS'AND A.FISCAL_YEAR=1995AND A.ACCOUNTING_PERIOD BETWEEN 1 AND 12AND A.BUSINESS_UNIT='M04'AND ( A.ACCOUNT='400000' OR A.ACCOUNT BETWEEN '401000' AND '403000' OR A.ACCOUNT='410000' OR A.ACCOUNT='420000' OR A.ACCOUNT='499999')AND L1.SELECTOR_NUM=216AND A.PRODUCT=L1.RANGE_FROM_06AND L1.TREE_NODE_NUM BETWEEN 658854164 AND 2000000000AND A.DEPTID IN ('21200', '21300', '21401', '31000')AND A.CURRENCY_CD='USD'AND A.STATISTICS_CODE=' 'GROUP BY L1.TREE_NODE_NUM, A.DEPTID
14
Appropriate Index
LEDGER single valueFISCAL_YEAR single valueACCOUNTING_PERIOD range of valuesBUSINESS_UNIT one valueACCOUNT some values/rangesPRODUCT equi-joined to L1DEPTID some valuesCURRENCY_CD one valueSTATISTICS_CODE one value
grouped by L1.TREE_NODE_NUM, DEPTID
15
Appropriate Index
FISCAL_YEAR single valueDEPTID some valuesLEDGER single valueBUSINESS_UNIT single valuePRODUCT equi-joined to L1ACCOUNT some values/rangesCURRENCY_CD single valueSTATISTICS_CODE single valueACCOUNTING_PERIOD range of values
grouped by L1.TREE_NODE_NUM, DEPTID
16
Oracle Optimiser Mode
• Queries are flat - no correlated sub-queries
• Rule based optimiser follows the links
• Cost based optimiser, sometimes doesn’t
• GL nVision queries perform well under Cost Base Optimiser
PS _LED G ER
PS T R E ES ELEC Tnn L1
PS T R E ES ELEC Tnn L
17
If using Oracle Rule Based Optimiser
• Rename PSTREESELECTnn to PSTREESELECTnn_TBL
CREATE VIEW PSTREESELECTnnAS SELECT /*+ALL_ROWS*/ * FROM PSTREESELECTnn_TBL
18
If using Oracle 8.x
• The Cost Based Optimiser in invoked by– Parallelism– Partitioning
19
Non-Ledger queries
• Query is defined in PS/Query
20
nVision
• Performance Options
• Match Indexes to Analysis Criteria
• Oracle: choice of optimiser
• non-GL queries are different
21
nVision Performance TuningDavid KurtzGo-Faster Consultancy Ltd.
www.go-faster.co.uk