SlideShare a Scribd company logo
1 of 58
APEX 5 IR
Guts &
Performance
Karen Cannell TH Technology
kcannell@thtechnology.com
TH Technology
About Me …
Karen Cannell ~ TH Technology
• Mechanical/SW Engineer - Analyzed, designed, developed,
converted, upgraded, enhanced legacy & database applications for
25+ years
• Building Oracle –based Web solutions for government, medical,
engineering industries, APEX since HTMLDB
• Leveraging the Oracle 10g,11g, 12c suite of tools
• Oracle Ace Associate
• Editor Emeritus Technical Journal
TH Technology
We Have Books …
Expert Oracle Application Express, APress
2015 Report Printing
Beginning Application Express
4.2, APress, 2013
Agile Oracle Application Express
APress, 2012
TH Technology
About You …
New to APEX?
APEX Experience?
APEX Versions?
IR Habits?
IR Customizations?
New Stuff or Old?
APEX5 Ready?
TH Technology
NOTE TO EARLY SLIDE DOWNLOADERS
• Many of these slides HAVE CHANGED as I
find more neat stuff to add for you every
day.
• Please download the updated slides from
the Kscope16 site or
www.thtechnology.com or email
kcannell@thtechnology.com
TH Technology
Agenda ~ Guts and Performance
• Guts ~ Inside and Outside
• CSS
• JS
• Performance
• The Real Query(ies)
• Declarative Settings
• Drills & Parameters
• Extra Boost
• Questions
TH Technology
Developer & User Team
“APEX IR give the end user great power to format
and arrange reports to their needs,
the developer needs to be aware of the end user
needs to prepare and deliver the appropriate IR
query to support them.”
Know Your Users
Know What Your Users Do
Train Your Users to Maximize IR Use
APEX 5 Interactive
Reports:
Guts
CSS and JavaScript
TH Technology
Guts ~ CSS
• APEX 5 - All New CSS
apexir_<element> ids
are replaced by
a-IRR-<component> classes and
<Static Id>_... id names
TH Technology
Why Do We Care About the CSS?
• Customizations
• Color
• Style
• Use in ThemeRoller Custom CSS
• Use in Custom Dyn Actions
TH Technology
TH Technology
Guts ~ JavaScript
• All Changed APEX 4.2 to APEX 5
• Locked Down (relatively)
• No gReport
• No API in Sight
• Lots of Refactoring for Customizations …
TH Technology
IF You Need To Customize / Refactor
• See jQuery Widgets
<base_dir>/i/libraries/apex/minified
/widget.interactiveReport.js
/widget.menu.js
• Read
http://hardlikesoftware.com/weblog/2015/
05/12/apex-5-0-interactive-report-
customization/
TH Technology
Widgets 101
• $(selector).widgetName("method");
• Ex:
$("#DEMO_IR_ir").interactiveReport("option“);
$("#DEMO_IR_actions_menu").menu("option");
$("#DEMO_IR_actions_menu").menu("find",
"irDownload").action();
$("#DEMO_IR_actions_menu").menu("find",
"irReset").action();
TH Technology
Reset IR – Dynamic Actions
• PL/SQL call to APEX_IR.RESET
$("#DEMO_IR_actions_menu").menu("find",
"irReset").action();
Same Result as the other, but
the JS approach is Unsupported
TH Technology
More UnSupported Customizations
• Download an IR:
$("#DEMO_IR_actions_menu").menu("find","irDownload").action();
• Get the Current Rows Per Page:
$("#DEMO_IR_ir”).interactiveReport("option","currentRowsPerPage”);
• Set the Current Rows Per Page:
$("#DEMO_IR_ir”).interactiveReport("option","currentRowsPerPage”, 50);
This approach is Unsupported and Subject to Change
TH Technology
Caveats
We Can Extend Things, But Before I/We/You
Do
• Caveat 1 – Things May Change
• Caveat 2 – APEX 5.1 Multi Edit Grid
• WILL Supercede IRs
• May (will probably) Have an API
APEX 5 Interactive
Reports:
Performance
The Real Query, Declarative Settings, Drills &
Parameters, Extras
TH Technology
The Basic Interactive Report
• Few(er) Rows < 1000000
• Good Performance
• Defaults Are Fine
• Larger, More Complex
• Know Your Options
• Use Them!
TH Technology
The Pitifully Slow IR
• Slow IR performance Magnifies ...
• Wait for First Display …
• Wait for Col Heading Filters …
• Wait for Pivot …
• Wait for Chart …
Demo of Pitifully
Slow IR
TH Technology
IR Performance 1-2-3
• Tune the Real SQL Query
• Optimze IR Settings
• Train Users in IR Behavior
TH Technology
The SQL Query
• Tune The Real Query.
• Slow Performance Magnifies
• Tune the Query for How Users Retrieve Data
• Debug to ExposeThe Real Query
• Tune Outside of APEX
• Explain Plan
• Indexes
TH Technology
The Real Query
• Changes w Filters
• Search Filter
• Col Heading Filter
• Changes w Views
• Table
• Group By
• Chart
• Pivot
TH Technology
Let’s See The Real Query
• Table View
• Max Row Count
• Pagination “of Z “
• Tabular w Filters
• Group By
• Chart
• Pivot
TH Technology
TH Technology
Declarative Settings
• Lots of IR Settings
• Developer Controls These
(That’s You!)
Defaults Aren’t The Best For Every IR
TH Technology
MaxRowCount
• Small as Practical
• What Is Practical?
• 1000000 default
• Depends on Your Data
• Test ~ Timing ~ Debug
• For “Download It All” Users
• Offer a Separate Download Page
• Avoid High Max Row Count for All Users
TH Technology
Impact of Max Row Count
Demo
• Default Max Row Count
• High Max Row Count
• Low Max Row Count
• NULL Max Row Count
Your Mileage Will Vary
Know Your Data ~ Know Your Users
TH Technology
Max Rows Per Page
• Be Practical
• Higher  Longer Page Load
• 5000?
• Always Set Max Rows Per Page
• Use Header Float Settings
• None
• Page
• Region
• Inform Users of Tradeoffs
Train Your Users to Maximize IR Use
TH Technology
Pagination
• Avoid X to Y of Z
• Z Gets Determined Every Time
• “of Z” is Expensive!
• Alternative for “of Z” – Set Count
• Lose Count w Filters
• Pagination Plugins
• Show Pagination Query, Timing, Impact
TH Technology
Column Heading Menus
• Column Filter ~ Based on Subset, Not All
Rows!!
• “My Data is Not There!”
• Contents based on 1st 1000 Rows
• Search Fields Work on the Full Result Set
TH Technology
Column Filter
• ‘A’O, ‘Ahinahina through … Zygodon
• By Default, LOV Contents based on 1st 1000
Rows
TH Technology
Column Filter Options
• IF you Set LOV
Choose LOV
Carefully
• Goal is to Display All ... Faster
• Exact Match vs Contains … controls filters
relative to Result Set
• Search Still Works on the Full Result Set
TH Technology
Drills, Passing Parameters
• 1 IR ~ Same Syntax for Passing Parameters
IREQ_<column_name>
• Multi IRs on Same Page
IREQ[IR Static Id]_<column_name>
• IR w Multiple Saved Reports
IREQ[IR Static Id] _<Saved Report Id>_<column_name>
• ‘’|| column_name||’’ if values contain , : ; %
TH Technology
Referencing IR Columns & Filter Values
• IREQ_[Static Id]_<column_alias> Equals
• IR [Static Id]_< <column_alias> Equals
• IRLT[Static Id]_< <column_alias> <
• IRLTE[Static Id]_< <column_alias> <=
• IRGT[Static Id]_< <column_alias> >
• IRGTE[Static Id]_< <column_alias> >=
• IRLIKE[Static Id]_< <column_alias> SQL LIKE
• IRN[Static Id]_ <column_alias> NULL
• IRNN[Static Id]_< <column_alias> NOT NULL
• IRC[Static Id]_< <column_alias> Contains
• IRNC[Static Id_]< <column_alias> Not Contains
No BETWEEN, IN, NOT IN
TH Technology
Syntax for IR Links / Drills
• Look at Saved Report attributes
• Gives you the exact syntax to reference each
saved report
TH Technology
Syntax for IR Links / Drills
• Can Edit the Alias
Still Slow?
OR …
Need Dynamic SQL?
TH Technology
Extra Power ~ Pipelined Table
Functions
• Performance Boost
• More Work
• May Be Viable Option For
• Complex Queries
• High Volume Data
• Option when Q Must be Dynamic SQL
• Delivers Rows Faster? …. Let’s see.
TH Technology
IR From Pipelined Table Function
• Create SQL Type (Row Type) for the Report
Columns
• CREATE TYPE
• Create Table Type of the Row Type
• Create Function PIPELINED
• Dyn SQL
• Create IR Using
• SELECT <col name list>
FROM TABLE( pipelined_function
(<parameters>));
TH Technology
Code Examples for Pipelined Function
Option
• CREATE FUNCTION inter_rpt_pipelined ( …)
RETURN your_tbl_type PIPELINED
IS
TYPE rc IS REF_CURSOR;
l_rc rc;
v_your_type your_rec_type;
…
…
TH Technology
Query Example for Pipelined Function
Option
• SQL that uses the function …
SELECT harvest_id,
harvest_Date,
sector_id
…
FROM TABLE ( INTER_RPT_PIPELINED);
Pipelined
Table
Function
in IR
TH Technology
SQL Query vs Pipelined Table Function
• SQL Query
• Traditional IR
• Pipelined Table Function
• Straight Table  Slower
• Complex Query  Faster for first rows
• Cut is on Processing Time
TH Technology
SQL Query Not Enough?
• Query From a Collection
• Heading Names via Query
• Function to build SQL
• APEX_COLLECTION.CREATE_COLLECTION_FRO
M_QUERY_B
SELECT c001, c002, …
FROM apex_collections
WHERE collection_name = ‘YOUR_COLLECTION’;
Recap
Guts
• New CSS
• New JavaScript
• Refactoring
Performance
• Tune The Real Query
• Settings
• Max Row Count
• Pagination
• Rows Per Page
• Alternatives
• Pipelined Table
Function
• Collection
TH Technology
The Future
Interactive Grid WILL Replace IR
• Upgrade Wizard
• Lazy Loading
• Endless Scroll - Buffers Next Fetch
• Require Filter
• Performance Options (Contains, Starts,
REGEXP, CASE)
• JavaScript API (Maybe/Probably)
TH Technology
The Future
Interactive Grid WILL Replace IR
• Guts
• Anticipate a JS API
• JavaScript Code region for Customizing
• Performance
• AJAX/JSON
• Show Total Row Count
• Fewer, Wiser Parameters
• Better Performance, More Controls
APEX 5 IR
Guts &
Performance
Questions ?
Karen Cannell TH Technology
kcannell@thtechnology.com
TH Technology
References
• Jari Laine Pagination Option
http://jaris.blogsite.org/apex/f?p=BLOG:READ:0::::ARTICLE:41900346
848694
• JSnyder Blog Hard Like Software
http://hardlikesoftware.com/weblog/2015/05/12/apex-5-0-interactive-
report-customization/
• Vishal Blog Post re Table Functions
http://obiee-oracledb.blogspot.com/2011/07/performance-enhancing-
drug-called-table.html
• Sample App
• apex.oracle.com THUNTER kscope16/demo
• APEX 5.1 Early Adopter
• Sample Interactive Grid App
$("#DEMO_IR_ir").interactiveReport("refresh");$("#DEMO_IR_ir").interactiveReport("refresh");

More Related Content

What's hot

Oracle APEX Cheat Sheet
Oracle APEX Cheat SheetOracle APEX Cheat Sheet
Oracle APEX Cheat SheetDimitri Gielis
 
2 ways to get total sum of interactive grid column oracle apex ontoor blogs
2 ways to get total sum of interactive grid column oracle apex   ontoor blogs2 ways to get total sum of interactive grid column oracle apex   ontoor blogs
2 ways to get total sum of interactive grid column oracle apex ontoor blogssulimankareem
 
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...Karen Cannell
 
Validate Your Validations: Both Sides Now
Validate Your Validations: Both Sides NowValidate Your Validations: Both Sides Now
Validate Your Validations: Both Sides NowKaren Cannell
 
Utah Geek Events Big Mountain Data Mastering Oracle Interactive Grids
Utah Geek Events Big Mountain Data Mastering Oracle Interactive GridsUtah Geek Events Big Mountain Data Mastering Oracle Interactive Grids
Utah Geek Events Big Mountain Data Mastering Oracle Interactive GridsKaren Cannell
 
East Coast Oracle 2018 APEX Charts - Data Viz Now
East Coast Oracle 2018 APEX Charts - Data Viz NowEast Coast Oracle 2018 APEX Charts - Data Viz Now
East Coast Oracle 2018 APEX Charts - Data Viz NowKaren Cannell
 
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
APEX Interactive Grid API Essentials:  The Stuff You Will Really UseAPEX Interactive Grid API Essentials:  The Stuff You Will Really Use
APEX Interactive Grid API Essentials: The Stuff You Will Really UseKaren Cannell
 
APEX Interactive Grids: Standardize for Sanity
APEX Interactive Grids: Standardize for SanityAPEX Interactive Grids: Standardize for Sanity
APEX Interactive Grids: Standardize for SanityKaren Cannell
 
APEX Grids: Standardize for Productivity and Sanity
APEX Grids: Standardize for Productivity and SanityAPEX Grids: Standardize for Productivity and Sanity
APEX Grids: Standardize for Productivity and SanityKaren Cannell
 
Boston APEX Meetup ~ Standardize Your Grids
Boston APEX Meetup ~ Standardize Your GridsBoston APEX Meetup ~ Standardize Your Grids
Boston APEX Meetup ~ Standardize Your GridsKaren Cannell
 
Low Code Lowdown: APEX vs Visual Builder: Which is For You?
Low Code Lowdown:  APEX vs Visual Builder: Which is For You? Low Code Lowdown:  APEX vs Visual Builder: Which is For You?
Low Code Lowdown: APEX vs Visual Builder: Which is For You? Karen Cannell
 
Oracle Low Code Lowdown: APEX vs VBCS
Oracle Low Code Lowdown: APEX vs VBCSOracle Low Code Lowdown: APEX vs VBCS
Oracle Low Code Lowdown: APEX vs VBCSKaren Cannell
 
Take a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentTake a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentRodrigo Radtke de Souza
 
Incredible ODI tips to work with Hyperion tools that you ever wanted to know
Incredible ODI tips to work with Hyperion tools that you ever wanted to knowIncredible ODI tips to work with Hyperion tools that you ever wanted to know
Incredible ODI tips to work with Hyperion tools that you ever wanted to knowRodrigo Radtke de Souza
 
Dare to build vertical design with relational data (Entity-Attribute-Value)
Dare to build vertical design with relational data (Entity-Attribute-Value)Dare to build vertical design with relational data (Entity-Attribute-Value)
Dare to build vertical design with relational data (Entity-Attribute-Value)Ivo Andreev
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerJeff Smith
 
What you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie AllenWhat you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie Allenjaxconf
 
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...Lucidworks
 
Informatica overview
Informatica overviewInformatica overview
Informatica overviewkarthik kumar
 

What's hot (19)

Oracle APEX Cheat Sheet
Oracle APEX Cheat SheetOracle APEX Cheat Sheet
Oracle APEX Cheat Sheet
 
2 ways to get total sum of interactive grid column oracle apex ontoor blogs
2 ways to get total sum of interactive grid column oracle apex   ontoor blogs2 ways to get total sum of interactive grid column oracle apex   ontoor blogs
2 ways to get total sum of interactive grid column oracle apex ontoor blogs
 
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...
UTOUG Training Days 2019 APEX Interactive Grids: API Essentials, the Stuff Yo...
 
Validate Your Validations: Both Sides Now
Validate Your Validations: Both Sides NowValidate Your Validations: Both Sides Now
Validate Your Validations: Both Sides Now
 
Utah Geek Events Big Mountain Data Mastering Oracle Interactive Grids
Utah Geek Events Big Mountain Data Mastering Oracle Interactive GridsUtah Geek Events Big Mountain Data Mastering Oracle Interactive Grids
Utah Geek Events Big Mountain Data Mastering Oracle Interactive Grids
 
East Coast Oracle 2018 APEX Charts - Data Viz Now
East Coast Oracle 2018 APEX Charts - Data Viz NowEast Coast Oracle 2018 APEX Charts - Data Viz Now
East Coast Oracle 2018 APEX Charts - Data Viz Now
 
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
APEX Interactive Grid API Essentials:  The Stuff You Will Really UseAPEX Interactive Grid API Essentials:  The Stuff You Will Really Use
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
 
APEX Interactive Grids: Standardize for Sanity
APEX Interactive Grids: Standardize for SanityAPEX Interactive Grids: Standardize for Sanity
APEX Interactive Grids: Standardize for Sanity
 
APEX Grids: Standardize for Productivity and Sanity
APEX Grids: Standardize for Productivity and SanityAPEX Grids: Standardize for Productivity and Sanity
APEX Grids: Standardize for Productivity and Sanity
 
Boston APEX Meetup ~ Standardize Your Grids
Boston APEX Meetup ~ Standardize Your GridsBoston APEX Meetup ~ Standardize Your Grids
Boston APEX Meetup ~ Standardize Your Grids
 
Low Code Lowdown: APEX vs Visual Builder: Which is For You?
Low Code Lowdown:  APEX vs Visual Builder: Which is For You? Low Code Lowdown:  APEX vs Visual Builder: Which is For You?
Low Code Lowdown: APEX vs Visual Builder: Which is For You?
 
Oracle Low Code Lowdown: APEX vs VBCS
Oracle Low Code Lowdown: APEX vs VBCSOracle Low Code Lowdown: APEX vs VBCS
Oracle Low Code Lowdown: APEX vs VBCS
 
Take a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentTake a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environment
 
Incredible ODI tips to work with Hyperion tools that you ever wanted to know
Incredible ODI tips to work with Hyperion tools that you ever wanted to knowIncredible ODI tips to work with Hyperion tools that you ever wanted to know
Incredible ODI tips to work with Hyperion tools that you ever wanted to know
 
Dare to build vertical design with relational data (Entity-Attribute-Value)
Dare to build vertical design with relational data (Entity-Attribute-Value)Dare to build vertical design with relational data (Entity-Attribute-Value)
Dare to build vertical design with relational data (Entity-Attribute-Value)
 
Oracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL ServerOracle SQL Developer Data Modeler - for SQL Server
Oracle SQL Developer Data Modeler - for SQL Server
 
What you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie AllenWhat you need to know about Lambdas - Jamie Allen
What you need to know about Lambdas - Jamie Allen
 
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
 
Informatica overview
Informatica overviewInformatica overview
Informatica overview
 

Similar to APEX 5 Interactive Reports: Guts and PErformance

APEX 5 IR: Guts & Performance
APEX 5 IR:  Guts & PerformanceAPEX 5 IR:  Guts & Performance
APEX 5 IR: Guts & PerformanceKaren Cannell
 
APEX 18 Interactive Grids: And Them Some, Part 2
APEX 18 Interactive Grids: And Them Some, Part 2APEX 18 Interactive Grids: And Them Some, Part 2
APEX 18 Interactive Grids: And Them Some, Part 2Karen Cannell
 
APEX Interactive Grids: Essentials and Then Some, Part 1
APEX Interactive Grids: Essentials and Then Some, Part 1APEX Interactive Grids: Essentials and Then Some, Part 1
APEX Interactive Grids: Essentials and Then Some, Part 1Karen Cannell
 
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?Karen Cannell
 
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It?
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It? Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It?
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It? Karen Cannell
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost ModelOlav Sandstå
 
How to Load Data, Revisited
How to Load Data, RevisitedHow to Load Data, Revisited
How to Load Data, RevisitedKaren Cannell
 
How to Load Data, Revisited, UTOUG
How to Load Data, Revisited, UTOUGHow to Load Data, Revisited, UTOUG
How to Load Data, Revisited, UTOUGKaren Cannell
 
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!Karen Cannell
 
Data Governance - Atlas 7.12.2015
Data Governance - Atlas 7.12.2015Data Governance - Atlas 7.12.2015
Data Governance - Atlas 7.12.2015Hortonworks
 
Time Series Databases for IoT (On-premises and Azure)
Time Series Databases for IoT (On-premises and Azure)Time Series Databases for IoT (On-premises and Azure)
Time Series Databases for IoT (On-premises and Azure)Ivo Andreev
 
SAP ABAP Online Training
SAP ABAP Online TrainingSAP ABAP Online Training
SAP ABAP Online TrainingNagendra Kumar
 
APEX JET Charts: Data Viz now!
APEX JET Charts:  Data Viz now!APEX JET Charts:  Data Viz now!
APEX JET Charts: Data Viz now!Karen Cannell
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?mdevtalk
 
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Lars Vogel
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageNeo4j
 
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020Christian Nagel
 

Similar to APEX 5 Interactive Reports: Guts and PErformance (20)

APEX 5 IR: Guts & Performance
APEX 5 IR:  Guts & PerformanceAPEX 5 IR:  Guts & Performance
APEX 5 IR: Guts & Performance
 
APEX 18 Interactive Grids: And Them Some, Part 2
APEX 18 Interactive Grids: And Them Some, Part 2APEX 18 Interactive Grids: And Them Some, Part 2
APEX 18 Interactive Grids: And Them Some, Part 2
 
APEX Interactive Grids: Essentials and Then Some, Part 1
APEX Interactive Grids: Essentials and Then Some, Part 1APEX Interactive Grids: Essentials and Then Some, Part 1
APEX Interactive Grids: Essentials and Then Some, Part 1
 
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?
RMOUG Training Days 2019 Analytic Views for Mortals: Worth A Look?
 
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It?
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It? Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It?
Utah Geek Events Big Mountain Data: Oracle Analytic Views: Worth It?
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost Model
 
How to Load Data, Revisited
How to Load Data, RevisitedHow to Load Data, Revisited
How to Load Data, Revisited
 
How to Load Data, Revisited, UTOUG
How to Load Data, Revisited, UTOUGHow to Load Data, Revisited, UTOUG
How to Load Data, Revisited, UTOUG
 
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!
RMOUG Training Days 2019 Oracle JET Charts in APEX: Data Viz Now!
 
Data Governance - Atlas 7.12.2015
Data Governance - Atlas 7.12.2015Data Governance - Atlas 7.12.2015
Data Governance - Atlas 7.12.2015
 
Time Series Databases for IoT (On-premises and Azure)
Time Series Databases for IoT (On-premises and Azure)Time Series Databases for IoT (On-premises and Azure)
Time Series Databases for IoT (On-premises and Azure)
 
SAP ABAP Online Training
SAP ABAP Online TrainingSAP ABAP Online Training
SAP ABAP Online Training
 
SAP ABAP Online Training
SAP ABAP Online TrainingSAP ABAP Online Training
SAP ABAP Online Training
 
APEX JET Charts: Data Viz now!
APEX JET Charts:  Data Viz now!APEX JET Charts:  Data Viz now!
APEX JET Charts: Data Viz now!
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
 
Apache HAWQ Architecture
Apache HAWQ ArchitectureApache HAWQ Architecture
Apache HAWQ Architecture
 
Java 8
Java 8Java 8
Java 8
 
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010
 
The openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query LanguageThe openCypher Project - An Open Graph Query Language
The openCypher Project - An Open Graph Query Language
 
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
C# 8 in Libraries and Applications - BASTA! Frankfurt 2020
 

Recently uploaded

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

APEX 5 Interactive Reports: Guts and PErformance

  • 1. APEX 5 IR Guts & Performance Karen Cannell TH Technology kcannell@thtechnology.com
  • 2.
  • 3.
  • 4. TH Technology About Me … Karen Cannell ~ TH Technology • Mechanical/SW Engineer - Analyzed, designed, developed, converted, upgraded, enhanced legacy & database applications for 25+ years • Building Oracle –based Web solutions for government, medical, engineering industries, APEX since HTMLDB • Leveraging the Oracle 10g,11g, 12c suite of tools • Oracle Ace Associate • Editor Emeritus Technical Journal
  • 5. TH Technology We Have Books … Expert Oracle Application Express, APress 2015 Report Printing Beginning Application Express 4.2, APress, 2013 Agile Oracle Application Express APress, 2012
  • 6. TH Technology About You … New to APEX? APEX Experience? APEX Versions? IR Habits? IR Customizations? New Stuff or Old? APEX5 Ready?
  • 7. TH Technology NOTE TO EARLY SLIDE DOWNLOADERS • Many of these slides HAVE CHANGED as I find more neat stuff to add for you every day. • Please download the updated slides from the Kscope16 site or www.thtechnology.com or email kcannell@thtechnology.com
  • 8. TH Technology Agenda ~ Guts and Performance • Guts ~ Inside and Outside • CSS • JS • Performance • The Real Query(ies) • Declarative Settings • Drills & Parameters • Extra Boost • Questions
  • 9. TH Technology Developer & User Team “APEX IR give the end user great power to format and arrange reports to their needs, the developer needs to be aware of the end user needs to prepare and deliver the appropriate IR query to support them.” Know Your Users Know What Your Users Do Train Your Users to Maximize IR Use
  • 11. TH Technology Guts ~ CSS • APEX 5 - All New CSS apexir_<element> ids are replaced by a-IRR-<component> classes and <Static Id>_... id names
  • 12.
  • 13.
  • 14.
  • 15. TH Technology Why Do We Care About the CSS? • Customizations • Color • Style • Use in ThemeRoller Custom CSS • Use in Custom Dyn Actions
  • 17. TH Technology Guts ~ JavaScript • All Changed APEX 4.2 to APEX 5 • Locked Down (relatively) • No gReport • No API in Sight • Lots of Refactoring for Customizations …
  • 18. TH Technology IF You Need To Customize / Refactor • See jQuery Widgets <base_dir>/i/libraries/apex/minified /widget.interactiveReport.js /widget.menu.js • Read http://hardlikesoftware.com/weblog/2015/ 05/12/apex-5-0-interactive-report- customization/
  • 19. TH Technology Widgets 101 • $(selector).widgetName("method"); • Ex: $("#DEMO_IR_ir").interactiveReport("option“); $("#DEMO_IR_actions_menu").menu("option"); $("#DEMO_IR_actions_menu").menu("find", "irDownload").action(); $("#DEMO_IR_actions_menu").menu("find", "irReset").action();
  • 20. TH Technology Reset IR – Dynamic Actions • PL/SQL call to APEX_IR.RESET $("#DEMO_IR_actions_menu").menu("find", "irReset").action(); Same Result as the other, but the JS approach is Unsupported
  • 21. TH Technology More UnSupported Customizations • Download an IR: $("#DEMO_IR_actions_menu").menu("find","irDownload").action(); • Get the Current Rows Per Page: $("#DEMO_IR_ir”).interactiveReport("option","currentRowsPerPage”); • Set the Current Rows Per Page: $("#DEMO_IR_ir”).interactiveReport("option","currentRowsPerPage”, 50); This approach is Unsupported and Subject to Change
  • 22. TH Technology Caveats We Can Extend Things, But Before I/We/You Do • Caveat 1 – Things May Change • Caveat 2 – APEX 5.1 Multi Edit Grid • WILL Supercede IRs • May (will probably) Have an API
  • 23. APEX 5 Interactive Reports: Performance The Real Query, Declarative Settings, Drills & Parameters, Extras
  • 24. TH Technology The Basic Interactive Report • Few(er) Rows < 1000000 • Good Performance • Defaults Are Fine • Larger, More Complex • Know Your Options • Use Them!
  • 25. TH Technology The Pitifully Slow IR • Slow IR performance Magnifies ... • Wait for First Display … • Wait for Col Heading Filters … • Wait for Pivot … • Wait for Chart …
  • 27. TH Technology IR Performance 1-2-3 • Tune the Real SQL Query • Optimze IR Settings • Train Users in IR Behavior
  • 28. TH Technology The SQL Query • Tune The Real Query. • Slow Performance Magnifies • Tune the Query for How Users Retrieve Data • Debug to ExposeThe Real Query • Tune Outside of APEX • Explain Plan • Indexes
  • 29. TH Technology The Real Query • Changes w Filters • Search Filter • Col Heading Filter • Changes w Views • Table • Group By • Chart • Pivot
  • 30. TH Technology Let’s See The Real Query • Table View • Max Row Count • Pagination “of Z “ • Tabular w Filters • Group By • Chart • Pivot
  • 32. TH Technology Declarative Settings • Lots of IR Settings • Developer Controls These (That’s You!) Defaults Aren’t The Best For Every IR
  • 33. TH Technology MaxRowCount • Small as Practical • What Is Practical? • 1000000 default • Depends on Your Data • Test ~ Timing ~ Debug • For “Download It All” Users • Offer a Separate Download Page • Avoid High Max Row Count for All Users
  • 34. TH Technology Impact of Max Row Count Demo • Default Max Row Count • High Max Row Count • Low Max Row Count • NULL Max Row Count Your Mileage Will Vary Know Your Data ~ Know Your Users
  • 35. TH Technology Max Rows Per Page • Be Practical • Higher  Longer Page Load • 5000? • Always Set Max Rows Per Page • Use Header Float Settings • None • Page • Region • Inform Users of Tradeoffs Train Your Users to Maximize IR Use
  • 36. TH Technology Pagination • Avoid X to Y of Z • Z Gets Determined Every Time • “of Z” is Expensive! • Alternative for “of Z” – Set Count • Lose Count w Filters • Pagination Plugins • Show Pagination Query, Timing, Impact
  • 37. TH Technology Column Heading Menus • Column Filter ~ Based on Subset, Not All Rows!! • “My Data is Not There!” • Contents based on 1st 1000 Rows • Search Fields Work on the Full Result Set
  • 38. TH Technology Column Filter • ‘A’O, ‘Ahinahina through … Zygodon • By Default, LOV Contents based on 1st 1000 Rows
  • 39. TH Technology Column Filter Options • IF you Set LOV Choose LOV Carefully • Goal is to Display All ... Faster • Exact Match vs Contains … controls filters relative to Result Set • Search Still Works on the Full Result Set
  • 40. TH Technology Drills, Passing Parameters • 1 IR ~ Same Syntax for Passing Parameters IREQ_<column_name> • Multi IRs on Same Page IREQ[IR Static Id]_<column_name> • IR w Multiple Saved Reports IREQ[IR Static Id] _<Saved Report Id>_<column_name> • ‘’|| column_name||’’ if values contain , : ; %
  • 41. TH Technology Referencing IR Columns & Filter Values • IREQ_[Static Id]_<column_alias> Equals • IR [Static Id]_< <column_alias> Equals • IRLT[Static Id]_< <column_alias> < • IRLTE[Static Id]_< <column_alias> <= • IRGT[Static Id]_< <column_alias> > • IRGTE[Static Id]_< <column_alias> >= • IRLIKE[Static Id]_< <column_alias> SQL LIKE • IRN[Static Id]_ <column_alias> NULL • IRNN[Static Id]_< <column_alias> NOT NULL • IRC[Static Id]_< <column_alias> Contains • IRNC[Static Id_]< <column_alias> Not Contains No BETWEEN, IN, NOT IN
  • 42. TH Technology Syntax for IR Links / Drills • Look at Saved Report attributes • Gives you the exact syntax to reference each saved report
  • 43. TH Technology Syntax for IR Links / Drills • Can Edit the Alias
  • 44. Still Slow? OR … Need Dynamic SQL?
  • 45. TH Technology Extra Power ~ Pipelined Table Functions • Performance Boost • More Work • May Be Viable Option For • Complex Queries • High Volume Data • Option when Q Must be Dynamic SQL • Delivers Rows Faster? …. Let’s see.
  • 46. TH Technology IR From Pipelined Table Function • Create SQL Type (Row Type) for the Report Columns • CREATE TYPE • Create Table Type of the Row Type • Create Function PIPELINED • Dyn SQL • Create IR Using • SELECT <col name list> FROM TABLE( pipelined_function (<parameters>));
  • 47. TH Technology Code Examples for Pipelined Function Option • CREATE FUNCTION inter_rpt_pipelined ( …) RETURN your_tbl_type PIPELINED IS TYPE rc IS REF_CURSOR; l_rc rc; v_your_type your_rec_type; … …
  • 48. TH Technology Query Example for Pipelined Function Option • SQL that uses the function … SELECT harvest_id, harvest_Date, sector_id … FROM TABLE ( INTER_RPT_PIPELINED);
  • 50. TH Technology SQL Query vs Pipelined Table Function • SQL Query • Traditional IR • Pipelined Table Function • Straight Table  Slower • Complex Query  Faster for first rows • Cut is on Processing Time
  • 51. TH Technology SQL Query Not Enough? • Query From a Collection • Heading Names via Query • Function to build SQL • APEX_COLLECTION.CREATE_COLLECTION_FRO M_QUERY_B SELECT c001, c002, … FROM apex_collections WHERE collection_name = ‘YOUR_COLLECTION’;
  • 52. Recap Guts • New CSS • New JavaScript • Refactoring Performance • Tune The Real Query • Settings • Max Row Count • Pagination • Rows Per Page • Alternatives • Pipelined Table Function • Collection
  • 53. TH Technology The Future Interactive Grid WILL Replace IR • Upgrade Wizard • Lazy Loading • Endless Scroll - Buffers Next Fetch • Require Filter • Performance Options (Contains, Starts, REGEXP, CASE) • JavaScript API (Maybe/Probably)
  • 54. TH Technology The Future Interactive Grid WILL Replace IR • Guts • Anticipate a JS API • JavaScript Code region for Customizing • Performance • AJAX/JSON • Show Total Row Count • Fewer, Wiser Parameters • Better Performance, More Controls
  • 55. APEX 5 IR Guts & Performance Questions ? Karen Cannell TH Technology kcannell@thtechnology.com
  • 56.
  • 57.
  • 58. TH Technology References • Jari Laine Pagination Option http://jaris.blogsite.org/apex/f?p=BLOG:READ:0::::ARTICLE:41900346 848694 • JSnyder Blog Hard Like Software http://hardlikesoftware.com/weblog/2015/05/12/apex-5-0-interactive- report-customization/ • Vishal Blog Post re Table Functions http://obiee-oracledb.blogspot.com/2011/07/performance-enhancing- drug-called-table.html • Sample App • apex.oracle.com THUNTER kscope16/demo • APEX 5.1 Early Adopter • Sample Interactive Grid App $("#DEMO_IR_ir").interactiveReport("refresh");$("#DEMO_IR_ir").interactiveReport("refresh");