APEX 5 IR
Guts &
Performance
Karen Cannell TH Technology
kcannell@thtechnology.com
APEX 5 Interactive Reports: Guts and PErformance
APEX 5 Interactive Reports: Guts and PErformance
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
APEX 5 Interactive Reports: Guts and PErformance
APEX 5 Interactive Reports: Guts and PErformance
APEX 5 Interactive Reports: Guts and PErformance
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
APEX 5 Interactive Reports: Guts and PErformance
APEX 5 Interactive Reports: Guts and PErformance
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

PDF
APEX 5 IR Guts and Performance
PDF
APEX 5.1 Interactive Grid: What it Means for You and Your Users
PDF
APEX 5 Interactive Reports: Deep Dive and Upgrade Advice
PPSX
Speed Up Your APEX Apps with JSON and Handlebars
PDF
Going to the Grid: Tabular Form Edition (Oracle APEX Editable Interactive Grids)
PDF
RTF Primer: Building and RTF Document
PDF
Migrate BI to APEX 5
PDF
Oracle APEX Interactive Grid Essentials
APEX 5 IR Guts and Performance
APEX 5.1 Interactive Grid: What it Means for You and Your Users
APEX 5 Interactive Reports: Deep Dive and Upgrade Advice
Speed Up Your APEX Apps with JSON and Handlebars
Going to the Grid: Tabular Form Edition (Oracle APEX Editable Interactive Grids)
RTF Primer: Building and RTF Document
Migrate BI to APEX 5
Oracle APEX Interactive Grid Essentials

What's hot (19)

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

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

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

Recently uploaded (20)

DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Cost to Outsource Software Development in 2025
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
PPTX
Trending Python Topics for Data Visualization in 2025
PDF
Website Design Services for Small Businesses.pdf
PDF
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PPTX
assetexplorer- product-overview - presentation
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
PPTX
GSA Content Generator Crack (2025 Latest)
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
Cybersecurity: Protecting the Digital World
How to Use SharePoint as an ISO-Compliant Document Management System
Oracle Fusion HCM Cloud Demo for Beginners
Advanced SystemCare Ultimate Crack + Portable (2025)
Cost to Outsource Software Development in 2025
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Trending Python Topics for Data Visualization in 2025
Website Design Services for Small Businesses.pdf
DuckDuckGo Private Browser Premium APK for Android Crack Latest 2025
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
assetexplorer- product-overview - presentation
Why Generative AI is the Future of Content, Code & Creativity?
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
GSA Content Generator Crack (2025 Latest)
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Salesforce Agentforce AI Implementation.pdf
How AI/LLM recommend to you ? GDG meetup 16 Aug by Fariman Guliev
"Secure File Sharing Solutions on AWS".pptx
Cybersecurity: Protecting the Digital World

APEX 5 Interactive Reports: Guts and PErformance

  • 1. APEX 5 IR Guts & Performance Karen Cannell TH Technology kcannell@thtechnology.com
  • 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
  • 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
  • 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");