SQL> exec sample_font

Size: px
Start display at page:

Download "SQL> exec sample_font"

Transcription

1 NOTE itty bitty fonts in this presentation SQL> exec sample_font Can you read this? 1

2 2

3 Connor McDonald OracleDBA co.uk 3

4 4

5 5 about me

6 same old crap about years of experience flog the book hook up a consulting gig awards 6

7 this is NOT a best practice talk 7

8 best practice 8

9 best practice 9

10 practice, practice, practice

11 11 what we're doing

12 why SQL favourites Analytics Model clause 12

13 why talk about SQL (part 1) 13

14 14 true story

15 15 SOA project

16 C#, C++ OSB Weblogic Tuxedo 16

17 17

18 18

19 19 huh?

20 DEPT EMP deptadapter = new OracleDataAdapter(); deptadapter.selectcommand = new OracleCommand( "SELECT * FROM DEPT",conn); deptdataset = new DataSet("deptDataSet"); deptadapter.fill( deptdataset, "dept"); empadapter = new OracleDataAdapter(); empadapter.selectcommand = new OracleCommand( "SELECT * FROM EMP",conn); empdataset = new DataSet("empDataSet"); empadapter.fill( empdataset, "emp"); 20

21 21 SQL> select... 2 from DEPT d, 3 EMP e 4 where d.deptno = e.deptno

22 22 "wow"

23 23 SQL is getting simpler

24 Code 1985 Value SQL 24 m/f c/s web soa

25 Code Value SQL 25 m/f c/s web soa

26 26

27 27

28 "Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks." 28

29 29

30 30

31

32 why talk about SQL (part 2) 32

33 we suck at relational......technically 33

34 34 not our fault

35 35 Codd & Date

36 36 "data is represented as mathematical n-ary relations, an n-ary relation being a subset of the Cartesian product of n domains."

37 37 huh?

38 we excel at relational......in the real world 38

39 39 shopping

40 40 in the real world

41 efficient drive to shop; pick up items; pay for items; drive home; maybe fill up with petrol; maybe pick up a newspaper; value add 41

42 42 in the technical world

43 Shopping v1.0 subroutine PURCHASE_ITEM(item_id) - drive to shop - obtain item - pay for item - drive home Shopping v2.0 for each_item in LIST_OF_ITEMS do purchase_item; end loop; ORA-20000: No petrol found at supermarket 43 Shopping v2.1

44 business analysts... procedural analysis 44

45 technical analysts... procedural specifications 45

46 programmers procedural programs 46

47 why talk about SQL (part 3) 47

48 48

49 49

50 50 Warning: gratuitous book plug!!!

51 why talk about SQL (part 4) 51

52 3GL's suck... for database 52

53 53 too much code, too hard

54 ocmd = New OracleCommand("SELECT productname AS ""Product Name"", description AS ""Description""" & _ ", category AS ""Category"", price AS ""Price"" FROM producttab", conn) ocmd.commandtype = CommandType.Text oreader = ocmd.executereader() C# Dim dt As DataTable = New DataTable("producttab") Dim dcolumn As DataColumn Dim i As Integer Dim count As Integer Dim colname As String Dim coltype As System.Type sbox.appendtext("current FetchSize value is " + oreader.fetchsize.tostring() + " bytes " + Environment.NewLine) sbox.update() 'Get the number of columns in this OracleDataReader count = oreader.fieldcount sbox.appendtext("fetching data with given FetchSize.." + Environment.NewLine) sbox.update() 'Add the columns in the DataTable For i = 0 To count - 1 colname = oreader.getname(i) coltype = oreader.getfieldtype(i) dcolumn = New DataColumn(colname, coltype) dt.columns.add(dcolumn) Next 'Make the first column the primary key column. Dim PrimaryKeyColumns(0) As DataColumn PrimaryKeyColumns(0) = dt.columns("productname") dt.primarykey = PrimaryKeyColumns 'Populate the table While oreader.read() Dim drow As DataRow = dt.newrow() drow(oreader.getname(0)) = oreader.getstring(0) drow(oreader.getname(1)) = oreader.getstring(1) drow(oreader.getname(2)) = oreader.getstring(2) drow(oreader.getname(3)) = oreader.getdecimal(3) dt.rows.add(drow) End While 54

55 import java.sql.* import java.math.* import java.io.* import java.awt.* class JdbcTest { public static void main (String args []) throws SQLException { // Load Oracle driver DriverManager.registerDriver (new oracle.jdbc.oracledriver()); Java // Connect to the local database Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@myhost:1521:orcl", "hr", "password"); // Query the employee names Statement stmt = conn.createstatement (); ResultSet rset = stmt.executequery ("SELECT last_name FROM employees"); // Print the name out while (rset.next ()) System.out.println (rset.getstring (1)); // Close the result set, statement, and the connection rset.close(); stmt.close(); conn.close(); } } 55

56 56 PLSQL the only exception

57 PLSQL Users Guide and Reference line 1 57

58 58 "PL/SQL, Oracle's procedural extension of SQL"

59 59 its all about the SQL

60 60 part 2 my favourites

61 61 subquery factoring

62 62 WITH clause

63 SQL> WITH last_hire AS 2 ( select deptno, max(hiredate) 3 from emp 4 group by deptno 5 ) 6 select * from last_hire; DEPTNO MAX(HIRED DEC JAN JAN-82 63

64 64 "gee...wow"

65 65 why is it cool?

66 66 good solution metaphor

67 "First, get the total salary paid by department... SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 67

68 "...then get the average of these totals... 6 avg_sal AS ( SELECT AVG(dept_sal) avsal 7 FROM dept_salaries) 68

69 "...then list those departments above average." 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.avsal 10 ORDER BY d.dname; 69

70 SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) avsal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.avsal 10 ORDER BY d.dname; 70

71 71 procedural approach...

72 72...relational solution

73 73 things to note...

74 74 execution plan

75 75 two possibilities

76 76 temporary storage

77 Id Operation Name SELECT STATEMENT 1 TEMP TABLE TRANSFORMATION 2 LOAD AS SELECT 3 HASH GROUP BY 4 MERGE JOIN 5 TABLE ACCESS BY INDEX ROWID DEPT 6 INDEX FULL SCAN PK_DEPT 7 SORT JOIN 8 TABLE ACCESS FULL EMP 9 SORT ORDER BY 10 NESTED LOOPS 11 VIEW 12 SORT AGGREGATE 13 VIEW 14 TABLE ACCESS FULL SYS_TEMP_0FD9D6624_AF422F5 15 VIEW 16 TABLE ACCESS FULL SYS_TEMP_0FD9D6624_AF422F

78 SQL> alter session set sql_trace = true; Session altered. SQL> WITH dept_salaries AS ( 2 SELECT dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname; DNAME DEPT_SAL ASAL RESEARCH SQL> alter session set sql_trace = false; Session altered. 78

79 PARSING IN CURSOR #12 len=179 dep=1 uid=0 oct=1... CREATE GLOBAL TEMPORARY TABLE "SYS"."SYS_TEMP_0FD9D6625_AF422F5" ("C0" VARCHAR2(14),"C1" NUMBER ) IN_MEMORY_METADATA CURSOR_SPECIFIC_SEGMENT STORAGE (OBJNO ) NOPARALLEL END OF STMT 79

80 80 no temporary storage

81 Id Operation Name SELECT STATEMENT 1 SORT ORDER BY 2 NESTED LOOPS 3 VIEW 4 SORT AGGREGATE 5 VIEW 6 HASH GROUP BY 7 MERGE JOIN 8 TABLE ACCESS BY INDEX ROWID DEPT 9 INDEX FULL SCAN PK_DEPT 10 SORT JOIN 11 TABLE ACCESS FULL EMP 12 VIEW 13 SORT GROUP BY 14 MERGE JOIN 15 TABLE ACCESS BY INDEX ROWID DEPT 16 INDEX FULL SCAN PK_DEPT 17 SORT JOIN 18 TABLE ACCESS FULL EMP

82 82 explicit control

83 83 SQL> WITH dept_salaries AS ( 2 SELECT /*+ INLINE */ dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname;

84 84 SQL> WITH dept_salaries AS ( 2 SELECT /*+ MATERIALIZE*/ dname, SUM(sal) dept_sal 3 FROM emp e, dept d 4 WHERE e.deptno = d.deptno 5 GROUP BY dname), 6 avg_sal AS ( SELECT AVG(dept_sal) asal 7 FROM dept_salaries) 8 SELECT * FROM dept_salaries d, avg_sal a 9 WHERE d.dept_sal > a.asal 10 ORDER BY d.dname;

85 85 undocumented... sort of

86 86 useful control over optimizer

87 87 useful control over database links

88 take care within a view metalink bug

89 89 take care in read-only standby

90

91 91

92 92 more on that shortly...

93 93 favourite ( prep work )

94 94 hierarchy queries

95 SQL> select empno, ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS FORD BLAKE WARD MARTIN TURNER JAMES CLARK MILLER

96 SQL> select empno, rpad(' ',level*3) ename ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS FORD BLAKE WARD MARTIN TURNER JAMES CLARK MILLER

97 97

98 98 much much more...

99 99 "its too slow"

100 SQL> create table EMP_DUPS 2 as select * 3 from 4 ( select level seq 5 from DUAL 6 connect by level <= 10 ), 7 EMP 8 / Table created. 100

101 SQL> create table EMP_DUPS 2 as select * 3 from 4 ( select level seq 5 from DUAL 6 connect by level <= 10 ), 7 EMP 8 / Table created. 101

102 SQL> select level seq 2 from DUAL 3 connect by level <= 10 4 / SEQ

103 103 any number of rows

104 SQL> select level seq 2 from DUAL 3 connect by level <= 10; Id Operation Name Rows SELECT STATEMENT 1 * 1 CONNECT BY WITHOUT FILTERING 2 FAST DUAL Statistics recursive calls 0 db block gets 0 consistent gets 0 physical reads 104

105 105 "free"

106 106 take care with extremes

107 SQL> select level seq 2 from DUAL 3 connect by level <= ; ERROR at line 1: ORA-04030: out of process memory when... SQL> select name, value 2 from v$statname n, 3 v$sesstat s 4 where n.statistic# = s.statistic# 5 and n.name in ('session uga memory', 6 'session pga memory') 7 and s.sid = 130; NAME VALUE session uga memory session pga memory

108 select rownum from ( select level from dual connect by level <= ), ( select level from dual connect by level <= ), ( select level from dual connect by level <= ) Acknowledgement: Tanel Poder 108

109 SQL> select count(*) from EMP; COUNT(*) SQL> select count(*) from EMP_DUPS; COUNT(*)

110 110 SQL> select seq, empno, ename, mgr 2 from emp_dups; SEQ EMPNO ENAME MGR KING JONES SCOTT KING JONES SCOTT KING JONES SCOTT rows selected.

111 SQL> select 2 empno, rpad(' ',level*3) ename ename, mgr 3 from emp_dups 4 where seq = 1 5 connect by prior empno = mgr 6 start with mgr is null; EMPNO ENAME MGR KING 7566 JONES SCOTT ADAMS ADAMS ADAMS ADAMS 7788 [snip] 2831 rows selected. 111

112 112 SQL> select DISTINCT 2 empno, rpad(' ',level*3) ename ename, mgr 3 from emp_dups 4 where seq = 1 5 connect by prior empno = mgr 6 start with mgr is null; EMPNO ENAME MGR KING 7788 SCOTT BLAKE WARD CLARK ADAMS TURNER JONES MARTIN MILLER

113 SQL> select empno, rpad(' ',level*3) ename ename, mgr 2 from emp_dups 3 where hire_date seq = 1 > '01-JAN-2009' 4 connect by prior empno = mgr 5 and prior seq = seq 6 start with mgr is null 7 and seq = 1; 113

114 114 "its too slow"

115 115 lots more...

116 SQL> select SYS_CONNECT_BY_PATH(ename,'-') full_tree 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr FULL_TREE KING -KING-BLAKE -KING-BLAKE-JAMES -KING-BLAKE-ALLEN -KING-BLAKE-WARD -KING-CLARK -KING-CLARK-MILLER

117 SQL> select rpad(' ',level) sys_connect_by_path(ename,'-'), 2 empno, dname 3 from emp e, dept d 4 where d.deptno = e.deptno 5 start with mgr is null 6 connect by prior empno = mgr FULL_TREE EMPNO DNAME KING 7839 ACCOUNTING -KING-BLAKE 7698 SALES -KING-BLAKE-JAMES 7499 SALES -KING-BLAKE-ALLEN 7900 SALES -KING-BLAKE-WARD 7521 SALES -KING-CLARK 7782 ACCOUNTING -KING-CLARK-MILLER 7934 ACCOUNTING

118 SQL> select rpad(' ',level) sys_connect_by_path(ename,'-'), 2 empno, dname 3 from emp e, dept d 4 where d.deptno = e.deptno 5 start with mgr is null 6 connect by prior empno = mgr 7 ORDER SIBLINGS BY ENAME FULL_TREE EMPNO DNAME KING 7839 ACCOUNTING -KING-BLAKE 7698 SALES -KING-BLAKE-ALLEN 7499 SALES -KING-BLAKE-JAMES 7900 SALES -KING-BLAKE-WARD 7521 SALES -KING-CLARK 7782 ACCOUNTING -KING-CLARK-MILLER 7934 ACCOUNTING

119 119 "fine for EMP, my data is crap"

120 120

121 SQL> update emp set mgr = where ename = 'KING'; 1 row updated. SQL> select sys_connect_by_path(ename,'-') 2 from emp 3 start with ename = 'KING' 4 connect by prior empno = mgr 5 / ERROR: ORA-01436: CONNECT BY loop in user data 121

122 SQL> select sys_connect_by_path(ename,'-') 2 from emp 3 start with ename = 'KING' 4 connect by NOCYCLE prior empno = mgr 5 / SYS_CONNECT_BY_PATH(ENAME,'-') KING -KING-JONES -KING-JONES-SCOTT -KING-JONES-SCOTT-ADAMS -KING-JONES-FORD -KING-JONES-FORD-SMITH -KING-BLAKE

123 123 and still more...

124 SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1000,'DENNIS',null, 10); 1 row created. SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1001,'CHRIS',1000, 10); 1 row created. SQL> insert into emp ( empno, ename, mgr, deptno) 2 values (1002,'CRAIG',1001, 10); 1 row created. 124

125 SQL> select sys_connect_by_path(ename,'-') full_tree 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr FULL_TREE KING -KING-BLAKE -KING-BLAKE-JAMES -KING-BLAKE-ALLEN -KING-BLAKE-WARD -KING-CLARK -KING-CLARK-MILLER -DENNIS -DENNIS-CHRIS -DENNIS-CHRIS-CRAIG am I a manager? who is my ultimate boss? 125

126 Who is top dog in my tree? SQL> select 2 connect_by_root ename, Am I a leaf node? 3 connect_by_isleaf, 4 connect_by_iscycle 5 from emp 6 start with mgr is null 7 connect by NOCYCLE prior empno = mgr 8 / Am I within a cycle? 126

127 SQL> select connect_by_root ename root, 2 connect_by_isleaf leaf, 3 connect_by_iscycle cyc, 4 sys_connect_by_path(ename,'-') full 5 from emp 6 start with ename in ('KING','DENNIS') 7 connect by NOCYCLE prior empno = mgr; ROOT LEAF CYC FULL KING 0 0 -KING KING 0 0 -KING-JONES KING 0 0 -KING-JONES-SCOTT KING 1 0 -KING-JONES-SCOTT-ADAMS KING 0 0 -KING-JONES-FORD KING 1 0 -KING-JONES-FORD-SMITH KING 0 0 -KING-BLAKE KING 1 1 -KING-BLAKE-ALLEN KING 1 0 -KING-BLAKE-WARD KING 1 0 -KING-BLAKE-MARTIN KING 1 0 -KING-BLAKE-TURNER KING 1 0 -KING-BLAKE-JAMES DENNIS 0 0 -DENNIS DENNIS 0 0 -DENNIS-CHRIS DENNIS 1 0 -DENNIS-CHRIS-CRAIG 127

128 128 "old style" hierarchy still cool...

129 has a new way...

130 130 first principles

131 SQL> select rpad(' ',level) ename, 2 from emp 3 start with mgr is null 4 connect by prior empno = mgr ENAME KING BLAKE JAMES ALLEN WARD CLARK MILLER 131

132 SQL> select empno, ename, mgr 2 from emp 3 where mgr is null; EMPNO ENAME MGR KING 132

133 SQL> select e2.empno, e2.ename, e2.mgr 2 from emp e2, 3 ( select empno, mgr 4 from emp 5 where mgr is null ) inner 6 where e2.mgr = inner.empno; EMPNO ENAME MGR JONES BLAKE CLARK

134 SQL> select e3.empno, e3.ename, e3.mgr 2 from emp e3, 3 ( select e2.empno, e2.ename, e2.mgr 4 from emp e2, 5 ( select empno, mgr 6 from emp 7 where mgr is null ) inner 8 where e2.mgr = inner.empno ) inner 9 where e3.mgr = inner.empno; EMPNO ENAME MGR FORD SCOTT JAMES TURNER MARTIN WARD MILLER

135 SQL> select e4.empno, e4.ename, e4.mgr 2 from emp e4, 3 ( select e3.empno, e3.ename, e3.mgr 4 from emp e3, 5 ( select e2.empno, e2.ename, e2.mgr 6 from emp e2, 7 ( select empno, mgr 8 from emp 9 where mgr is null ) inner 10 where e2.mgr = inner.empno ) inner 11 where e3.mgr = inner.empno ) inner 12 where e4.mgr = inner.empno; EMPNO ENAME MGR ADAMS recursive...

136 136

137 137 WITH can be recursive

138 138 SQL> with EACH_LEVEL (empno, name, mgr) as 2 ( start with select empno, ename, mgr 6 from emp 7 where mgr is null connect by union all 12 select emp.empno, emp.ename, emp.mgr 13 from emp, EACH_LEVEL 14 where emp.mgr = each_level.empno 15 ) 16 select * 17 from each_level;

139 EMPNO NAME MGR KING 7566 JONES BLAKE CLARK ALLEN WARD MARTIN SCOTT TURNER JAMES FORD MILLER SMITH ADAMS

140 140 two part structure

141 with RECURSIVE_WITH (c1,c2,c3) as ( <starting/entry point> union all <recursive relationship> ) select... from RECURSIVE_WITH 141

142 142 you control pseudo- functions

143 SQL> with each_level (empno, name, mgr, rlevel) as 2 ( select empno, ename, mgr, 1 rlevel 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, rlevel+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select * from each_level; EMPNO NAME MGR RLEVEL KING JONES BLAKE CLARK ALLEN <etc> 143

144 SQL> with each_level (empno, name, mgr, level) as 2 ( select empno, ename, mgr, 1 level 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, level+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select empno, name, mgr, level from each_level; with each_level (empno, name, mgr, level) as * ERROR at line 1: ORA-00904: : invalid identifier 144

145 145 SQL> with each_level (empno, name, mgr, rlevel) as 2 ( select empno, ename, mgr, 1 rlevel 3 from emp 4 where mgr is null 5 union all 6 select emp.empno, emp.ename, emp.mgr, rlevel+1 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select empno, name, mgr, rlevel as "LEVEL" 11 from each_level;

146 SQL> with each_level (empno, name, mgr, padding) as 2 ( select empno, ename, mgr, '' padding 3 from emp 4 where mgr is null 5 union all 6 select e.empno, e.ename, e.mgr, padding ' ' 7 from emp e, each_level 8 where e.mgr = each_level.empno 9 ) 10 select empno, padding name name 11 from each_level; ERROR: ORA-01489: result of string concatenation is too long 146

147 SQL> with each_level (empno, name, mgr, padding) as 2 ( select empno, ename, mgr, 3 cast('' as varchar2(100)) padding 4 from emp 5 where mgr is null 6 union all 7 select e.empno, e.ename, e.mgr, padding ' ' 8 from emp e, each_level 9 where e.mgr = each_level.empno 10 ) 11 select empno, padding name name 12 from each_level; EMPNO NAME KING 7566 JONES

148 148 SQL> with each_level (empno, name) as 2 ( select empno, ename from emp 3 where mgr is null 4 union all 5 select e.empno, 6 each_level.name '-' e.ename 7 from emp e, each_level 8 where e.mgr = each_level.empno 9 ) 10 select empno, name from each_level; EMPNO NAME KING 7566 KING-JONES 7698 KING-BLAKE 7782 KING-CLARK 7499 KING-BLAKE-ALLEN 7521 KING-BLAKE-WARD <etc>

149 149 cycle detection as before...

150 SQL> update emp set mgr = where ename = 'KING'; 1 row updated. SQL> select empno, rpad(' ',level) ename ename, mgr 2 from emp 3 connect by prior empno = mgr 4 start with ename = 'KING'; ERROR: ORA-01436: CONNECT BY loop in user data 150

151 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr 3 from emp 4 where ename = 'KING' 5 union all 6 select emp.empno, emp.ename, emp.mgr 7 from emp, each_level 8 where emp.mgr = each_level.empno 9 ) 10 select * 11 from each_level; ERROR: ORA-32044: cycle detected while executing recursive WITH query 151

152 152...but the results are different

153 SQL> select empno, ename, mgr, 2 connect_by_iscycle 3 from emp 4 connect by NOCYCLE prior empno = mgr 5 start with ename = 'KING'; EMPNO ENAME MGR CONNECT_BY_ISCYCLE KING JONES BLAKE ALLEN WARD MARTIN [snip] 14 rows selected. 153

154 154 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr from emp 3 where ename = 'KING' 4 union all 5 select emp.empno, emp.ename, emp.mgr 6 from emp, each_level 7 where emp.mgr = each_level.empno ) 8 CYCLE mgr SET is_cycle TO 'Y' DEFAULT 'N' 9 select * from each_level; EMPNO NAME MGR IS_CYCLE KING 7499 N 7566 JONES 7839 N 7521 WARD 7698 N 7839 KING 7499 Y 7876 ADAMS 7788 N [snip] 15 rows selected.

155 SQL> with each_level (empno, name, mgr) as 2 ( select empno, ename, mgr from emp 3 where ename = 'KING' 4 union all 5 select emp.empno, emp.ename, emp.mgr 6 from emp, each_level 7 where emp.mgr = each_level.empno 8 ) 9 CYCLE mgr SET is_cycle TO 'YES' DEFAULT 'NO' 10 select * from each_level; * ERROR at line 9: ORA-32047: cycle mark value and non-cycle mark value must be one byte character string values 155

156 156 some nice touches...

157 SQL> with each_level (empno, name, hiredate, mgr) as 2 ( select empno, ename, hiredate, mgr from emp 3 where ename = 'KING' 4 union all 5 select e.empno, 6 each_level.name '-' e.ename, e.hiredate, e.mgr 7 from emp e, each_level 8 where e.mgr = each_level.empno ) 9 SEARCH BREADTH FIRST BY HIREDATE SET IDX 10 select name, hiredate, idx from each_level; NAME HIREDATE IDX KING 17-NOV-81 1 KING-JONES 02-APR-81 2 KING-BLAKE 01-MAY-81 3 KING-CLARK 09-JUN-81 4 KING-BLAKE-ALLEN 20-FEB-81 5 KING-BLAKE-WARD 22-FEB-81 6 [snip] KING-JONES-FORD-SMITH 17-DEC KING-JONES-SCOTT-ADAMS 23-MAY

158 SQL> with each_level (empno, name, hiredate, mgr) as 2 ( select empno, ename, hiredate, mgr from emp 3 where ename = 'KING' 4 union all 5 select e.empno, 6 each_level.name '-' e.ename, e.hiredate, e.mgr 7 from emp e, each_level 8 where e.mgr = each_level.empno ) 9 SEARCH DEPTH FIRST BY HIREDATE SET IDX 10 select name, hiredate, idx from each_level; NAME HIREDATE IDX KING 17-NOV-81 1 KING-JONES 02-APR-81 2 KING-JONES-FORD 03-DEC-81 3 KING-JONES-FORD-SMITH 17-DEC-80 4 KING-JONES-SCOTT 19-APR-87 5 KING-JONES-SCOTT-ADAMS 23-MAY-87 6 KING-BLAKE 01-MAY-81 7 KING-BLAKE-ALLEN 20-FEB-81 8 etc 158

159 159 performance

160 1,2,3,4,5,6,7,8,9 11,12,13,14,15,16,17,18,19 21,22,23,24,25,26,27,28,29 111,112,113,114,115,116,117,118,119 etc... 5,380,839 rows 160

161 161 need a big hierarchy

162 SQL> create table BIG_HIER nologging as 2 with hier(x,y, lev) as 3 ( select rownum x,null y,1 lev 4 from dual connect by level < 10 5 union all 6 select 10*x+p, x, lev+1 7 from hier, 8 ( select level p from dual 9 connect by level < 10 ) 10 where lev < 7 11 ) 12 select * from hier; Table created. 162

163 SQL> begin 2 dbms_stats.gather_table_stats(user,'big_hier'); 3 end; PL/SQL procedure successfully completed. SQL> create index IX1 on BIG_HIER ( x ); Index created. SQL> create index IX2 on BIG_HIER ( y ); Index created. 163

164 SQL> select * 2 from big_hier 3 start with y is null 4 connect by prior x = y; Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 CONNECT BY WITH FILTERING 2 TABLE ACCESS FULL BIG_HIER (1) 3 NESTED LOOPS (1) 4 CONNECT BY PUMP 5 TABLE ACCESS BY INDEX ROWID BIG_HIER 9 3 (0) 6 INDEX RANGE SCAN IX2 9 2 (0)

165 SQL> with bench(x,y,lev) as 2 ( select x,y, lev from big_hier 3 where y is null 4 union all 5 select h.x,h.y,h.lev 6 from big_hier h, bench b 7 where h.y = b.x ) 8 select * from bench; Id Operation Name Rows Cost (%CPU) SELECT STATEMENT (1) 1 VIEW (1) 2 UNION ALL (RECURSIVE WITH) BREADTH FIRST 3 TABLE ACCESS FULL BIG_HIER (1) 4 NESTED LOOPS 5 NESTED LOOPS (1) 6 RECURSIVE WITH PUMP 7 INDEX RANGE SCAN IX2 9 2 (0) 8 TABLE ACCESS BY INDEX ROWID BIG_HIER 9 3 (0)

166 SQL> select * 2 from big_hier 3 start with y is null 4 connect by prior x = y; rows selected. Elapsed: 00:04:46.12 Statistics recursive calls db block gets consistent gets physical reads 7 sorts (memory) 2 sorts (disk) 166

167 SQL> with bench(x,y,lev) as 2 ( select x,y, lev from big_hier 3 where y is null 4 union all 5 select h.x,h.y,h.lev 6 from big_hier h, bench b 7 where h.y = b.x ) 8 select * from bench; rows selected. Elapsed: 00:04: Statistics recursive calls db block gets consistent gets physical reads 7 sorts (memory) 1 sorts (disk)

168 get used to it... ANSI 168

169 169 favourite: query blocks

170 C#, C++ OSB Tuxedo Weblogic PL/SQL 170

171 for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { maxdivisor = Math.Max(maxDivisor, WinningCombinations[i].Divisor); } } for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { WinningCombinations[i].Divisor = maxdivisor / WinningCombinations[i].Divisor; sumnewdivisors += WinningCombinations[i].Divisor; } } 171

172 172 no comments

173 173

174 174 "C# is self-documenting"

175 for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { maxdivisor = Math.Max(maxDivisor, WinningCombinations[i].Divisor); } } for (int i = 0; i < WinningCombinations.Count; ++i) { if (WinningCombinations[i].Investment > 0 && WinningCombinations[i].PrimaryDividend > MinDividendDeadHeat) { WinningCombinations[i].Divisor = maxdivisor / WinningCombinations[i].Divisor; sumnewdivisors += WinningCombinations[i].Divisor; } } 175

176 for (int i = 0; i < w.count; ++i) { if (w[i].v > 0 && w[i].p > mddh) { m = Math.Max(m, w[i].d); } } for (int i = 0; i < w.count; ++i) { if (w[i].v > 0 && w[i].p > mddh) { w[i].d = m / w[i].d; s += w[i].d; } } 176

177 query blocks = self- documenting SQL 177

178 select emp.* from emp, ( select trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 178

179 179 Id Operation Name SELECT STATEMENT 1 HASH JOIN 2 TABLE ACCESS BY INDEX ROWID EMP 3 NESTED LOOPS 4 VIEW 5 SORT GROUP BY 6 TABLE ACCESS BY INDEX ROWID EMP 7 INDEX FULL SCAN E2 8 INDEX RANGE SCAN E1 9 VIEW 10 SORT GROUP BY 11 TABLE ACCESS BY INDEX ROWID EMP 12 INDEX RANGE SCAN E2

180 select emp.* from emp, ( select /*+ QB_NAME(YR_HIRE) */ trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select /*+ QB_NAME(AV_SAL) */ deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 180

181 Id Operation Name Query Block SELECT STATEMENT 1 HASH JOIN SEL$1 2 TABLE ACCESS BY INDEX ROWID EMP SEL$1 3 NESTED LOOPS 4 VIEW AV_SAL 5 SORT GROUP BY AV_SAL 6 TABLE ACCESS BY INDEX ROWID EMP AV_SAL 7 INDEX FULL SCAN E2 AV_SAL 8 INDEX RANGE SCAN E1 SEL$1 9 VIEW YR_HIRE 10 SORT GROUP BY YR_HIRE 11 TABLE ACCESS BY INDEX ROWID EMP YR_HIRE 12 INDEX RANGE SCAN E2 YR_HIRE 181

182 182 assist with query trace

183 SQL> alter session set 2 events = '10053 trace name context forever, level 1'; Session altered. 183

184 ************************** Query transformations (QT) ************************** CBQT: Validity checks passed for 7jpzpr2475cqw. CSE: Sub-expression elimination in query block SEL$1 (#0) ************************* Common Subexpression elimination (CSE) ************************* CSE: CSE not performed on query block YR_HIRE (#0). CSE: Sub-expression elimination in query block AV_SAL (#0) CSE: CSE not performed on query block AV_SAL (#0). CSE: CSE not performed on query block SEL$1 (#0). *************************** Order-by elimination (OBYE) *************************** OBYE: Considering Order-by Elimination from view SEL$1 (#0) 184

185 ********************************* Number of join permutations tried: 1 ********************************* GROUP BY adjustment factor: GROUP BY cardinality: , TABLE cardinality: SORT ressource Sort statistics Sort width: 598 Area size: Max Area: Degree: 1 Blocks to Sort: 1 Row size: 18 Total Rows: 14 Initial runs: 1 Merge passes: 0 IO Cost / pass: 0 Total IO sort cost: 0 Total CPU sort cost: Total Temp space used: 0 Trying or-expansion on query block AV_SAL (#3) Transfer Optimizer annotations for query block AV_SAL (#3) GROUP BY adjustment factor: Final cost for query block AV_SAL (#3) - All Rows Plan: Best join order: 1 Cost: Degree: 1 Card: Bytes: 98 Resc: Resc_io: Resc_cpu: Resp: Resp_io: Resc_cpu:

186 186 assist with hints

187 select /*+ QB_NAME(top) emp (empno)) emp) */ emp.* from emp, ( select /*+ QB_NAME(YR_HIRE) */ trunc(hiredate,'yyyy'), max(empno) empno from emp where empno > 0 group by trunc(hiredate,'yyyy') ) x, ( select /*+ QB_NAME(AV_SAL) */ deptno, avg(sal) from emp group by deptno ) y where x.empno = emp.empno and y.deptno = emp.deptno 187

188 select /*+ QB_NAME(top) emp (empno)) emp) */ INDEX(emp emp_ix) 188

189 189 favourite: scalar queries

190 SQL> select 2 ( select dname 3 from dept 4 where deptno = e.deptno ) dname, 5 decode(empno, 7499, 6 ( select max(sal) from emp ), 7-1) 8 from 9 ( select * from emp 10 where sal > 0 ) e 11 where scalar anywhere an expression could be 12 ( select max(hiredate) from emp ) < sysdate 13 / 190

191 191 "big deal"

192 SQL> create or replace 2 function DEMO(p int) return number is 3 begin 4 dbms_lock.sleep(1); 5 return p; 6 end; 7 / Function created. 1,2,3,..., 30 SQL> create table T 2 as select rownum r, mod(rownum,5) r1 from dual 3 connect by level <= 30; Table created. 0,1,2,3,4,0,1,2,3,4,

193 SQL> select r, demo(r1) from T; R DEMO(R1) rows selected. Elapsed: 00:00:

194 SQL> select r, 2 ( select demo(r1) from dual) as res 3 from T; R RES rows selected. Elapsed: 00:00:

195 subquery caching... any subquery 195

196 196 what about multiple values

197 197 SQL> select 2 empno, 3 ( select dname, loc, revenue 4 from dept 5 where deptno = e.deptno ) 6 from EMP e; ( select dname, loc, revenue * ERROR at line 3: ORA-00913: too many values

198 SQL> select 2 empno, 3 ( select dname 4 from dept 5 where deptno = e.deptno ) dname, 6 ( select loc 7 from dept 8 where deptno = e.deptno ) loc, 9 ( select revenue 10 from dept 11 where deptno = e.deptno ) rev 12 from EMP e; 198 EMPNO DNAME LOC REV ACCOUNTING NEW YORK SALES CHICAGO ACCOUNTING NEW YORK RESEARCH DALLAS [snip]

199 199 use a type

200 SQL> create type multi_attrib as object ( 2 dname varchar2(10), 3 loc varchar2(10), 4 rev number ); 5 / Type created. 200

201 SQL> select empno, 2 x.attr.dname, 3 x.attr.loc, 4 x.attr.rev 5 from 6 ( 7 select 8 empno, 9 ( select multi_attrib( 10 dname,loc,revenue) 11 from dept 12 where deptno = e.deptno ) attr 13 from EMP e 14 ) x; EMPNO ATTR.DNAME ATTR.LOC ATTR.REV ACCOUNTING NEW YORK SALES CHICAGO ACCOUNTING NEW YORK

202 subquery caching _query_execution_cache_max_size Source: "Cost Based Oracle" 202

203 203 DML error logging

204 SQL> insert into MY_TABLE 2 select * 3 from MY_WHOPPING_GREAT_FAT_TABLE; Elapsed: 06:12:34.00 ERROR at line 1: ORA-00001: unique constraint (DEMO.WHOPPER_PK) violated 204

205 insert update delete merge 205

206 keeps successful rows logs error rows 206

207 error logging table ERR$_MY_TABLE 207

208 208 SQL> exec DBMS_ERRLOG.CREATE_ERROR_LOG('EMP')

209 SQL> desc ERR$_EMP Name Null? Type ORA_ERR_NUMBER$ NUMBER ORA_ERR_MESG$ VARCHAR2(2000) ORA_ERR_ROWID$ ROWID ORA_ERR_OPTYP$ VARCHAR2(2) ORA_ERR_TAG$ VARCHAR2(2000) EMPNO VARCHAR2(4000) ENAME VARCHAR2(4000) JOB VARCHAR2(4000) MGR VARCHAR2(4000) HIREDATE VARCHAR2(4000) SAL VARCHAR2(4000) COMM VARCHAR2(4000) DEPTNO VARCHAR2(4000) 209

210 Column Name Data Type Description ORA_ERR_NUMBER$ NUMBER Oracle error number ORA_ERR_MESG$ VARCHAR2(2000) Oracle error message text ORA_ERR_ROWID$ ROWID Rowid of the row in error (update and delete only) ORA_ERR_OPTYP$ VARCHAR2(2) Type of operation I = insert, U = update, D = delete ORA_ERR_TAG$ VARCHAR2(2000) User supplied tag 210

211 SQL> select * from NEW_DATA; EMPNO SAL DEPTNO X SQL> 2500 exec dbms_errlog.create_error_log( 50 'EMP' ); PL/SQL procedure successfully completed. SQL> insert into EMP (empno,sal,deptno) 2 select * 3 from NEW_DATA 4 LOG ERRORS REJECT LIMIT UNLIMITED; 1 row created. SQL> select ORA_ERR_OPTYP$ op, ORA_ERR_MESG$, EMPNO 2 from err$_emp OP ORA_ERR_MESG$ EMPNO I ORA-01722: invalid number 100X I ORA-02291: integrity constraint (SCOTT.FK_DEPTNO) violated 2000 I ORA-00001: unique constraint (SCOTT.PK_EMP) violated

212

213 213 IGNORE_ROW_ON_DUPKEY_INDEX

214 total recall 11g 214

215 SQL> create tablespace SPACE_FOR_ARCHIVE 2 datafile 'C:\ORACLE\DB11\ARCH_SPACE.DBF' 3 size 100M; Tablespace created. SQL> CREATE FLASHBACK ARCHIVE longterm 2 TABLESPACE space_for_archive 3 RETENTION 1 YEAR; Flashback archive created. 215

216 SQL> ALTER TABLE EMP FLASHBACK ARCHIVE LONGTERM; Table altered. [lots of DML] SQL> select * from EMP; Id Operation Name Rows Bytes SELECT STATEMENT TABLE ACCESS FULL EMP

217 SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows Bytes SELECT STATEMENT TABLE ACCESS FULL EMP

218 [lots more DML] SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows SELECT STATEMENT VIEW UNION-ALL * 3 FILTER 4 PARTITION RANGE ITERATOR 445 * 5 TABLE ACCESS FULL SYS_FBA_HIST_ * 6 FILTER * 7 HASH JOIN OUTER 1 * 8 TABLE ACCESS FULL EMP 1 9 VIEW 14 * 10 TABLE ACCESS FULL SYS_FBA_TCRV_

219 SQL> select table_name 2 from user_tables 3 / TABLE_NAME SYS_FBA_HIST_71036 SYS_FBA_TCRV_71036 SYS_FBA_DDL_COLMAP_71036 EMP 219

220 SQL> select dbms_metadata.get_ddl( 'TABLE', 'SYS_FBA_HIST_71036') from dual; CREATE TABLE "SCOTT"."SYS_FBA_HIST_71036" ( "RID" VARCHAR2(4000), "STARTSCN" NUMBER, "ENDSCN" NUMBER, "XID" RAW(8), "OPERATION" VARCHAR2(1), "EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10), "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0) ) COMPRESS FOR ALL OPERATIONS TABLESPACE "SPACE_FOR_ARCHIVE" PARTITION BY RANGE ("ENDSCN") ( PARTITION "HIGH_PART" VALUES LESS THAN (MAXVALUE) ) 220

221 SQL> select dbms_metadata.get_ddl( 'TABLE', 'SYS_FBA_TCRV_71036') from dual; CREATE TABLE "SCOTT"."SYS_FBA_TCRV_71036" ( "RID" VARCHAR2(4000), "STARTSCN" NUMBER, "ENDSCN" NUMBER, "XID" RAW(8), "OPERATION" VARCHAR2(1) ) TABLESPACE "SPACE_FOR_ARCHIVE" 221

222 SQL> select * from EMP 2 AS OF TIMESTAMP SYSDATE-3; Id Operation Name Rows SELECT STATEMENT VIEW UNION-ALL * 3 FILTER 4 PARTITION RANGE ITERATOR 445 * 5 TABLE ACCESS FULL SYS_FBA_HIST_ * 6 FILTER * 7 HASH JOIN OUTER 1 * 8 TABLE ACCESS FULL EMP 1 9 VIEW 14 * 10 TABLE ACCESS FULL SYS_FBA_TCRV_

223 223 all your history...

224 224 all your audit...

225 225 restrictions #1

226 SQL> alter table EMP RENAME column job to jobtitle; * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table SQL> alter table emp DROP column dummy; alter table scott.emp drop column dummy * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table SQL> alter table emp ADD dummy int; Table altered. 226

227 be careful... no spanning DDL might apply 227

228 better in 11.2 DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA 228

229 229 restrictions #2

230 230

231 Feature: sql transposition 231

232 232 rows to columns, colums to rows

233 "I need sales by product for each quarter...now" 233

234 SQL> select product, 2 trunc(txn_date,'q') mth, sum(quantity) total 3 from SALES 4 group by product,trunc(txn_date,'q') 5 order by 1,2; 234 PRODUCT MTH TOTAL CHAINSAW JAN CHAINSAW APR CHAINSAW JUL CHAINSAW OCT HAMMER JAN HAMMER APR HAMMER JUL HAMMER OCT SCREW DRIVER JAN SCREW DRIVER APR SCREW DRIVER JUL SCREW DRIVER OCT SPADE JAN SPADE APR SPADE JUL SPADE OCT WHEEL BARROW JAN WHEEL BARROW APR WHEEL BARROW JUL WHEEL BARROW OCT

235 "That s crap...surely you know I wanted it ACROSS the page" 235

236 236

237 237

238 and below

239 SQL> select 2 product 3,sum(case when trunc(txn_date,'q')='jan' then qty end) jan 4,sum(case when trunc(txn_date,'q')='apr' then qty end) apr 5,sum(case when trunc(txn_date,'q')='jul' then qty end) jul 6,sum(case when trunc(txn_date,'q')='oct' then qty end) oct 7 from SALES 8 group by product 9 order by 1 10 / PRODUCT JAN APR JUL OCT CHAINSAW HAMMER SCREW DRIVER SPADE WHEEL BARROW

240 240 11g pivot clause

241 SQL> select * 2 from (select product, 3 trunc(txn_date,'q') mth, 4 quantity 5 from sales ) 6 pivot( sum(quantity) for mth in 7 ( 'JAN', 8 'APR', 9 'JUL', 10 'OCT') ) 11 order by 1 12 / PRODUCT 'JAN' 'APR' 'JUL' 'OCT' CHAINSAW HAMMER SCREW DRIVER SPADE WHEEL BARROW

242 242 "nah...make it go DOWN the page

243 SQL> create table PIVOTED_SALES as select * 2 from (select product, 3 trunc(txn_date,'q') mth, 4 quantity 5 from sales ) 6 pivot( sum(quantity) for mth in 7 ( 'JAN', 8 'APR', 9 'JUL', 10 'OCT') ) 11 order by 1 12 / Table created. 243

244 244 unpivot clause

245 SQL> desc PIVOTED_SALES Name Null? Type PRODUCT VARCHAR2(20) Q1 NUMBER Q2 NUMBER Q3 NUMBER Q4 NUMBER 245

246 SQL> select * 2 from PIVOTED_SALES 3 UNPIVOT 4 ( quantity for quarter in (Q1,Q2,Q3,Q4) ) 5 / column values become "quantity" 246 PRODUCT QUARTER QUANTITY CHAINSAW Q CHAINSAW Q CHAINSAW Q CHAINSAW Q HAMMER Q HAMMER Q HAMMER Q HAMMER Q SCREW DRIVER Q SCREW DRIVER Q SCREW DRIVER Q SCREW DRIVER Q SPADE Q SPADE Q SPADE Q SPADE Q WHEEL BARROW Q WHEEL BARROW Q WHEEL BARROW Q WHEEL BARROW Q column names become "quarter"

247 247 elements must be known in advance

248 248

Spool Generated For Class of Oracle By Satish K Yellanki

Spool Generated For Class of Oracle By Satish K Yellanki SQL> CREATE VIEW Employees 3 SELECT 4 Empno "ID Number", 5 Ename Name, 6 Sal "Basic Salary", 7 Job Designation 8 FROM Emp; SQL> SELECT 2 Empno "ID Number", 3 Ename Name, 4 Sal "Basic Salary", 5 Job Designation

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

Note: Small fonts in this presentation

Note: Small fonts in this presentation Note: Small fonts in this presentation Can you read this? SQL> select sample_font 2 from dual ; 1 1 3 4 2 5 https:// 6 3 7 bio 8 4 make you more successful with Oracle 5 SQL-lectric!!! Connor McDonald

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

Semester 1 Session 3. Database design

Semester 1 Session 3. Database design IRU SEMESTER 2 January 2010 Semester 1 Session 3 Database design Objectives To be able to begin the design of a relational database by Writing a mission statement for the project Specifying the mission

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

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

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

Spool Generated For Class of Oracle By Satish K Yellanki

Spool Generated For Class of Oracle By Satish K Yellanki SQL> SELECT MGR, COUNT(*) 2 FROM Emp 3 GROUP BY MGR; MGR COUNT(*) ---------- ---------- 7566 2 7698 5 7782 1 7788 1 7839 3 7902 1 1 7 rows selected. SQL> DECLARE 2 V_Ename Emp.Ename%TYPE; 3 V_Job Emp.Job%TYPE;

More information

SQL> exec sample_font

SQL> exec sample_font NOTE itty bitty fonts in this presentation SQL> exec sample_font Can you read this? 1 Connor McDonald OracleDBA co.uk 2 3 bio slide 4 Connor McDonald 6 why? 7 9 life was simple 11 12 (good) cost optimizer

More information

Performance tuning using SQL new features. By Riyaj Shamsudeen

Performance tuning using SQL new features. By Riyaj Shamsudeen Performance tuning using SQL new features By Riyaj Shamsudeen 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,

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

CS Reading Packet: "Simple Reports - Part 2"

CS Reading Packet: Simple Reports - Part 2 CS 325 - Reading Packet: "Simple Reports - Part 2" p. 1 CS 325 - Reading Packet: "Simple Reports - Part 2" Sources: * Oracle9i Programming: A Primer, Rajshekhar Sunderraman, Addison Wesley. * Classic Oracle

More information

Column Functions and Grouping

Column Functions and Grouping Column Functions and Grouping Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 3.3.1 Unit Objectives After completing this unit, you should

More information

10/7/ g for developers. Connor McDonald. OracleDBA. co.uk

10/7/ g for developers. Connor McDonald. OracleDBA. co.uk 11g for developers 1 Connor McDonald OracleDBA co.uk 2 1 3 4 2 253 days ago... 5 not any more 6 3 254 days... 7 30's 4 8 4 9 my grumpy statement 10 5 DO NOT UPGRADE TO 11G more on that later 11 first impressions

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

Archive Log Mining. Supplemental logging must be enabled on the source database before generating redo log files that will be analyzed by LogMiner.

Archive Log Mining. Supplemental logging must be enabled on the source database before generating redo log files that will be analyzed by LogMiner. Archive Log Mining In Oracle8i, LogMiner was introduced as a tool capable of reading redo records found in the redo log files using a relational interface. To find out what Oracle is writing to the redo

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

Introduction to Relational Databases Part 2: How?

Introduction to Relational Databases Part 2: How? Introduction to Relational Databases Part 2: How? Claude Rubinson University of Houston Downtown rubinsonc@uhd.edu cjr@grundrisse.org September 28, 2011 Normalized Database People PersonUID Person Age

More information

See the apply lag in the database SQL> select value, unit from v$dataguard_stats where name = 'apply lag';

See the apply lag in the database SQL> select value, unit from v$dataguard_stats where name = 'apply lag'; SQL> @dgnfia ------------ Apply Lag Control ------------ Make sure RTQ is active SQL> @sysdba_kokki SQL> connect sys/oracle@kokki as sysdba SQL> alter database open; Database altered. ------------ See

More information

Lecture9: Data Manipulation in SQL, Advanced SQL queries

Lecture9: Data Manipulation in SQL, Advanced SQL queries IS220 / IS422 : Database Fundamentals College of Computer and Information Sciences - Information Systems Dept. Lecture9: Data Manipulation in SQL, Advanced SQL queries Ref. Chapter5 Prepared by L. Nouf

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

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

Release Notes. Version SP2. Hubble Desktop (Edition 1) JD Edwards World & EnterpriseOne and Oracle E-Business Suite

Release Notes. Version SP2. Hubble Desktop (Edition 1) JD Edwards World & EnterpriseOne and Oracle E-Business Suite Release Notes Version 2016.1.SP2 Hubble Desktop (Edition 1) JD Edwards World & EnterpriseOne and Oracle E-Business Suite Document Information..............................................................i

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

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

CISC 7510X Final Exam For the below questions, use the following schema definition.

CISC 7510X Final Exam For the below questions, use the following schema definition. CISC 7510X Final Exam For the below questions, use the following schema definition. customer(custid,username,fname,lname) product(prodid,description,listedprice) purchase(purchid,custid,timstamp) purchaseitem(purchid,prodid,qty,price)

More information

CISC 7512X Final Exam For the below questions, use the following schema definition.

CISC 7512X Final Exam For the below questions, use the following schema definition. CISC 7512X Final Exam For the below questions, use the following schema definition. customer(custid,username,fname,lname) product(prodid,description,listedprice) purchase(purchid,custid,timstamp) purchaseitem(purchid,prodid,qty,price)

More information

Oracle MOOC: SQL Fundamentals

Oracle MOOC: SQL Fundamentals Week 2 Homework for Lesson 2 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

Purchase Order, Requisitions, Inventory Hands On. Workshop: Purchase Order, Requisitions, Inventory Hands On

Purchase Order, Requisitions, Inventory Hands On. Workshop: Purchase Order, Requisitions, Inventory Hands On Workshop: Purchase Order, Requisitions, Inventory Hands In this follow up session to the Operations Changes in Purchase Order, Requisition, and Inventory Theory course, this hands on session will look

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

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

COURSE LISTING. Courses Listed. with Business Intelligence (BI) Crystal Reports. 26 December 2017 (18:02 GMT)

COURSE LISTING. Courses Listed. with Business Intelligence (BI) Crystal Reports. 26 December 2017 (18:02 GMT) with Business Intelligence (BI) Crystal Reports Courses Listed BOC345 - SAP Crystal Reports 2011: Optimizing Report Data Processing BOC320 - SAP Crystal Reports: - BOCE10 - SAP Crystal Reports for Enterprise:

More information

Strategies for Monitoring Large Data Centers with Oracle Enterprise Manager. Ana McCollum Consulting Product Manager

Strategies for Monitoring Large Data Centers with Oracle Enterprise Manager. Ana McCollum Consulting Product Manager Strategies for Monitoring Large Data Centers with Oracle Enterprise Manager Ana McCollum Consulting Product Manager The following is intended to outline our general product direction. It is intended for

More information

How Physical Inventory 11i Works

How Physical Inventory 11i Works How Physical Inventory 11i Works An Oracle Technical White Paper June 2006 Revision 1 1 How Physical Inventory 11i Works INTRODUCTION Oracle Inventory provides several tools to aid users in controlling

More information

"There is insufficient memory to execute this function" error message when you use the Reverse Register function.

There is insufficient memory to execute this function error message when you use the Reverse Register function. Platform hotfixes ID Title 378244 "There is insufficient memory to execute this function" error message when you use the Reverse Register function. 378383 Merge cmdlet indicate conflicts but no conflicts

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

GW Coupons for VirtueMart

GW Coupons for VirtueMart Joomla! GW Coupons for VirtueMart Version 0.4x Administration Guide document version 0.42 Feb. 17, 2009 Copyright No portions of this manual may be reproduced or redistributed without the written consent

More information

ABSTRACT INTRODUCTION OUR ETL EVOLUTION

ABSTRACT INTRODUCTION OUR ETL EVOLUTION Paper 2409-2018 Developing BI Best Practices: Texas Parks and Wildlife s ETL Evolution Drew Turner, John Taylor, Alejandro Farias, Texas Parks and Wildlife Department ABSTRACT The development of extract,

More information

Do you remember the future? 2014 MapR Technologies 2

Do you remember the future? 2014 MapR Technologies 2 2014 MapR Technologies 2014 MapR Technologies 1 Do you remember the future? 2014 MapR Technologies 2 2014 MapR Technologies 3 Some things turned out as expected 2014 MapR Technologies 4 Guys wearing Fedoras

More information

Workflow Mining: Identification of frequent patterns in a large collection of KNIME workflows

Workflow Mining: Identification of frequent patterns in a large collection of KNIME workflows Workflow Mining: Identification of frequent patterns in a large collection of KNIME workflows Nils Weskamp, Research Scientist Computational Chemistry nils.weskamp@boehringer-ingelheim.com Overview Motivation

More information

Oracle on z/os and Linux on System z Tuning experiences

Oracle on z/os and Linux on System z Tuning experiences Oracle on z/os and Linux on System z Tuning experiences Thomas Niewel Principal Sales Consultant Agenda Tuning Why? Statspack AWR Report ASH Report SQL Tuning tools TKPROF Explain

More information

The Human Resources Information System DATA WAREHOUSE

The Human Resources Information System DATA WAREHOUSE The Human Resources Information System DATA WAREHOUSE September 2010 First Edition: 1999 Second Edition: October, 2004 Third Edition: March 2007 Current Edition: September, 2010 Oregon State University,

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

State Analytical Reporting System (STARS)

State Analytical Reporting System (STARS) Table of Contents Human Resources Analytics Dashboards and Reports... 3 WORKFORCE DEPLOYMENT... 4 WORKFORCE DEMOGRAPHICS... 8 COMPENSATION... 11 RETENTION... 16 TIME AND LABOR ANALYSIS... 21 ACCRUAL...

More information

2014 MSX Group Microsoft Forecaster User Group Forums. Questions Asked by Attendees

2014 MSX Group Microsoft Forecaster User Group Forums. Questions Asked by Attendees 2014 MSX Group Microsoft Forecaster User Group Forums Questions Asked by Attendees This document contains the questions we received during this year s Forecaster User Group Forum. If any of the questions

More information

Deltek Ajera Release Notes

Deltek Ajera Release Notes Deltek Ajera 8 8.08 Release Notes October 21, 2015 While Deltek has attempted to verify that the information in this document is accurate and complete, some typographical or technical errors may exist.

More information

ISO Monitoring and Measurement Nonconformance and Corrective and Preventative Action

ISO Monitoring and Measurement Nonconformance and Corrective and Preventative Action ISO 14001 4.5.1 Monitoring and Measurement 4.5.2 Nonconformance and Corrective and Preventative Action 4.5.1 Monitoring and Measurement The organization shall establish and maintain documented procedures

More information

The Enterprise Project

The Enterprise Project The Enterprise Project Reporting & Analytics Environment Requirements Gathering September 2017 Requirements Collection BOT Executives Metrics Visioning Sessions, Existing Metrics & Strategic Direction

More information

DATABASICS Time User s Guide v3.1

DATABASICS Time User s Guide v3.1 DATABASICS Time User s Guide v3.1 A Guide to CALIBRE s Time Reporting Website July 2016 CALIBRE 6354 Walker Lane, Suite 300 Alexandria VA 22310 1 Table of Contents Before You Get Started... 3 Accessing

More information

Sage 100 Contractor Advanced Payroll

Sage 100 Contractor Advanced Payroll Session 4-1 Thursday, October 12 8:30am 10:00am Room 619 Session 4-1 Sage 100 Contractor Advanced Payroll Presented By: Kathy Gotzenberg Construction kgotzenberg@cbs-solution.com Original Author(s): Kathy

More information

Requirements Analysis. Overview

Requirements Analysis. Overview Requirements Analysis Overview What is requirement? Classification of requirements Iterative and evolutionary requirements analysis Use Cases Domain models N. Meng, B. Ryder 2 1 Requirements Definition

More information

CP 94bis Statement of amounts due with weight brackets

CP 94bis Statement of amounts due with weight brackets CP 94bis Statement of amounts due with weight brackets Completion instructions Document version: 1.0 Date: 2016 03 29 UPU form template valid from: 2017 01 01 1 General rules A CP 94bis statement of amounts

More information

Oracle PaaS and IaaS Universal Credits Service Descriptions

Oracle PaaS and IaaS Universal Credits Service Descriptions Oracle PaaS and IaaS Universal Credits Service Descriptions December 1, 2017 Oracle PaaS_IaaS_Universal_CreditsV120117 1 Metrics... 3 Oracle PaaS and IaaS Universal Credit... 8 Oracle PaaS and IaaS Universal

More information

MARKETING DASHBOARDS. Why they fail to deliver value and how we overcame it. Frank Moreno VP Worldwide Marketing Datawatch

MARKETING DASHBOARDS. Why they fail to deliver value and how we overcame it. Frank Moreno VP Worldwide Marketing Datawatch Frank Moreno VP Worldwide Marketing Datawatch Ellen Wilson Marketing Operations Analyst Datawatch MARKETING DASHBOARDS Why they fail to deliver value and how we overcame it There s a better way to build

More information

Hyperion Focus 17. EPM Logs 101

Hyperion Focus 17. EPM Logs 101 Hyperion Focus 17 EPM Logs 101 Presenter Chuck Czajkowski, Solutions Architect Over 20 years IT and Networking experience On the support team at Hyperion Solutions in the early 2000 s working as an Environmental

More information

Explanation of HealthStream Import File Specifications

Explanation of HealthStream Import File Specifications Explanation of HealthStream Import File Specifications HealthStream Learning Center TM Contents Contents Revision History... 2 Overview... 4 Preparing Demographic Data... 5 User IDs... 5 Department Title

More information

BPP PROFESSIONAL EDUCATION IT COURSES

BPP PROFESSIONAL EDUCATION IT COURSES BPP PROFESSIONAL EDUCATION IT COURSES COURSE CALENDAR All sessions are held at The Mallard Intro to Excel 16 Feb (am) Excel: the essentials Excel: presenting data Excel: data analysis 16 Mar (am) or 6

More information

Using the Pricing Engine Request Viewer to Troubleshoot Pricing Issues

Using the Pricing Engine Request Viewer to Troubleshoot Pricing Issues Using the Pricing Engine Request Viewer to Troubleshoot Pricing Issues March 14, 2006 By Teri Cameron What is the Pricing Engine Request Viewer Accessing the Pricing Engine Request Viewer Profile Options

More information

Oracle Financial Services Revenue Management and Billing V2.3 Performance Stress Test on Exalogic X3-2 & Exadata X3-2

Oracle Financial Services Revenue Management and Billing V2.3 Performance Stress Test on Exalogic X3-2 & Exadata X3-2 Oracle Financial Services Revenue Management and Billing V2.3 Performance Stress Test on Exalogic X3-2 & Exadata X3-2 O R A C L E W H I T E P A P E R J A N U A R Y 2 0 1 5 Table of Contents Disclaimer

More information

CREATE INSTANT VISIBILITY INTO KEY MANUFACTURING METRICS

CREATE INSTANT VISIBILITY INTO KEY MANUFACTURING METRICS CREATE INSTANT VISIBILITY INTO KEY MANUFACTURING METRICS The QualityWorX Dashboard provides the most comprehensive, easy-to-use reporting platform for production and quality management in the industry.

More information

Timekeeper Training Guide for Administrators & Approvers

Timekeeper Training Guide for Administrators & Approvers Timekeeper Training Guide for Administrators & Approvers Last updated: August 2015 Contents HOW DO I REQUEST ACCESS TO BECOME A TIMEKEEPER ADMINISTRATOR OR APPROVER?.. 3 ACRONYMS/GLOSSARY... 4 ABOUT THE

More information

Cheating With Statistics In SAP ASE

Cheating With Statistics In SAP ASE Cheating With Statistics In SAP ASE Raymond Mardle 1 / 78 Introduction A bit about myself How statistics might be generated Tools for analysis Customisation procedure Other ways of cheating Where to find

More information

!SSA Product Lifecycle Management. SSA PLM 8.0 SP4 Release Notes

!SSA Product Lifecycle Management. SSA PLM 8.0 SP4 Release Notes !SSA Product Lifecycle Management SSA PLM 8.0 SP4 Release Notes Copyright 2006 by SSA Global Technologies, Inc. and its Subsidiaries and Affiliates All rights reserved. No part of this publication may

More information

Binary storage for nested data structures and application to hstore data type. Oleg Bartunov, Teodor Sigaev Moscow University

Binary storage for nested data structures and application to hstore data type. Oleg Bartunov, Teodor Sigaev Moscow University Binary storage for nested data structures and application to hstore data type Oleg Bartunov, Teodor Sigaev Moscow University Hstore developers Teodor Sigaev, Oleg Bartunov Sternberg Astronomical Institute

More information

Scott Hockly. Environmental Management of an Inner City Roading Project

Scott Hockly. Environmental Management of an Inner City Roading Project Scott Hockly Environmental Management of an Inner City Roading Project Overview National War Memorial Park (Pukeahu) The big picture The Alliance Constraints Memorial Park Empowering Act Approach Reality

More information

Chapter 8 - Reports and Financial Statements

Chapter 8 - Reports and Financial Statements Chapter 8 - Reports and Financial Statements This Section Includes: 8.1 Report Listing 8.1.1 nvision Reports 8.1.2 AP PeopleSoft Delivered Reports 8.1.3 GL PeopleSoft Delivered Reports 8.2 Queries 8.2.1

More information

Key performance indicators for production - Examples from chemical industry. Krister Forsman

Key performance indicators for production - Examples from chemical industry. Krister Forsman Key performance indicators for production - Examples from chemical industry Krister Forsman 2016-04-08 Agenda Short presentation of the Perstorp group Characteristics of chemical plants; business- and

More information

SAP Public Budget Formulation 8.1

SAP Public Budget Formulation 8.1 Sizing Guide Document Version: 1.0 2013-09-30 CUSTOMER Typographic Conventions Type Style Example Example EXAMPLE Example Example EXAMPLE Description Words or characters quoted from the screen.

More information

Oracle Big Data Discovery The Visual Face of Big Data

Oracle Big Data Discovery The Visual Face of Big Data Oracle Big Data Discovery The Visual Face of Big Data Today's Big Data challenge is not how to store it, but how to make sense of it. Oracle Big Data Discovery is a fundamentally new approach to making

More information

Product Summary of XLReporter with GE Intelligent Platforms SyTech, Inc.

Product Summary of XLReporter with GE Intelligent Platforms SyTech, Inc. Product Summary of XLReporter with GE Intelligent Platforms SyTech, Inc. Page 1 Contents Summary... 3 SYTECH is THE REPORT COMPANY... 3 Product Overview... 4 XLREPORTER EDITIONS... 4 DATA INTERFACES...

More information

DBWR checkpoints 4 2 DBWR checkpoints 3

DBWR checkpoints 4 2 DBWR checkpoints 3 ------------ Full Checkpoint Session altered. ------------ Enable checkpoint logging SQL> alter system set log_checkpoints_to_alert = true; ------------ How many checkpoints did each instance take? SQL>

More information

Bacardi & Vodafone Case Studies : OnLine Archiving projects

Bacardi & Vodafone Case Studies : OnLine Archiving projects Bacardi & Vodafone Case Studies : OnLine Archiving projects November 22, 2007 Erwin De Smaele Presales Engineer - Applimation Presentation Agenda Data Growth Challenges What s Online Archiving? Basics

More information

University of North Carolina at Chapel Hill. University of North Carolina. Time Information Management (TIM) EPA Exempt Employees

University of North Carolina at Chapel Hill. University of North Carolina. Time Information Management (TIM) EPA Exempt Employees Using time Information Management (TIM) Time Stamp Employees Using Time Information Management University of North Carolina at Chapel Hill (TIM) University of North Carolina Time Information Management

More information

TIMEFORCE HOLIDAY CHECKLIST

TIMEFORCE HOLIDAY CHECKLIST TimeForce Holiday Checklist TIMEFORCE HOLIDAY CHECKLIST This document walks you through setting up each section of the software that is required in order for holiday hours to be awarded to your employees

More information

Requirements Analysis

Requirements Analysis Objectives Classify categories of requirements Requirements Analysis Define the principles of iterative requirements analysis Learn about use cases and their elements Define system sequence diagrams for

More information

Teller & Cash Activity Analysis Tools

Teller & Cash Activity Analysis Tools Teller & Cash Activity Analysis Tools CU*BASE Relationship Management Tools INTRODUCTION Take a look at the numbers...what do you see? Let s talk about the teller line. What do we need to know in order

More information

3. Setting up pay types

3. Setting up pay types 3. Setting up pay types Before you can set up pay rates, you must set up pay types. A pay type, also known as a settlement type, is: An item that is considered a taxable earning; or A reimbursement; or

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

SOA Best Practices & Framework Services in Order to Invoice Enterprise Application Integrations

SOA Best Practices & Framework Services in Order to Invoice Enterprise Application Integrations SOA Best Practices & Framework Services in Order to Invoice Enterprise Application Integrations By Raman D. Singh Consulting Manager, SOA Practice Protégé Software Services Booth# 1426 Agenda Today Protégé

More information

Accelerating Your Big Data Analytics. Jeff Healey, Director Product Marketing, HPE Vertica

Accelerating Your Big Data Analytics. Jeff Healey, Director Product Marketing, HPE Vertica Accelerating Your Big Data Analytics Jeff Healey, Director Product Marketing, HPE Vertica Recent Waves of Disruption IT Infrastructu re for Analytics Data Warehouse Modernization Big Data/ Hadoop Cloud

More information

Pentaho 8.0 and Beyond. Matt Howard Pentaho Sr. Director of Product Management, Hitachi Vantara

Pentaho 8.0 and Beyond. Matt Howard Pentaho Sr. Director of Product Management, Hitachi Vantara Pentaho 8.0 and Beyond Matt Howard Pentaho Sr. Director of Product Management, Hitachi Vantara Safe Harbor Statement The forward-looking statements contained in this document represent an outline of our

More information

Infor FMS SunSystems What s New in SunSystems 5.4.1

Infor FMS SunSystems What s New in SunSystems 5.4.1 Infor FMS SunSystems What s New in SunSystems 5.4.1 Make a change for the better The following functionality has been introduced or enhanced in SunSystems 5.4.1 Phone: +353 1 6768900 Fax: +353 1 6768538

More information

Engagement Portal. Employee Engagement User Guide Press Ganey Associates, Inc.

Engagement Portal. Employee Engagement User Guide Press Ganey Associates, Inc. Engagement Portal Employee Engagement User Guide 2015 Press Ganey Associates, Inc. Contents Logging In... 3 Summary Dashboard... 4 Results For... 5 Filters... 6 Summary Page Engagement Tile... 7 Summary

More information

What about streaming data?

What about streaming data? What about streaming data? 1 The Stream Model Data enters at a rapid rate from one or more input ports Such data are called stream tuples The system cannot store the entire (infinite) stream Distribution

More information

IBM Cognos Report Studio: Author Professional Reports Fundamentals (v10.2.2) Student Guide Vol 2 Course Code: B5A58

IBM Cognos Report Studio: Author Professional Reports Fundamentals (v10.2.2) Student Guide Vol 2 Course Code: B5A58 IBM Cognos Report Studio: Author Professional Reports Fundamentals (v10.2.2) Student Guide Vol 2 Course Code: B5A58 IBM COGNOS REPORT STUDIO: AUTHOR PROFESSIONAL REPORTS FUNDAMENTALS (V10.2.2) IBM Cognos

More information

Oracle Planning and Budgeting Cloud. December 2017 Update (17.12) What s New

Oracle Planning and Budgeting Cloud. December 2017 Update (17.12) What s New Oracle Planning and Budgeting Cloud December 2017 Update (17.12) What s New TABLE OF CONTENTS REVISION HISTORY... 3 ORACLE PLANNING AND BUDGETING CLOUD, DECEMBER UPDATE... 3 ANNOUNCEMENTS AND NEW FEATURES...

More information

SINGLE-YEAR SALARY PLANNING

SINGLE-YEAR SALARY PLANNING SINGLE-YEAR SALARY PLANNING TABLE OF CONTENTS OPENING A PLAN FILE... 2 GENERAL NAVIGATION... 4 Plan File Layout... 4 Employee Groups Not Included... 4 Axiom Toolbar... 4 SALARY INCREASES... 6 Current Year

More information

Dr. Rob Donald - Curriculum Vitae. Web: Mob:

Dr. Rob Donald - Curriculum Vitae.   Web:  Mob: Dr. Rob Donald - Curriculum Vitae Email: rob@statsresearch.co.uk, Web: http://www.statsresearch.co.uk Mob: 07780 650 910 Profile Data Scientist, Systems and Data Analyst In my current role I am a senior

More information

Aura BackOffice Reports Coherent Software Solutions

Aura BackOffice Reports Coherent Software Solutions Aura BackOffice 6.0.0 Reports Contents 3 Table of Contents Part I Reports 6 1 Sales... 8 Category Sales... 9 Item Sales... 12 Invoice Summary... 14 Discounts Summary... 16 Discounts Detailed... 18 Hourly

More information

Eclipse Work Order Management. Release (Eterm)

Eclipse Work Order Management. Release (Eterm) Eclipse Work Order Management Release 8.6.4 (Eterm) Legal Notices 2008 Activant Solutions Inc. All rights reserved. Unauthorized reproduction is a violation of applicable laws. Activant and the Activant

More information

Introducing 2-Tier BI and Analytics

Introducing 2-Tier BI and Analytics Introducing 2-Tier BI and Analytics A couple quick questions 1. Part of your mission is to drive a data-driven organization? 2. Have some sort of common version of the truth? 3. Good idea to let business

More information

Social and Collaborative BPM Pushing Organizational Excellence

Social and Collaborative BPM Pushing Organizational Excellence Social and Collaborative BPM Pushing Organizational Excellence Manas Deb, PhD MBA, Sr. Director, SOA/BPM Product Management, Oracle HQ Manoj Das, Sr. Director, BPM Product Management,

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

Oracle. Financials Cloud Using Subledger Accounting. Release 13 (update 17D)

Oracle. Financials Cloud Using Subledger Accounting. Release 13 (update 17D) Oracle Financials Cloud Release 13 (update 17D) Release 13 (update 17D) Part Number E89132-01 Copyright 2011-2017, Oracle and/or its affiliates. All rights reserved. Author: Barbara Snyder This software

More information

Sorting. 1 Insertion Sort. CS61B Summer 2006 Instructor: Erin Korber Lectures 13,14,15: 18,19,20 July

Sorting. 1 Insertion Sort. CS61B Summer 2006 Instructor: Erin Korber Lectures 13,14,15: 18,19,20 July CS61B Summer 2006 Instructor: Erin Korber Lectures 13,14,15: 18,19,20 July Sorting The need to sort numbers, strings, and other records arises frequently in computer applications. The entries in any modern

More information

axe Documentation Release g6d4d1b6-dirty Kevin Murray

axe Documentation Release g6d4d1b6-dirty Kevin Murray axe Documentation Release 0.3.2-5-g6d4d1b6-dirty Kevin Murray Jul 17, 2017 Contents 1 Axe Usage 3 1.1 Inputs and Outputs..................................... 4 1.2 The barcode file......................................

More information

Oracle FLEXCUBE General Ledger Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E

Oracle FLEXCUBE General Ledger Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E Oracle FLEXCUBE General Ledger Oracle FLEXCUBE Universal Banking Release 12.0 [May] [2012] Oracle Part Number E51465-01 Table of Contents Oracle FLEXCUBE General Ledger 1. ABOUT THIS MANUAL... 1-1 1.1

More information