Вы находитесь на странице: 1из 60

PL/SQL shouldn't be

Genetics
get flabbergasted...
SCAN THIS PAGE
WITH LAYAR APP FOR
ADDED EXPERIENCE

Oracle development made easy!


We think Oracle development should be like taking a walk in the park.
Easy development is the key to saving time and money. Thats why
we created the PL/SQL Developer tool. As simple as 1, 2, 3!
www.allroundautomations.com/plsqldev

JULY/AUGUST 2014

Big Data Integration Oracle NoSQL Database


3.0 gets more involved in big data strategies
and deployments / 14 Building Bridges Are
organizational silos thwarting IT architecture
goals? / 20 Managing Expressly Manage Oracle
Database 12c with Oracle Enterprise Manager
Database Express / 37 The Joy of LowHanging Fruit Are you taking advantage of BULK
COLLECT and FORALL? / 43 On Table Updates
and SQL Plan Baselines Our technologist
updates tables quickly via CTAS and optimizes
queries for evolution / 49

SUCCESS
ON SPARC
The latest SPARC chips and
systems are at the center of
better business processes

VOLUME XXVIII - ISSUE 4

CONTENTS

SUCCESS
ON SPARC
Consolidating older and underperforming
servers onto newer and more-efficient servers
running a high-performance operating system
and low-overhead virtualization technology adds
new enterprise capacity and processing power
to cost-cutting consolidation projects. Read how
organizations are turning to the new generation
of SPARC servers and the Oracle Solaris
operating system for better business processes
and a better bottom line. Philip J. Gill

/ 26

Cover: I-Hua Chen

Up Front / 5

Community / 16

Technology / 33

Comment / 54

FROM THE EDITOR / 5

PARTNER NEWS / 16
BOOK BEAT / 16
COMMUNITY
BULLETIN / 19

ORACLE ADF / 33

IN THE FIELD / 54

Render an unknown number


of task flows in page or
dashboard regions.
Frank Nimphius

President Alyssa Johnson


talks about OAUGs
evolving mission and
commitment to innovation
through community.
Carol Hildebrand

The Cloud OS
Tom Haunert

At Oracle / 6
EVENTS / 6
Find out about upcoming
technology and industry
events.

RESOURCES / 8
Your guide to Oracle videos,
webcasts, podcasts, white
papers, and more

BRIEFS / 10
The latest product news

INTERVIEW / 14

Big Data Integration


As NoSQL technology
evolves, Oracle NoSQL
Database 3.0 gets
more involved in big
data strategies and
deployments.
Tom Haunert

Happenings in Oracle
Technology Network
Roland Smart

ARCHITECT / 20
Building Bridges

Organizational silos thwarting


IT architecture goals? Put
away the sledgehammer.
Bob Rhubart

PEER-TO-PEER / 21
Close Encounters

Three peers extol the


virtues of in-person classes
and conferences.
Blair Campbell

Region Extreme:
Multi-Task-Flow Binding

MANAGEABILITY / 37
Managing Expressly

Manage Oracle Database


12c with Oracle Enterprise
Manager Database Express,
a built-in browser-based
graphical tool. Arup Nanda

PL/SQL / 43

The Joy of LowHanging Fruit


Are you using BULK
COLLECT and FORALL for
bulk processing yet?
Steven Feuerstein

ASK TOM / 49

On Table Updates and


SQL Plan Baselines
Our technologist updates
tables quickly via CTAS
and optimizes queries for
evolution. Tom Kyte

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

Learning Circle, Part 1

ANALYST / 55

Deploy Applications in
Different Environments
Organizations look to todays
application server platforms
to run high-performance
enterprise applications and
services. David Baum

TIME CAPSULE / 56
Flashbacks: Culture. Industry.
Oracle. Oracle Magazine.
Rich Schwerin

Editorial
Editor in ChiefTom Haunerttom.haunert@oracle.com
Managing EditorJan Rogersjan.rogers@oracle.com
Associate Editor Patty Waddington
Contributing Editor and Writer Blair Campbell
Technology Advisor Tom Kyte
Contributors Rich Schwerin, Leslie Steere
DESIGN
Senior Creative Director Francisco G Delgadillo
Senior Design Director Suemi Lam
Design Director Richard Merchn
Contributing Designers Jaime Ferrand, Arianna Pucherelli
Production Designers Sheila Brennan, Kathy Cygnarowicz
Publishing
PublisherJennifer Hamiltonjennifer.hamilton@oracle.com+1.650.506.3794
Associate Publisher and Audience Development DirectorKarin Kinnearkarin.kinnear@oracle.com+1.650.506.1985
Advertising sales
President, Sprocket MediaKyle Walkenhorstkyle@sprocketmedia.com+1.323.340.8585
Western and Central US, LAD, and Canada, Sprocket MediaTom Cometatom.cometa@oracle.com+1.510.339.2403
Eastern US and EMEA/APAC, Sprocket MediaMark Makinneymark.makinney@sprocketmedia.com+1.805.709.4745
Advertising Sales Assistant, Sprocket MediaCindy Elhajcindy@sprocketmedia.com+1.626.396.9400, x201
Mailing-List Rentals Contact your sales representative.
Editorial Board
Ian Abramson, Karen Cannell, Andrew Clarke, Chris Claterbos, Karthika Devi, Kimberly Floss, Kent Graziano,
Taqi Hasan, Tony Jambu, Tony Jedlinski, Ari Kaplan, Val Kavi, John King, Steve Lemme, Carol McGury,
Sumit Sengupta, Jonathan Vincenzo, Dan Vlamis

Subscription Information
Subscriptions are complimentary for qualified individuals who complete the form found at
oracle.com/oraclemagazine. For change of address, mail in label with the new address to:
Oracle Magazine, P.O. Box 1263, Skokie, IL 60076-8263.
Magazine Customer Service
oracle@halldata.com Fax +1.847.763.9638 Phone +1.847.763.9635

Resources
Oracle Products
+1.800.367.8674 (US/Canada)
Oracle Services
+1.888.283.0591
Oracle Press Books
oraclepressbooks.com

Privacy
Oracle Publishing allows sharing of its mailing list with selected third parties. If you prefer that your
mailing address or e-mail address not be included in this program, contact Customer Service at
oracle@halldata.com.
Copyright 2014, Oracle and/or its affiliates. All Rights Reserved. No part of this publication may be reprinted or otherwise reproduced without permission from the editors. ORACLE MAGAZINE IS PROVIDED ON
AN AS IS BASIS. ORACLE EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM YOUR
USE OF OR RELIANCE ON ANY INFORMATION PROVIDED HEREIN. The information is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into
any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality
described for Oracles products remains at the sole discretion of Oracle. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Oracle Magazine (ISSN 1065-3171) is published bimonthly with a free subscription price by: Oracle, 500 Oracle Parkway, MS OPL-3A, Redwood City, CA 94065-1600. Periodicals Postage Paid at Redwood City,
CA, and additional mailing offices. POSTMASTER: Send address changes to: Oracle Magazine, P.O. Box 1263, Skokie, IL 60076-8263.

Printed by Brown Printing

oracle magazine July/August 2014

ISV Apps
Run Better
on Exadata
30x Lower CPU Utilization
6x Less Storage Used
90% Linear Scalability
70:1 Compression
30x More Scalable

Over 700 ISV Applications Are Certified on Exadata

oracle.com/partners/goto/exastack

Copyright 2014, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.

From The Editor

The Cloud OS

In cloud computing, the OS is more important than ever.

n November 2011, Oracle introduced


Oracle Solaris 11the first cloud OS.
In April 2014, Oracle introduced Oracle
Solaris 11.2, with updated cloud features.
A cloud OS must do more than update features, however, and Oracle Solaris certainly
does more, with new cloud features and
technologies that will continue to open
the cloud to high-performance missioncritical applications.

Next Steps
READ more about
Oracle Solaris
oracle.com/technetwork/server-storage/solaris11
bit.ly/1juvxQS
Oracle Solaris Guarantee Program
bit.ly/1mHegIU
OpenStack
bit.ly/1juvEMo

Send Mail to the Editors


Send your opinions about what you read in Oracle
Magazine, and suggestions for possible technical
articles, to opubedit_us@oracle.com. You can
also follow our @oraclemagazine Twitter feed or
join us on Facebook at bit.ly/orclmagfb.
Letters may be edited for length and clarity and
may be published in any medium. We consider
any communications we receive publishable.

CONNECT:

bit.ly/aVgo69

bit.ly/orclmagfb

Ongoing Evolution
Oracle Solaris 11.2 feature updates deliver
better performance for Oracle environments running the cloud OS, including
kernel mode acceleration, which delivers
performance acceleration for Oracle Real
Application Clusters; memory prediction
technology, which enables lower memory
utilization; and a new shared memory
model and other Oracle Database co
engineered enhancements.
Perhaps one of the most overlooked
ongoing features of all recent Oracle Solaris
releases has been the guarantee. The Oracle
Solaris Guarantee Program ensures that even
as new Oracle Solaris releases support new
features, binary applications and source code
developed for earlier releases of Oracle Solaris
will continue to run on newer releases.
Open Revolution
Oracle Solaris 11.2 includes built-in, efficient
enterprise cloud virtualization. Oracle Solaris
Zones, for example, have been enhanced in
the new release to include support for fully
independent and isolated environments,
called kernel zones. Also new in the cloud OS,
application-driven software-definednetworking support, from application to
twitter.com/oraclemagazine

storage, helps to ensure that application


service-level agreements are maintained
within data center and cloud environments.
One new feature of the Oracle Solaris 11.2
cloud OS, however, has received the most
attention: a complete OpenStack distribution.
OpenStack is an open source cloud
project, and the OpenStack distribution in
Oracle Solaris is a foundation for building
an Oracle Solarisbased cloud. OpenStack
in Oracle Solaris 11.2 provides a central location for managing compute, networking, and
storage resources. With OpenStack, Oracle
VM templates, and the new unified archives
capability, organizations can deploy a singlesystem, multi-virtual-machine OpenStack
environment in a matter of minutes.
New features mean new choices. For virtualization, Oracle Solaris 11.2 supports multiple virtualization technologies, including
Oracle Solaris Zones and Oracle VM Server
for SPARC. In addition to the option to build
Oracle Solarisbased clouds with OpenStack,
Oracle Solaris 11.2 offers the choice to build
clouds based on the Oracle Optimized
Solution for Enterprise Cloud Infrastructure.
Established Institution
From OpenStack to an open invitation:
The institution that is Oracle OpenWorld
San Francisco runs September 28 through
October 2, 2014, and registration is now
open at oracle.com/openworld. Be part of
the latest Oracle announcements, explore
Oracle partner solutions, listen to other
Oracle customers, network, and be part of
the cloud computing conversation.
Tom Haunert, Editor in Chief
tom.haunert@oracle.com

linkd.in/orclmag
oracle magazine July/August 2014

Events

Technology Events

Conferences and sessions to help you stay


on the cutting edge

Oracle OpenWorld

September 28October 2
San Francisco, California
Oracle OpenWorld is the most important educational
and networking event of the year for Oracle technologists, customers, and partners. Thousands of sessions
and hundreds of demos and labs help attendees discover new product and technology solutions, improve
their technical proficiency and knowledge, learn tips
and tricks for currently installed products, and gain
an understanding of where the industry is headed.
Register at oracle.com/openworld

Oracle User Groups


Burlington Ruby Conference

August 23, Burlington, Vermont

burlingtonruby.com

German Oracle Users Group


Regional Meeting
August 4, Hamburg, Germany

doag.org

South African Oracle User


Group HR/HCM SIG Meeting

August 8, Johannesburg, South Africa

saoug.co.za

NoCOUG 2014 Summer Conference


August 21, San Ramon, California

nocoug.org

Austin Java Users Group Meeting


August 26, Austin, Texas

austinjug.org

Suncoast Oracle Users Group Meeting


August 26, Tampa, Florida

soug.org

Flash Memory Summit

USENIX Security Symposium

August 57, Santa Clara, California


fflashmemorysummit.com
This three-day event includes tutorials, in-depth
sessions, hands-on labs, and keynotes from
industry experts. Tutorials cover flash technology, architectures, solid-state drives, hardware, testing, storage, and applications.

August 2022, San Diego, California


fbit.ly/1qf8i1i
This symposium brings together researchers,
practitioners, systems administrators, and systems
programmers and includes refereed papers, panel
discussions, and Birds-of-a-Feather sessions.

Dallas Oracle Users Group Oracle


Database 12c New Features

XChange 2014

Midsize Enterprise Summit West


September 1416, Dallas, Texas
fxchange-events.com/mesw14
This conference brings together more than 220
CIOs and senior-level IT decision-makers to meet
with top technology vendors and analysts to offer
insight into the ever-changing midsize market.

Central States Oracle Application Users


Group Executive Luncheon

Quest INFOCUS ANZ User Group


Annual Conference
August 1819, Melbourne, Australia
fbit.ly/1h8Gc7v
Sponsored by Quest International Users Group,
this conference features content related to
Oracles JD Edwards products and Oracle
Fusion Applications.
REGister for these upcoming Oracle events
Oracle OpenWorld 2014
September 28October 2
oracle.com/openworld
JavaOne
September 28October 2
oracle.com/javaone

july/august 2014 Oracle.com/oraclemagazine

MobileHCI
September 2326, Toronto, Ontario, Canada
fmobilehci.acm.org/2014
MobileHCI covers the field of human-computer
interaction (HCI) and is the premier forum for innovations in mobile, portable, and personal devices
and the services to which they enable access.

DEMO Africa
September 2526, Lagos, Nigeria
fdemo-africa.com
DEMO Africa is the initiative of the Liberating
Innovation in Opportunity Nations partnership,
aimed at enhancing the technology startup
and innovation ecosystems of fast-growing
African economies.

doug.org

UKOUG Development SIG Meeting


September 9, Reading, England

ukoug.org

September 12, St. Louis, Missouri

csoaug.com

All India Oracle Users Group Tech Day


September 14, Kerala, India

aioug.org

UKOUG Business Intelligence and


Reporting Tools SIG Meeting
September 17, London, England

ukoug.org

OAUG South Australia Meeting


September 24, Adelaide, Australia

ausoug.org.au

OUG Ireland HCM SIG Meeting


September 24, Dublin, Ireland

ukoug.org

Events locator
Oracle Events
oracle.com/events
Locate User Groups
oracle.com/technetwork/community

Jshua Barnett/Flickr

August 1719, San Antonio, Texas


fbit.ly/1mYQd7d
XChange 2014 features sessions and demos
focused on IT topics such as cloud computing,
storage optimization, networking, virtualization,
security, mobility, and connectivity.

August 28, Irving, Texas

SEpt. 28 - Oct. 2, 2014


San FranciScO

rEGiStEr nOW

Save $500 by July 18th


2,500 Sessions | 475 Exhibitors | 400 Demos

Register at oracle.com/openworld

Copyright 2014, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Resources

Whats New at Oracle

The latest videos, podcasts, blogs, and more

Videos
Better Clouds at Lower Costs
fbit.ly/1n8L5hd
Learn how to build efficient clouds with Oracles
SPARC servers running Oracle Solaris.
Simplify Your Business with Oracle
Business Analytics
fbit.ly/1g90cWz
Learn how to keep costs down without sacrificing
performance or data quality for discovery, business intelligence, and planning applications.
Why Move Business Applications from
IBM to Oracle
fbit.ly/1iljLHD
Improve performance and efficiency and reduce
costs by moving enterprise applications from IBM
Power to Oracles SPARC servers.
Oracle Real-World Performance
Video Series
fbit.ly/QtTS2b
Oracles Real-World Performance team
shares best practices and performance
methodologies to help you make the most of
your Oracle Database investment.

Webcasts
Ricoh Americas Delivers on Anytime,
Anywhere Promise with Cloud and
On-Premises Integration
fbit.ly/1r5GxbS
Discover the rewards of using Oracle
AppAdvantage for SOA-based cloud, onpremises, and mobile integration initiatives.

Discover the data management issues that CIOs


are most eager to solve.

White Papers

E-Books

Simplify the Migration of Oracle Database


and Oracle Applications from IBM AIX to
Oracle Solaris
fbit.ly/1egb5Wb
Learn the four steps required to migrate from
AIX to Oracle Solaris, and explore an example that
illustrates the effort, duration, and benefits of
the migration.
The Top 10 Reasons to Choose MySQL for
Next-Generation Web Applications
fbit.ly/1lhPL3e
Gain a better understanding of why MySQL is the
best choice for modern web-, mobile-, and cloudbased applications.

Podcasts
Oracle Cloud, Featuring Demand Analysis
fbit.ly/1qj5Eta
Hear Peter Mulligan, Demand Analysis cofounder
and vice president of sales and marketing,
discuss why his company chose Oracle Cloud for
its customer intelligence solution.
Making the Right Storage Choices:
Part 1High Availability
fbit.ly/1hC2cTv
Learn the characteristics of highly available
systems and their impact on the efficiency and
performance of your storage architecture.

Social Media

Spend Testing Time More Effectively


fbit.ly/OKNXVk
Explore the latest trends in software testing that
allow you to deploy higher-quality applications in
less time.

Oracle President Mark Hurd on LinkedIn


Influencer Blog
flinkd.in/1ernjIb
Read Oracle President Mark Hurds posts about
enterprise IT mandates, executive leadership,
customer imperatives, and innovation.

Top Data Warehouse Trends and


Opportunities for 2014
fbit.ly/1dy5Gvq

Oracles Instantis Page on LinkedIn


flinkd.in/1sB0wCT
Join other project portfolio management profes-

CONNECT:
JULY/AUGUST 2014 Oracle.com/oraclemagazine

sionals to discuss improving strategy execution,


operational excellence, and financial performance.

oracle.com/blogs

facebook.com/oracle

Oracle Applications Together with Oracle


Systems: From the Customers Perspective
fbit.ly/1rFN8go
Hear from current Oracle customers about how
running Oracle Applications on Oracle systems
simplifies IT and delivers speed and efficiency.

Resource Centers
Data Integration for Oracle Applications
fbit.ly/1ht6XEy
Access white papers, customer testimonials, and
more that illustrate how to gain incremental value
by using best-in-class data integration solutions.

Oracle University
Complete Oracle Solaris 11 Curriculum
fbit.ly/1i1Rdr3
Quickly obtain the skills needed to manage
mission-critical cloud deployments.
New Oracle WebLogic Server 12c Curriculum
fbit.ly/1hMlzKG
Explore training and certification for Oracle
WebLogic Server 12c.

web locator
Oracle Consulting
oracle.com/consulting
Oracle Events and Webcasts
oracle.com/events
Oracle Newsletters
oracle.com/newsletters
Oracle Podcast Center
oracle.com/podcasts
Oracle University
bit.ly/ouoramag
Oracle Support
oracle.com/support
My Oracle Support
myoraclesupport.com
My Oracle Support Communities
communities.oracle.com

twitter.com/oracle

linkedin.com/company/oracle

bit.ly/LdGiM0

Simple. Adaptable.
Manageable.
quic
uides for
Solution g
!
eployment
and easy d
Simple: We are committed to making our solutions the easiest to
install, configure, and integrate into either existing IT systems or data
centers or new build-outs. We ship our solution as ready to install
as possible (e.g., tool-less rack PDU installation and standard cable
management features). With our easy-to-configure infrastructure,
you can focus on more pressing IT concerns such as network threats.

ace!
for any IT sp
Adaptable: Our solutions can be adapted to ft any IT confguration
at any time from small IT to data centers! Vendor-neutral
enclosures, for example, come in different depths, heights, and widths
so you can deploy your IT in whatever space you have available
from small IT or non-dedicated spaces to even large data centers.

ur
d manage yo
Monitor an
ere!
rom anywh
IT spaces f
Manageable: Local and remote management are
simplifed with out-of-the-box UPS outlet control,
integrated monitoring of the local environment, and
energy usage reporting. Manageability over the network
and robust reporting capabilities help you prevent
IT problems and quickly resolve them when they do
occur from anywhere! Whats more, our life cycle
services ensure optimal operations.

Easy-to-deploy IT physical infrastructure


Solution guides make it easy to determine what you need to solve todays challenges. The core
of our system, vendor-neutral enclosures and rack PDUs, makes deployment incredibly headachefree. Easily adjustable components, integrated baying brackets, pre-installed leveling feet, and
cable management accessories with tool-less mounting facilitate simple and fast installation.

Business-wise, Future-driven.

Integrated InfraStruxure solutions include


everything for your IT physical infrastructure
deployment: backup power and power
distribution, cooling, enclosures, and
management software. Adaptable solutions
scale from the smallest IT spaces up to
multi-megawatt data centers.

Make the most of your IT space!

Download best practices and enter to win a


Samsung Galaxy Note 3!
Visit: www.apc.com/promo Key Code: i770u
2014 Schneider Electric. All Rights Reserved. Schneider Electric, APC, InfraStruxure, and Business-wise, Future-driven are trademarks owned by Schneider Electric Industries SAS
or its affiliated companies. All other trademarks are the property of their respective owners. www.schneider-electric.com 998-1155587_GMA-US_Note3

10

Product Resources

TUTORIALS AND VIDEOS


Java SE 8 Technical Videos

Dive into the new features of Java SE 8


with this series of technical videos covering
the Internet of Things, Java ME, Oracle
Java Embedded, and Java SE.
bit.ly/1kexe6Z

How Oracle ZFS Storage Appliance


Lowers Backup Risk and Cost
Oracle Vice President Steve Zivanic
explains how Oracle ZFS Storage
Appliances including the new Oracle ZFS
Storage Appliance ZS3-BA help reduce
backup and recovery risks and cost.
bit.ly/1gtwTRj

How to Upgrade Oracles SPARC


T5-4 Server Processor
Watch this step-by-step animation to
learn how to upgrade a SPARC T5-4
server from a one-processor to a fourprocessor configuration.
bit.ly/1mRX9X6

How to Upgrade Oracles SPARC


T5-8 Server Processor

Follow the steps for upgrading a SPARC


T5-8 server from a four-processor to an
eight-processor configuration in this animation, which covers preparing the new
processor modules, removing the processor
filler modules, installing the new processor
modules, and more.
bit.ly/1j9JoQF

DOWNLOADS
Oracle NoSQL Database 3.0

Release 3.0 of Oracle NoSQL Database


offers developers an enhanced NoSQL
solution for building high-performance,
next-generation applications providing
increased security, simplified data modeling, secondary indexes, and multi-datacenter performance enhancement.
bit.ly/1kmj8lv

Oracle Database Migration


Assistant for Unicode 2.0

Oracle Database Migration Assistant for


Unicode 2.0, released in March 2014, supports the migration of Oracle Database 12c
pluggable databases to Unicode. Other
new features include enhanced bulk
cleansing features with pattern-based
replacement to resolve certain classes of
data convertibility issues and improved
conversion error-handling mechanisms.
bit.ly/1kez1ZT

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

Oracle Extends Cloud with Database and Storage Cloud Services


Oracle has announced two new Oracle Cloud
services, Oracle Database Backup Cloud
Service and Oracle Storage Cloud Service.
Oracle Database Backup Cloud Service
provides a scalable, low-cost Oracle
Database cloud backup solution and is
tightly integrated with Oracle Recovery
Manager (Oracle RMAN), allowing customers to use familiar Oracle RMAN
commands for performing backup and
recovery operations between on-premises
databases and Oracle Cloud. Oracle Storage
Cloud Service enables organizations to
securely store, access, and manage data in
the cloud. Oracle Storage Cloud Service is
API-compatible with OpenStack Swift and
provides access to data through REST and
Java APIs.

To remain competitive in todays highly


connected business environment, organizations are increasingly adopting and building
new cloud-based solutions. There is also a
huge push to migrate existing on-premises
workloads to the public cloud and support
portability between on-premises and cloud
environments, says Chris Pinkham, senior
vice president of cloud product development at Oracle. To help customers achieve
these goals, Oracle has further expanded
its comprehensive set of enterprise-grade
infrastructure cloud services. The new
services are based on open standards,
integrated to work together seamlessly, and
designed to support full portability between
on-premises and cloud environments.
oracle.com/cloud

Oracle Virtual Compute Appliance X4-2: Turnkey Solution for Cloud


Oracle Virtual Compute Appliance X4-2,
the newest release of Oracle Virtual
Compute Appliance, is a wire-once engineered system that comes fully assembled
and ready to run production workloads with
minimal softwaredefined configuration.
Oracle Virtual
Compute Appliance
is a turnkey solution
for flexible private
cloud platforms that
can be used with
Oracle Enterprise
Manager 12c to
deploy cloud services

ranging from infrastructure as a service to


database as a service with features such
as automated provisioning, elasticity, and
cloud governance.
The Oracle Virtual Compute Appliance
exemplifies Oracles unique ability to
engineer hardware and software together,
providing a superior solution thats easy
to deploy and use without requiring
major infrastructure changes, says Wim
Coekaerts, senior vice president of Linux and
virtualization at Oracle. This engineered
system can significantly cut provisioning
time and offers investment protection by
allowing customers to mix server generations in the same rack.
bit.ly/S2KlR2

Oracle Configure, Price, and Quote Cloud Advances On-the-Go Sales


With the latest release of Oracle Configure,
Price, and Quote Cloud (Oracle CPQ Cloud),
sales professionals and partners can now
access the entire Oracle CPQ suite via
mobile tablets from anywhere, anytime, and
stay productive while on the go.
Oracle CPQ Cloud streamlines the sales
process from inquiry to order by enabling
sales staff and partners to generate sales
quotes, orders, and proposals quickly and
accuratelyfrom anywhere, on any device.
New enhancements include formula man-

agement, enabling administrators to create


complex pricing and discounting calculations in a drag-and-drop interface without
scripting or advanced rules.
Oracle CPQ Cloud helps improve customer satisfaction and sales efficiency,
says Ken Volpe, senior vice president of
Oracle product development. Its integration into Oracle CX Cloud enables sales
teams to sell more and sell faster, from lead
to order and service through renewal.
bit.ly/1iuQiLo

BRIEFS

Oracle Identity Management 11g Release 2 Adds Advanced Security


Features for Cloud and Mobile Devices
The recently updated Oracle Identity
Management 11g Release 2 includes
enhancements that enable organizations
to extend consistent access policies and
controls beyond enterprise applications
and systems to cloud-based systems and
mobile devices.
Key new features and functionality in the
latest release include
Oracle Mobile Security Suite. Secures corporate applications and data on personal
devices and delivers a consistent user
experience across channels by extending
identity services such as fraud detection, user registration, and self-service
password management to customer and
employee digital interactions.
Cloud access portal. Extends the range of
enterprise single sign-on beyond Microsoft
Windows desktops and enables users to
have single-sign-on access to software-asa-service applications from a simple and
personalized launch pad, available on any
device, tablet, or workstation.
Oracle Mobile Authenticator. Provides

a mobile application to simplify strong


authentication, replacing corporateissued hardware tokens at a fraction of
the cost.
Expanded support for OAuth. Supports
two- and three-legged OAuth as well as
more-complex use cases of obtaining
consent from a user before a third-party
consumer application can access information on a service providers application site.
With the latest release of Oracle
Identity Management 11g Release 2, Oracle
is providing organizations with the most
advanced and comprehensive identity
management platform, says Amit Jasuja,
senior vice president of identity management and security at Oracle. As a result,
organizations can realize the full potential of cloud and
mobile applications
while helping to
ensure that valuable company data
remains secure.
bit.ly/1pHvJVT

I-HUA CHEN

Oracle Marketing Cloud Adds Manufacturing Cloud Service


The latest addition to Oracle Marketing
Cloud, Oracle Eloqua for Manufacturing
Cloud Service is a flexible and scalable
cloud-based solution designed to help
manufacturing organizations deliver personalized experiences to customers and
prospects while improving marketing outcomes and efficiency.
The new solution introduces industryspecific capabilities that enhance targeting
and segmentation, increase engagement,
improve measurement, and produce
actionable reporting. With a full view of
the buyers journey, insights into customer
demand signals, and integrated business
intelligence reporting, marketers in global
manufacturing organizations are able to
drive demand and improve the quality of
leads that are passed to sales.
Oracle Eloqua for Manufacturing Cloud
Service includes product registration capabilities that help deliver efficient product
maintenance and subscription renewals,
and it provides intuitive templates and

workflows that help marketers quickly and


efficiently create and extend channel relationships. Campaign tasks are automated
and personalized across print, e-mail, web,
and telemarketing channels.
Manufacturing organizations want to
improve engagement with customers and
prospects across digital channels so that
they can gain better visibility into their sales
pipeline and grow their businesses, says
Steve Miranda, executive vice president for
Oracle Applications development. With
capabilities developed specifically for manufacturers including prebuilt templates and
leading business intelligence, Oracle Eloqua
for Manufacturing Cloud Service helps manufacturers improve marketing effectiveness
and drive revenue.
bit.ly/1h7ygPZ
For more about Oracle Marketing Cloud,
the modern marketing solution that integrates cross-channel, content, and social
marketing with data management for the
enterprise, visit bit.ly/1vcuRZQ.

MySQL 5.7 Available Now


A new development milestone release
for MySQL 5.7, available now, extends the
performance, scalability, and reliability of
MySQL and adds enhanced management
capabilities. Available for download in the
MySQL Developer Zone, the milestone
release delivers improvements in replication,
security, and instrumentation, resulting
in significantly higher performance and
improved manageability over MySQL 5.6.
The latest MySQL 5.7 development
milestone release delivers enhanced performance and management features to the
MySQL community, says Tomas Ulin, vice
president of MySQL engineering at Oracle.
By encouraging ongoing community participation and following the release early,
release often model, we help shorten the
feedback-to-delivery cycle and allow users
to get faster access to improved product
capabilities and quality.
bit.ly/1mRYb5z

NetBeans IDE 8.0 Delivers


Comprehensive Java 8 Support
NetBeans IDE 8.0, available now, allows
developers to make efficient use of the
latest features in Java Platform, Standard
Edition 8 (Java SE 8) by quickly identifying
and converting code to new Java language
constructs, such as Lambda expressions and
Java SE 8 Compact Profiles. The new release
also further extends HTML5 support by
adding new features for common JavaScript
frameworks and introduces new tools for
popular Java Platform, Enterprise Edition
frameworks such as PrimeFaces.
Additional enhancements include Oracle
Java SE Embedded 8 support for deploying,
running, debugging, and profiling Java SE
applications on an embedded device directly
from the NetBeans IDE and support for the
new Java Micro Edition 8 (Java ME 8) specification and Oracle Java ME Embedded 8.
Java SE 8 represents a major advancement for the Java community, says Chris
Tonas, vice president of mobility and development tools at Oracle. NetBeans IDE
8.0 ensures that Java developers have the
advanced tooling to support their adoption
of this new technology.
netbeans.org

ORACLE MAGAZINE JULY/AUGUST 2014

11

BRIEFS

Oracle Fusion Innovation Management Joins Oracle SCM Portfolio


Oracle Fusion Innovation Management,
a new product value chain solution in the
Oracle Supply Chain Management portfolio of applications, provides companies
with a systematic approach for capturing,
selecting, and investing in the right
product ideas and managing their product
portfolios. The new solution enables
bottom-up innovation so all stakeholders
can participate in the product invention
and definition processes, with simultaneous top-down financial impact analysis
and strategic-fit visibility to the key portfolio owners during and post investment
decision. It also enables organizations
to define and manage different product
development projects in the context of
their overall product portfolio.
Oracle Fusion Innovation Management

integrates with Oracles Agile Product


Lifecycle Management, helping to streamline the process of moving concepts along to
detailed design, development, and release
to manufacturing while maintaining full visibility into project status.
By providing a highly usable but systematic approach to managing product innovation, Oracle Fusion Innovation Management
can accelerate the transformation of the
best ideas into profitable products and
deliver against your corporate product
innovation strategy,
says Jon Chorley,
group vice president
of Oracles supply
chain management
product strategy.
bit.ly/1mRXV6E

New Release of Oracle Business Intelligence Applications Improves


Procure-to-Pay Processes and Talent Management
Oracle has announced Release 11.1.1.8.1 of
Oracle Business Intelligence Applications,
which includes prebuilt connectors
between Oracle Procurement and Spend
Analytics and Oracles JD Edwards
EnterpriseOne and adds a new talent
profile analytics module.
Built on Oracle Business Intelligence
Foundation Suite, Oracle Business
Intelligence Applications enable organizations to easily extend their business
intelligence (BI) footprint or build custom

BI applications to meet specific analytics


needs for line-of-business managers
and executives.
Oracle Business Intelligence
Applications provide a critical platform for
unlocking and analyzing enterprise-level and
business-level insights, says Paul Rodwick,
vice president of product management at
Oracle, with the latest updates reducing the
time and complexity to achieve a competitive advantage through data.
bit.ly/1qnCZa1

Oracle Sales Cloud Provides Anywhere, Anytime Access


By giving sales reps a continuous and simplified experience on both desktop and
mobile devices, even when in a disconnected mode, the latest release of Oracle
Sales Cloud offers anywhere, anytime access
designed to achieve fast and wide user
adoption. The latest release helps sales reps
focus on the deals with the highest likelihood of closing and increases the predictability of achieving sales targets by delivering real-time predictive analytics on both
desktop and mobile devices.
Oracle Sales Cloud also helps customers
preserve their existing IT investments and
establish an easy path to the cloud by facili-

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

tating integration from on-premises sales


force automation systems such as Oracles
Siebel Customer Relationship Management
and Oracle E-Business Suite applications.
The enhancements to Oracle Sales
Cloud reinforce Oracles commitment to
deliver simple and smart sales automation
solutions, says Siva Sundaresan, group
vice president for Oracle Sales Cloud. With
the latest release, Oracle Sales Cloud offers
sales teams a simple design, more intelligence, and greater mobility to help optimize
customer interactions, increase sales effectiveness and efficiency, and drive revenue.
bit.ly/1hIJkHd

OpenStack Support for Oracle


Linux and Oracle VM
Oracle has introduced a technology preview
of an OpenStack distribution that allows
Oracle Linux and Oracle VM users to work
with the open source cloud software, providing customers with additional choices
and interoperability while taking advantage
of the efficiency, performance, scalability,
and security of Oracle Linux and Oracle VM.
The distribution is delivered as part of the
Oracle Linux and Oracle VM Premier Support
offerings, at no additional cost.
Oracle is working closely with the
OpenStack community across many areas,
says Wim Coekaerts, senior vice president
of Linux and virtualization at Oracle. Oracle
will continue to help deliver OpenStack
capabilities to enable our customers to more
efficiently deploy, manage, and support
their large Oracle data center deployments.
bit.ly/1iZVDPK

Fujitsu and Oracle Enhance


Fujitsu M10 Servers
Fujitsu and Oracle have announced worldwide availability of enhanced Fujitsu M10-1,
M10-4, and M10-4S servers equipped with
the new SPARC64 X+ processor, which has 16
cores and runs at speeds up to 3.7 GHz.
The new Fujitsu M10-4S server supports mixed SPARC64 X and X+ chassis in a
single system, and the modular design and
physical partition dynamic reconfiguration
feature allow the Fujitsu M10-4S to grow by
adding processors, memory, and I/O with
virtually no downtime.

The enhanced Fujitsu M10 servers


offer a new option for customers seeking
mission-critical computing solutions, says
Oracle Chief Corporate Architect Edward
Screven. Oracle and Fujitsus strong collaboration furthers Oracles commitment to
help customers accelerate their businesses
by engineering hardware and software to
achieve extreme performance.
bit.ly/1j9KLP4

I-HUA CHEN

12

14

Big Data Integration

ollowing the announcement of Oracle


NoSQL Database 3.0, Oracle Magazine
sat down with Dave Segleau, director of
product management at Oracle, to talk
about the state of NoSQL, NoSQL use
cases, and key features in Oracle NoSQL
Database 3.0. Listen to the podcast at
oracle.com/magcasts.
Oracle Magazine: What is the role of NoSQL
in the enterprise today?
Segleau: NoSQL is part of the big data
umbrella of technologies, and it plays a
role in the architecture and deployment
of big data solutions. NoSQL provides a
cost-effective, high-performance, horizontally scalable database platform for
very simple structured and semistructured
data and simple operations at volume.
Enterprises are adopting NoSQL databases
because they offer very flexible application
developercentric data models and moreefficient operations for simple data structures, which means that enterprises can
increase revenue by providing new types of
applications and services, as well as lower
their overall IT costs.
Oracle Magazine: How does NoSQL complement other information technologies
including the relational database?
Segleau: NoSQL was not designed as a
general-purpose database engine, but
rather it was designed to address a specific
set of data management challenges. As
such, its really a component within any
enterprise data management solution. It
complements Apache Hadoop and Hadoops
distributed data processing by providing
an equally distributed low-latency database platform for fast indexed data access
directly from the MapReduce processes
within Hadoop.
It complements relational databases by

July/August 2014 Oracle.com/oraclemagazine

Dave Segleau, Director of Product Management, Oracle

providing a horizontally scalable high-speed


database with relaxed transaction semantics
specifically designed for high-volume, highvelocity distributed operations. This often
results in NoSQL being used to create new
applications or capture new data sets, or in
some cases, to offload some of the data and
operations from relational databases. NoSQL
databases are never deployed in an isolated
data management solution. Every one of our
Oracle NoSQL Database customers deploys a
combination of NoSQL, relational databases,
and Hadoop together, using the technology
thats the best tool for the job at hand.
Oracle Magazine: How are organizations
using Oracle NoSQL Database today?
Segleau: Based on the customers weve
talked to who have adopted Oracle NoSQL
Database, I can summarize the use cases
into three basic types. First, we see a lot of
companies using Oracle NoSQL Database
for what I call web scale personalization
and transactional applications. We often

see these kinds of applications in customer service and customer self-service.


Industries for this kind of application
include financial services, insurance, advertising, marketing, online catalogs, social
media, and e-retail.
The second use case that we see often
is Oracle NoSQL Database being used for
real-time event processing, and we typically see applications in fraud prevention,
medical monitoring, factory automation,
quality-of-service monitoring, and geo
location tracking.
And the third use case we often see is
Oracle NoSQL Database being used for
time-series data management. We typically
see applications within financial services
for managing stock and trading information
as well as within utilities, oil and gas, and
manufacturing for capturing sensor data.
Oracle Magazine: What types of processes
and what other technologies are typically
involved in these use cases?
Segleau: The technologies involved largely
depend on the functionality thats being
implemented. In every case weve seen,
there is definitely a relational database such
as Oracle Database and a data warehouse
in close proximity and, in fact, integrated
with the data in the NoSQL databases.
In many cases, especially with web scale
personalization and time-series data
management, Hadoop and MapReduce are
also used to provide batch processing and
simple summary statistics on the enormous
amounts of data that are becoming available.
We also often see middleware technologies integrated as part of a NoSQL-based
solution. In particular, we see products such
as Oracle Event Processing and Oracle RealTime Decisions software used to process
and manage real-time events as well as

Rex Rystedt

As NoSQL technology evolves, Oracle NoSQL


Database 3.0 adds features and gets more involved
in big data strategies and deployments.

Interview By Tom Haunert

caching products such as Oracle Coherence


to cache both relational and nonrelational
data in the same application cache grid.
Oracle Magazine: Oracle recently
announced a new release of Oracle NoSQL
DatabaseOracle NoSQL Database 3.0.
Tell us about the key features of this release
and how it is enabling better big data processes and results.
Segleau: Oracle NoSQL Database 3.0
was released in early April 2014, and it
includes some really interesting new
features. The release includes a new
table-based data model with support for
secondary indexes, and it also includes
support for secondary data centers, which
were calling zones, as well as the first set of
features around security.
Oracle Magazine: Tell us more about the
new table data model and secondary
indexes features.
Segleau: To facilitate adoption of NoSQL
technology, its important to make it available in a way thats familiar to our customers
and application developers. In that vein,
Oracle NoSQL Database 3.0 adds a tablebased data model, which allows developers
to more easily represent their data and build
applications more quickly. Its a flexible data
model implemented using JSON [JavaScript
Object Notation] structures, for storage as
well as for table evolution.
Along with the introduction of tables,
Oracle NoSQL Database 3.0 adds secondary
indexes, which can be built on any combination of fields within a given record. The
secondary indexes are colocated with the
primary data on each shard in the Oracle
NoSQL Database. The advantage of this
is that reads and writes on the secondary
index are very, very fast because theyre
colocated with the primary record within the
same shard. Additionally, the indexes are
transactionally consistent and secondary
index scans are automatically parallelized
across the shards. This results in a highly
efficient and scalable indexing scheme,
which application developers can then take
advantage of to meet the requirements of
their high-volume, low-latency queries.
Oracle Magazine: Tell us more about the new
secondary data centers feature.
Segleau: Oracle NoSQL Database introduced

Enterprises are adopting NoSQL


databases because they offer very flexible
application developercentric data models
and more-efficient operations for simple
data structures.
support for data centers in Release 2.1,
allowing enterprises to allocate resources,
essentially storage nodes, across data
centers with automatic replication and
failover between the different resources.
Oracle NoSQL Database 3.0 adds secondary
data centers, which were now calling zones.
Secondary zones allow enterprises to define
remote data centers, which participate in
global distribution via automatic asynchronous replication.
So not only is Oracle NoSQL Database 3.0
replicating the data, but the secondary
data centers feature also enables applications to define queries and workloads to be
executed only on specific secondary zones.
Using the feature, applications can run specific workloads such as batch processing or
reporting against secondary zones rather
than impact the throughput and low-latency
queries that are being executed within the
primary zone. This combination of capabilities enables enterprises to ensure continuity
through global disaster recovery planning
and to manage query and application load
balancing across and between primary and
secondary zones.
Oracle Magazine: Tell us more about the new
security features enabled in the new Oracle
NoSQL Database release.
Segleau: Oracle NoSQL Database adds SSL
[Secure Sockets Layer] encryption over the
wire for both client/server and server-toserver communications, and it adds an
operating-system-independent, clusterwide password-based user authentication.
Passwords can be stored in a secure, obfuscated trust store or within the Oracle wallet.
These two capabilities enable enterprises to
provide greater protection from unauthorized access to sensitive data, as well as to
protect from network intrusions.
Oracle Magazine: How have NoSQL and
Oracle NoSQL Database evolved, and what

are the business and technology challenges


for NoSQL going forward?
Segleau: The primary change that weve
seen is that applications have moved from
being science experiments to production
deployments of mission-critical technology.
This impacts the NoSQL technology industry
in a couple of ways. First of all, the decisionmakers have changed; its no longer just the
application developers who are choosing
which NoSQL product to use. Enterprise IT
departments are becoming important influencers in choosing which NoSQL technology
vendors to partner with.
The second change is a shift in product
focus. In the early years of NoSQL, the technology and feature focus was extremely
developer-centric; it was all about feeds and
speeds. But over the past year or so, security
and system administrationespecially of
large, complex production deployments
has taken center stage. This evolution also
affects the features that are included in
Oracle NoSQL Database. This evolution
in product focus emphasizes the need to
provide integration with the overall existing
Oracle IT technology, as well as to provide
simple and automated administration capabilities that address the IT concerns around
critical functions like disaster recovery,
security, and global data integrity.
I think that the challenge for businesses
is to identify technology partners, not just
products, that share an integrated enterprisecentric view of how NoSQL extends their
existing IT infrastructure.

Next Steps
LEARN more about Oracle NoSQL Database
oracle.com/goto/nosql
LISTEN to the podcast
oracle.com/magcasts

oracle magazine July/August 2014

15

16

Book Beat
Oracle PL/SQL Performance Tuning
Tips & Techniques
By Michael Rosenblum and
Paul Dorsey
Oracle Press
oraclepressbooks.com
Oracle PL/SQL
Performance Tuning Tips
& Techniques is a handson intermediate guide for developers and
programmers wanting to achieve results
by deploying the latest and best methods
for improving overall speed, reliability,
and security. Readers will learn expert
performance-tuning methods that draw
on decades of professional experience.
A number of real-world examples are
included in the book.

Predictive Analytics Using Oracle


Data Miner: Develop and Use
Data Mining Models in ODM, SQL,
and PL/SQL
By Brendan Tierney
Oracle Press
oraclepressbooks.com
This essential how-to
guide is written for data
scientists, data miners,
data analysts, Oracle
developers, and database administrators.
Predictive Analytics Using Oracle Data Miner
shows how to build and apply advanced
data mining models and perform data
mining tasks in SQL and PL/SQL. The book
includes guidance on how to migrate data
mining models from a test environment to
a production environment.

Oracle ADF Enterprise Application


DevelopmentMade Simple,
Second Edition
By Sten E. Vesterli
Packt
packtpub.com
Updated for the latest
release, Oracle ADF
Enterprise Application
DevelopmentMade
Simple, Second Edition explains how to
optimize Oracle Application Development
Framework 12c (Oracle ADF 12c) technology. Readers will walk through a development project from proof of concept
through development and deployment. The
book demonstrates support tools for source
control and issue tracking and explains
application security. It also dives into specialty topics such as skinning, customization, and internationalization.

Look for other Oracle books at


bit.ly/oraclebookstore

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

Partners Earn Oracle PartnerNetwork Specialized Status


Two Oracle partners have earned Oracle
PartnerNetwork Specialized status for their
solutions. To achieve Oracle PartnerNetwork
Specialized status, Oracle partners are
required to meet a stringent set of requirements that are based on the needs and priorities of the customer and partner community.
Aurionpro, an Oracle Platinum Partner,
achieved Oracle PartnerNetwork Specialized
status for Oracle Access Management Suite
Plus 11g. Aurionpro delivers Oracle imple-

mentation services; enterprise IT services;


and expertise in banking, financial services,
and supply chain technology.
Black & Veatch, an Oracle Gold
Partner, achieved Oracle PartnerNetwork
Specialized status for Oracle Utilities
Customer Care and Billing. Black & Veatch
provides technology solutions for natural
gas, electric, and water utilities.
aurionpro.com
bv.com

Seven Partners Earn Oracle Exadata Optimized Status


Seven Oracle partners have achieved Oracle
Exadata Optimized status for their solutions. Oracle Exadata Optimized status
is part of the Oracle Exastack Optimized
program, through which Oracle partners
can develop, test, and tune their applications on Oracle Exadata Database Machine,
Oracle Exalogic Elastic Cloud, Oracle
Exalytics In-Memory Machine, and Oracle
SuperCluster engineered systems.
Flex Software Systems Closed Joint Stock
Company, an Oracle Platinum Partner,
achieved Oracle Exadata Optimized for its
Core System FXL 2 and Va-Bank FXL 2 automated banking systems.
LG CNS, an Oracle Platinum Partner,
achieved the status for its Smart ENA 1.0
solution. Smart ENA 1.0 is a pattern analysis
solution that provides early fraud detection.
Calypso Technology, an Oracle Gold
Partner and integrated capital markets
platform provider, announced that Calypso
version 14 has achieved Oracle Exadata
Optimized status.
JDS Uniphase, an
Oracle Gold Partner,
achieved Oracle
Exadata Optimized
status for its
ariesoGEO.
ariesoGEO is an
enterprise geolocation solution that
collects, analyzes,
and geolocates
details from every
customer call or
data connection
to create a store of

location intelligence.
Mformation
Software
Technologies, an
Oracle Gold Partner,
achieved the status
for Mformation
Service Manager.
Mformation is a
global provider of
solutions for managing wirelessly connected devices.
Model N, an
Oracle Gold Partner,
announced that its
Model N Revenue Management 5.5.1 and
5.6.2 earned Oracle Exadata Optimized
status. Model N revenue management solutions are designed to enable companies to
align pricing, contract development and
administration, and payment of trade incentives and government reimbursements.
SmartSoft, a Cardtek Group company
and an Oracle Gold Partner, announced
that its OCEAN international payment
processing system earned Oracle Exadata
Optimized status. OCEAN is a solution for
credit card, debit card, point-of-sale/
merchant management, and ATM management for banks, financial institutions, processors, and retailers.
flexsoft.com
lgcns.com
calypso.com
jdsu.com
mformation.com
modeln.com
smartsoftww.com

PARTNER NEWS

ORACLE CLOUD MARKETPLACE


Oracle Cloud Marketplace features partner
solutions that leverage Oracle Cloud platform services and Oracle software-as-aservice applications. It provides a place for
Oracle Cloud customers to easily browse,
evaluate, and buy applications developed
by registered Oracle partners. Three Oracle
partners have recently released solutions to
the marketplace.
Oracle Gold Partner Five9: The Five9
Virtual Contact Center solution for Oracle
Service Cloud delivers automatic computer
telephony integration screen pops; softphone capabilities such as click-to-dial;
and an intuitive single-screen interface to
create exceptional customer experiences,
increase agent productivity, and deliver
tangible business results.

Oracle Silver Partner Badgeville:


Badgevilles Behavior Platform for Oracle
Sales Cloud provides gamification technology to help drive customer loyalty and
employee performance. Through game,
reputation, and social mechanics the solution motivates desired behaviors.
Oracle Silver Partner Mindmatrix:
Mindmatrix Revenue Growth Platform
is integrated with Oracle Sales Cloud and
features asset management, enablement
of both direct and channel sales, and marketing automation functionality.
five9.com
badgeville.com
mindmatrix.net

International Turnkey Systems Group Earns Oracle Exadata Ready and


Oracle Exalogic Ready Status
Oracle Platinum Partner International
Turnkey Systems has announced that ETHIX
Financial Solutions achieved Oracle Exadata
Ready and Oracle Exalogic Ready status,
demonstrating that these solutions are supported and ready to run on Oracle Exadata

and Oracle Exalogic. ETHIX provides multichannel corporate and retail products and
services in Islamic finance and investment,
including core banking, trade finance, online
banking, and more.
its.ws

Cubus AG Announces Oracle Exadata Ready, Oracle Database Ready,


and Oracle VM Ready Status
Oracle Gold Partner Cubus AG has earned
Oracle Exadata Ready, Oracle Database
Ready, and Oracle VM Ready status for
Outperform. Cubus Outperform is an Oracle

Essbasebased enterprise planning, performance management, and business intelligence solution.


cubus.eu

I-HUA CHEN

Two Partners Earn Oracle Validated Integration with Oracles


PeopleSoft Campus Solutions
Two partners have earned Oracle Validated
Integration, demonstrating that their software products complement and integrate
with Oracles PeopleSoft Campus Solutions.
Oracle Gold Partner Higher One earned
Oracle Validated Integration between
Higher One Disbursement Services and
PeopleSoft Campus
Solutions 9.0. Higher
One provides financial services tools
to US college and
university campuses
for activities such as

payment and refund processing and data


analytics and management.
Oracle Gold Partner InFlight earned
Oracle Validated Integration between
InFlight and PeopleSoft Campus Solutions,
to deliver a student-friendly system
accessible from desktop, laptop, and
mobile devices. InFlight develops integration technology that allows its clients
to extract maximum value from their
line-of-business and learning management systems.
higherone.com
inflightintegration.com

Two Partners Earn Oracle


Exadata Optimized and Oracle
SuperCluster Optimized Status
Two partners have earned Oracle Exadata
Optimized and Oracle SuperCluster
Optimized status for solutions that have
been tested and tuned with those engineered systems.
Oracle Diamond Partner Infosys
announced that its Finacle Core Banking
solution, part of the Finacle-Infosys
ePlatform, achieved Oracle Exadata
Optimized and Oracle SuperCluster
Optimized status. Finacle Core Banking is
a web-based, centralized, customercentric, fully integrated, multilingual,
multicurrency solution for retail, corporate,
and trade finance banking.
Oracle Gold Partner Temenos
UK reported that WealthManager13
achieved Oracle Exadata Optimized and
Oracle SuperCluster Optimized status.
WealthManager is an integrated wealth
management platform.
infosys.com
temenos.com

cVidya Achieves Oracle


SuperCluster Optimized Status
Oracle Gold Partner cVidya announced
that FraudView has achieved Oracle
SuperCluster Optimized status. FraudView
prevents, detects, and investigates current
and future threats from across business
lines and services.
cvidya.com

Asseco SEE Teknoloji Earns


Oracle Exadata Optimized and
Oracle Exalogic Optimized Status
Oracle Platinum Partner Asseco SEE
Teknoloji A.S.s InACT solution has earned
Oracle Exadata Optimized and Oracle
Exalogic Optimized status, demonstrating
that it has been tested and tuned to run
with Oracle Exadata Database Machine and
Oracle Exalogic Elastic Cloud. InACT is a
deterministic-scenario-based system that
monitors customer and merchant transactions and creates fraud and anti-moneylaundering alerts.
asseco-see.com.tr

ORACLE MAGAZINE JULY/AUGUST 2014

17

YOUR DESTINATION FOR ORACLE AND JAVA EXPERTISE


Written by leading technology professionals, Oracle Press books offer the most definitive,
complete, and up-to-date coverage of Oracle products and technologies available.

Oracle PL/SQL Performance


Tuning Tips & Techniques
Michael Rosenblum, Paul Dorsey
Best practices for maximizing
overall system speed, reliability,
and security
Oracle Database 12c
PL/SQL Programming
Michael McLaughlin
Develop, debug, and administer
robust database programs

Predictive Analytics
Using Oracle Data Miner
Brendan Tierney
Develop and deploy next-generation
predictive analytics applications
Master Competitive
Analytics with Oracle Endeca
Information Discovery
Helen Sun, William Smith
Automatically organize information for
search, discovery, and analysis

Available in print and eBook formats

www.OraclePressBooks.com

@OraclePress

OraclePress

Community Bulletin

Happenings in Oracle Technology Network

BY ROLAND SMART

Nominations Are Open for Oracle ACE Associate


Theres a new way to get involved in
the Oracle ACE program: become an
Oracle ACE Associate.
The Oracle ACE program highlights excellence within the global
Oracle community by recognizing individuals who have demonstrated both technical proficiency and strong credentials as community enthusiasts and advocates. Participation benefits include
access to exclusive speaking and networking opportunities at Oracle
events and third-party conferences.
The Oracle ACE program recently welcomed its first Oracle ACE
Associates, who join a thriving community of more than 420 Oracle
ACE Directors and Oracle ACEs. Download an Oracle ACE Associate
nomination form at bit.ly/ace-associate-info.

Download Oracle
Solaris Studio

OPPORTUNITIES AND
CHALLENGES IN BIG DATA
ARCHITECTURE
Everybodys talking about big data, and some of the conversations are about architecture.
Now available on the OTN ArchBeat blog, at bit.ly/
big-data-arch, a three-part podcast series explores big
data architecture with Oracle ACE Director Gwen Shapira
as well as three of the authors of Oracle Big Data Handbook
(bit.ly/big-data-handbook).
The conversation provides practical advice on several
crucial architect-related projects and responsibilities, including how to distinguish an architecture that is ready for big
data from one that is not, how to avoid some common mistakes enterprise companies make at the beginning of their
big data journey, and how to master rapid data proliferation
with technologies such as Oracle Database 12c.

Get Published
Every year millions of people
read OTNs communitymember-authored technical
articles to get the latest
insight into database application development, cloud
computing, mobile design,
and more.
Now its your turn to
inform and engage this
readership. If you have
how-to technical insight to
share with OTN members,
consider submitting a
2,000- to 3,000-word
article. Get started and
learn more about OTNs editorial process and content
requirements and guidelines
at bit.ly/otn-submissions.

12.4

Oracle Solaris Studio is a


suite of compilers and code
analysis tools that assists
developers in creating
highly optimized, robust,
and secure applications
for the Oracle Solaris and
Linux operating systems.
These tools help application
developers achieve the best
performance on Oracles
newest SPARC T-Series
and SPARC Enterprise
M-Series servers, Fujitsus
M10 servers, and Intelbased servers. Download
the Oracle Solaris Studio
12.4 beta release (SPARC,
x86, and Linux versions are
available) at bit.ly/solarisstudio-12p4.

I-HUA CHEN

JAVA 8 LAUNCH VIDEOS ON DEMAND


More than 9,000 Java community members attended the Java 8 launch event to mark
the latest iteration of the largest open standardsbased, community-driven platform.
In case you missed it, you can watch the full event replay at bit.ly/java8-resources.
On this page, you can also view videos on the newest tools and features in Java SE 8,
Java SE Embedded 8, and Java ME 8. And for those looking to dig deeper, check out the
expert tutorials on topics ranging from using lambda expressions to developing modular
service-enabled applications.
Roland Smart is vice president of social and community marketing at Oracle.
ORACLE MAGAZINE JULY/AUGUST 2014

19

20

Architect By Bob Rhubart

Building Bridges

Organizational silos thwarting IT architecture goals?


Put away the sledgehammer.

t a local Oracle user group event, I


spotted a familiar face. What are you
working on? I asked him.
For the next several minutes, I heard
about an infrastructure modernization
project he and his team were involved in.
In general, the project was on track and
proceeding with limited aspirin consumption. But there was one headache-inducing
issue that posed an obstacle to the projects
overall success: the company this person
works for has five separate development
teams, and among those teams there isnt a
great deal of cooperation.
So yes, another conversation about silos.
Organizational silos are the bane of
effective IT architecture. The goal of that
architecture, of course, is to consolidate
resources, reduce complexity, and better
align IT with the business. Ironically, the last
of those three goals may have provided the
foundation for some silos.
The tighter alignment of IT with the business can take on the qualities of a badly
tailored suitso tight that it can impede
the agility of the overall organization. From
within a silo, that constriction may not be
apparent, however. In fact, inside the silo,
things may be quite comfortable, and the
people enjoying that comfort may have little
incentive for change.
One step toward changing the silo mindset, then, is understanding what makes silos
so appealing.
We need to acknowledge the existence
of silo thinking, says Oracle ACE Director
Hajo Normann, a service-oriented architecture (SOA) and business process management expert with Accenture. I would go
even further and say we need to embrace it.
According to Normann, the silo can be
a congenial place, where people may enjoy
a sense of freedom and creativity, or at
least familiarity. Working outside the perCONNECT:
July/august 2014 Oracle.com/oraclemagazine

Inside the silo,


things may be quite
comfortable, and
the people enjoying
that comfort may
have little incentive
for change.
ceived protection of the silo can present an
imposing alternative that itself is thought
to be a restrictive, rule-bound environment.
That perception is not entirely without basis.
On the other hand, a centrally governed
software factory relies on standards, shared
best practices, and strict conventions for
names and design choices, says Normann.
So we are facing a dilemma. We are
doomed if we just demonize the silo.
Rather than tearing down silos, the better
strategy is to focus on building bridges
between them.
One should work across organizational
boundaries looking for commonalities and
seeking ways to identify win-win opportunities, advises Oracle Enterprise Architect
Eric Stephens. Dont let the org chart
hinder your collaboration.
To that end, Oracle ACE Manuel
Rosa, business manager for SOA at Link
Consulting, suggests approaching the issue
from an information perspective. We need
to identify how we can define a common
modelthe basic functional and business
concepts that usually cross different silos,
Rosa advises.
From there, its a matter of finding ways
to leverage that information so that one silo
sees the advantages of connecting to other
silos. Find a way to highlight the benefits
of such cooperation between silos, Rosa
blogs.oracle.com/archbeat

facebook.com/brhubart

says. Put reward mechanisms in place


to promote synergies and the reuse of
information and assets, and define structured procedures and processes that can
guarantee long-term cooperation without
adding disruption.
Of course, if any of this were easy, you
wouldnt have read this far. The need to
evolve beyond silos is clear, but its also
something that you, as an architect, arent
likely to accomplish on your own.
If organizational leaders want to foster
more cross-silo collaboration, incentives
need to be aligned that encourage folks to
work together, Stephens emphasizes. And
thats going to require the involvement of
those who are in a position to enact organizational changes.
This fight should be backed up by the
highest levels of the management hierarchy, confirms Normann.
Bridging those silos might be a long slog.
But somebodys got to do it.

Bob Rhubart
(bob.rhubart@oracle.com)
is manager of the
architect community
on Oracle Technology
Network, the host of the
Oracle Technology Network ArchBeat podcast
series, and the author of the ArchBeat blog
(blogs.oracle.com/archbeat).

Next Steps
READ
The Architect as Salesperson
bit.ly/1qzdMG1
The Most Important IT Career Skill
bit.ly/Q78swP
Architects, Leadership, and Influence
bit.ly/RiJc7N

twitter.com/brhubart

linkedin.com/in/bobrhubart

Peer-To-Peer by Blair Campbell

Close Encounters

Three peers extol the virtues of in-person classes and conferences.

Dominic Delmolino

Company: Agilex Technologies, a technology


solution provider serving the national security,
healthcare, and public sectors
Job title/description: Vice president of data
architecture and engineering, responsible for
reviewing and supporting Agilex projects at
customer locations
Location: Chantilly, Virginia
Oracle credentials: Oracle Exadata Certified
Implementation Specialist, with 24 years of
experience using Oracle products
Whats your favorite technique on the
job? Its deconstructing data processing
routines, whether in PL/SQL or SQL,
and refactoring them into simpler, more
efficient workflows.
Which new features in Oracle Database are
you currently finding most valuable? I always
like to see whats being added to SQL, and
how it can be used to solve harder and harder
problems. Analytic functions and recursive
SQL are particularly valuable. And obviously
the new container database architecture in
Oracle Database 12c will be very usefulboth
from a security and self-service perspective.
Whats been your favorite Oracle technology
conference experience? I could name any
ODTUG eventtheyre all great. I think its
important for DBAs and developers to talk
to each other, and ODTUG really tries to
facilitate that. I also enjoy networking with
colleagues through a local Meetup group
that I chair called Agile Data Experts DC. Its
a monthly gathering of Washington DC data
management professionals where we talk
about tips, tools, and techniques for agile
data management.

Enrique Orbegozo

Company: Self-employed
Job title/description: Independent Oracle
consultant, responsible for database upgrade
and migration, database and application tuning,
incident resolution, and design and configuration
of high-availability solutions
Location: Lima, Peru
Oracle credentials: Oracle Certified
Professional DBA (on several releases including
Oracle Database 10g and Oracle Database 11g),
with 19 years of experience using Oracle products

What role has Oracle University [OU] played


in your career? In 1996 one of my first
employers sent me from Peru to Orlando,
Florida, to take an Oracle7 performance
tuning workshop, and I learned a lot. After
that I took the complete set of courses for
Oracle8 to gain my first Oracle Certified
Professional credential. Ten years later I
became an OU instructor, which allowed me
to share my knowledge and experience with
a new generation of DBAs.
What advice do you have about getting into
database development? Its a fact of life
that things wont always work as expected
or documented, so take notes on what you
do to solve any problems you encounter and
publish those notes on your blog. This will
help you to remember those solutions, and
it will help others who are experiencing the
same or similar problems.
What green practices do you use in your DBA
work? I try to work remotely when possible.
I also recommend server consolidation,
replacing older energy-hungry servers with
fewer less-energy-demanding ones.

Osama Mustafa Hussein

Company: Gurus Solutions, a software solution


provider
Job title/description: Senior Oracle DBA,
responsible for database performance, integrity,
security, and backup and recovery
Location: Amman, Jordan
Oracle credentials: Oracle Certified
Professional (Oracle Forms Developer, Oracle
Advanced PL/SQL Developer, Oracle Solaris
10 System Administrator, Oracle Database
10g, Oracle Database 11g) and Oracle Linux
Implementation Specialist, with more than 7
years of experience using Oracle products
Whats your favorite Oracle technology or
solution area? Oracle Fusion Middleware
because it includes Oracle technologies that
can help any company build end-to-end
solutions. I like that it is a fully integrated
family of products that can be delivered into
different layers, with each layer offering a different experience. Whether youre focused on
integration, automating processes, security,
or compliance, Oracle Fusion Middleware has
something for everyone.
Whats your go-to Oracle reference book? I
have lots of Oracle books and most of them
are great. Id have to say Expert Oracle RAC 12c
by Syed Jaffar Hussain, Tariq Farooq, Riyaj
Shamsudeen, and Kai Yu, and Expert Oracle
Enterprise Manager 12c by Kellyn PotVin and
several coauthors [both Apress, 2013].
Whats been your favorite Oracle technology
conference experience? It was this past
December at Tech13, the UKOUG [UK Oracle
User Group] conference. I finally got to meet
many of my online friends and colleagues in
person, and we had an amazing time.

Learn more about the Oracle ACE program at oracle.com/technetwork/community/oracle-ace.


oracle magazine July/august 2014

21

ADVERTISING SUPPLEMENT

Delivering
at the Speed
of Business
Today, companies need to manage huge amounts of data to develop
insights and actionable, valuable informationand to enable business
decision makers to operate with solid information and better foresight.
At the same time, they need to process this growing volume of data
faster than ever in order to stay ahead of the competition and a
constantly changing business environment. In an increasingly real-time
business world, the speed and quality of information are both key.
These trends are putting a strain on traditional IT
infrastructures, as companies look for better ways to
provide enterprise applications and analytics to the
business and pursue initiatives such as big data and
data center consolidation. It is becoming clear that
incremental modifcations are not enough to keep up.
IT groups need innovative approaches that will enable
them to reshape the infrastructure to provide the
performance and scalability needed to keep up with
the ever-evolving demands of the business.

A Leap Forward in Servers


The Fujitsu M10 server line is designed to be at the
heart of that type of infrastructure. Drawing on Fujitsus
heritage of supercomputingand its deep partnership
with Oracle that is focused on SPARC and missioncritical business computingthis server line offers the

biggest technology advancement for SPARC servers in


more than a decade.
The Fujitsu M10 servers are built on the advanced
SPARC64 X processor and now the new SPARC64 X+
processor. These processors include Software-on-Chip
technology created through the close collaboration
of Fujitsu and Oracle. Software-on-Chip moves some
routines from software programs to the circuitry of
the chip, increasing the speed of those routines. The
current Fujitsu M10 hardware and Oracle Solaris 11
software work together with this feature, and with
Oracle Database 12c plus patch, companies may
see an increase in performance of up to 25%, due to
Software-on-Chip.
The Fujitsu M10 also uses an in-memory processing concept, which means that data is accessed
within memory in just nano-seconds, rather than the

milliseconds needed for traditional


access to storage and disks. Here
again, hardware and software can
work closely together for a signifcant increase in performance.
The Fujitsu M10 includes other
innovative technologies that help
drive high performance. For example, Fujitsus advanced High Speed
Interconnect transmission technology
is used to connect CPUs, resulting in
a very fast 14.5 Gbps transmission
rate. In addition, a unique Liquid
Loop Cooling mechanism can cool hot
spots effectively, allowing components such as the CPU and memory
to be located more closely to one
another. This close placement and
resulting compute density has helped
the Fujitsu M10 achieve one-ffth
lower memory latency, compared to
previous servers.
The Payoff in Performance
Together, these various Fujitsu
technologies add up to dramatic
increases in performance. In the frst
six months following its release, the
Fujitsu M10 set 14 world records in
industry standard benchmark tests,
including CPU-specifc tests, such
as SPEC CPU, and application-level
tests, such as Java and SAP.
A look at a few of these
benchmarks illustrates the level of
performance improvement offered
by these servers: For example, in
the SPECint_rate2006 benchmark,
which looks at CPU performance and
throughput, the Fujitsu M10 server
provided twice the performance of
the previous record-holding server.
And in the STREAM Triad benchmark,
which looks at memory access and
throughput, it was fve times faster
than the previous record holder.
The SPECjbb2013 benchmark is designed to measure Java

application performance including


response performance, which is
essential for real-time processing.
Fujitsu M10 with a 16-CPU confguration achieved the worlds highest
performance on both critical-jOPS(Java Operations Per Second) and
max-jOPS.
The servers ability to deliver
high performance has been
demonstrated outside the lab in real
world usage, as well. For example,
a telecom company that used the
Fujitsu M10 in a server consolidation
effort achieved a 3X improvement
in performance. And a printing
company that migrated from a
UNIX platform to the Fujitsu server
saw a 2X improvement in response
time and a 3X improvement in
batch processing time. [See sidebar,
Power for Global Expansion.]

Since its release,


the Fujitsu M10 has
set 14 world records
in industry standard
benchmark tests.
Providing an
Agile IT Foundation
Business does not hold still,
and that means that IT needs to
constantly adjust and adapt to
requirements that can change
quicklyand often, unpredictably.
Typically, this means expanding
the infrastructure in step with
business growth, and doing so
cost-effectively.
The Fujitsu M10 addresses
this need with its innovative core

ADVERTISING SUPPLEMENT

activation feature. The SPARC64 X and the SPARC64 X+ CPU


have 16 cores. When a company purchases a lower-end
Fujitsu M10-1 with one CPU, all 16 physical CPU cores are
already included in the box. They can be activated and
paid for on an as-needed basis, making it easy to quickly
scale from 2 to 16 cores in increments of two, without
having to add any hardware. This core activation concept
applies across the Fujitsu M10 product line, up to the
largest 64-CPU modular models. In short, core activation
may allow companies to license only what they need at
the core level, and keep computing power in step with
changing demandsan approach that is highly costeffective.
Working hand-in-hand with core activation, the
Fujitsu M10 provides
building block capabilities
that enable simple,
modular scalability. For
example, if a company
reaches the capacity
limits with all 64 CPU
cores of a Fujitsu M10-4S
activated, it can quickly
add a second 2- or 4-socket box to the frst without
interrupting the system, and then grow that new box
through the core activation process, as needed. This
can be continued up to a maximum confguration of
16 boxes with 1,024 active cores and 32 terabytes of
memory.
With these features, the Fujitsu M10 servers provide
tremendous fexibility and expandability. This enables
the IT organization to not only optimize its investment
when it frst implements the system, but to keep
optimizing it over time. It essentially provides a pay
as you go modeland helps avoid the all-too-common
problem of having to overbuy and ending up with

The Fujitsu M10


allows companies
to keep computing
power in step with
changing demands.

equipment that is using power but not contributing to


the bottom line.
In addition to high performance and fexibility, the
Fujitsu M10 server design builds on Fujitsus history of
providing mainframe-class reliability, availability and
serviceability technology. Its architecture includes many
features that help ensure that business operations are not
interrupted and unscheduled downtime is not required to
deal with failing hardware or software components. For
example, redundant interconnect paths help minimize
the risk of errors and data corruption. Predictive selfhealing capabilities enable the operating system to work
with the server hardware to predict component failures
and minimize the impact of issues before they affect the
systems operation.
Fujitsu will keep delivering more with its Fujitsu M10
server line. This means continuing to expand Softwareon-Chip capabilities and providing features that further
increase reliability, availability and serviceability. It also
means working with Oracle on innovative approaches
to big data and other enterprise computing needs
and giving customers the technologies they need to be
agile and responsive to successfully pursue todays fastmoving business opportunities.

For More Information


To fnd out more about the Fujitsu M10 server, please
see these related documents:
Accelerate and Consolidate the Data Center
Consolidate with Fujitsu M10 Servers
Accelerate Database Performance with
Fujitsu M10 Servers
Please visit our web site to view the full DNP case study.
Additional information about the Fujitsu M10 server line
can be found at www.fujitsu.com/sparc.

SPEC (The Standard Performance Evaluation Corporation), SPECint and SPECjbb are registered trademarks of Standard Performance Evaluation Corporation(SPEC) in the US and other countries.Details and the latest information of this benchmark can be found at www.spec.org. Published as SPARC M10.
Fujitsu M10 is sold as SPARC M10 by Fujitsu in Japan. Fujitsu M10 and SPARC M10 are identical products.
World-record SPECint_rate2006 result: Comparison based upon SPECint_rate2006 result except Supercomputers: 23,800 on a SPARC M10-4S server with 64
SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1, Oracle Solaris Studio 12.3, 1/13 Platform Specifc Enhancement. Details and the latest information on this
benchmark can be found at www.spec.org.
World-record STREAM result: Comparison based upon STREAM Triad result except Supercomputers: 4,002 GB/s on a SPARC M10-4S server with 64 SPARC64 X
(3.0 GHz) processors. Details and the latest information on this benchmark can be found at www.cs.virginia.edu/stream/.
World-record SPECjbb2013 results: 16 CPU confguration: 308,936 max-jOPS and 168,127 critical-jOPS on a SPARC M10-4S server with 16 SPARC64 X (3.0 GHz)
processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. 4 CPU confguration: 83,909 max-jOPS and 50,562 critical-jOPS on
a SPARC M10-4S server with 4 SPARC64 X (3.0 GHz) processors, Oracle Solaris 11.1 SRU 6.4, Java HotSpot 64-Bit Server VM, version 1.7.0_17. Details and the
latest information on this benchmark can be found at www.spec.org.

Power for
Global Expansion

ai Nippon Printing Co., Ltd. (DNP) is one of the


worlds largest printing companies, but its business
extends over a wide variety of felds, including
Information Communication (e.g. publication printings
and digital signage), Lifestyle and Industrial Supplies
(e.g. packaging and lifestyle materials) and Electronics
(e.g. display components and electronic devices). DNP
has been actively expanding globally and now has 26
sales locations and 13 manufacturing plants around the
world. The processing for DNP exports is done primarily
through its central overseas business system. The previous
system had been constructed based on HP-UX, but it had

stable service for information


systems, from planning
and design to construction,
operation, and maintenance.
When we investigated
Fujitsu M10, the key points
considered were not just its
high performance, but its operational stability inherited
from mainframe reliability, the fact that it embraces the
future potential and long-term support of Oracle Solaris,
and its compatibility with Oracle Database. Specifcally
when combined with Oracle Database 11g, Fujitsu
M10-1 is able to deliver one-stopshop support for our business and
signifcantly reduce maintenance
costs.

For the new system confguration,


Fujitsu M10-1 was used as the core
database server. Fujitsu M10 and
Fujitsu made sure system construction
could be completed in a short amount
of time, says Mr. Shohei Yamashita,
Third Work System Dept., Work System
Tomoyasu Nagata
Kazuo Kurosawa
Shohei Yamashita
Headquarters, DNP Information
Systems. The database server works in conjunction with
limitations in terms of expandability. For this reason,
the application server and the backup server. Furthermore,
DNP elected to replace the system using Fujitsu M10
Fujitsus one-stop-shop support delivers a quicker
servers.
resolution in the event of any issues.
DNP needed a high performance system that could handle
After installation, the databases response performance
increases in the amount of overseas business job data
doubled. Batch processing performance has tripled, thus
and additional users, and evaluated multiple vendors.
greatly reducing overall processing time. Total operaWe had been paying close attention to information about
tional costs have been cut by nearly 35%, with software
new, high-performance servers and [Fujitsu M10s] highmaintenance costs kept down, and operational effciency
performance, based on supercomputer technology, was a
increased by installing a backup server.
step above conventional servers, says Tomoyasu Nagata,
Regarding future prospects, Mr. Nagata says, Were
Section Head of the Overseas System Section at DNP. We
planning to add more functionality leveraging CPU Core
confrmed the fgures backing Fujitsu M10 and it quickly
Activation, which will allow us to fexibly expand the
became a very suitable candidate.
system as needed. With this function, we can scale up
The fnal selection was done by DNP Information Systems
when our business is ready while keeping initial costs
Co., Ltd., which manages information systems for the
down. We look forward to working with Fujitsu as they
DNP Group. Mr. Kazuo Kurosawa, Department Head at
continue to support us through leading-edge solutions
DNP Information Systems, stated, Our role is to provide a
like Fujitsu M10 technology for big data processing.

SUCCESS ON

SPARC

The latest SPARC chips and


systems are at the center of better
business processes.
BY PHILIP J. GILL

erver consolidation projects are designed


to cut costs and improve data center
performance, but companies deploying
Oracles SPARC servers, including the SPARC
T5 and SPARC M6 servers, are getting
additional benefits as well. Whether its a
hardware refresh or a complete revamp of IT
infrastructure, these companies are finding
that this new generation of SPARC servers
combined with the power and dependability of
the Oracle Solaris operating systemreduces
operating costs; improves business operations;
expands capacity; adds capability; and, in one
case at least, even recruits top IT talent.

Art Credit

28

With the new SPARC systems,


some applications run up to
10 times faster.
N. Ravishanker, Chief Information Officer, Tata Sky
[business-to-consumer] organization in scalability and reliability.
We needed a hardware refresh that added capacity to support
our growing subscriber base, says Ravishanker. We also needed to
set up a disaster recovery [DR] site to maintain the 24/7 reliability
and availability our customers have come to expect.
Tata Sky has been using SPARC servers running the Oracle Solaris
operating system since the companys inceptionit opened for
business in 2006 with SPARC-based Sun Fire E20K serversand it
looked to new SPARC servers to upgrade and enhance its IT infrastructure, beginning in 2012 with new SPARC Enterprise M9000
and SPARC T4 servers from Oracle and continuing in 2013 with
Oracles next-generation SPARC T5 and SPARC M5 servers.

According to N. Ravishanker, chief information officer at Tata Sky, SPARC systems have improved performance, cut costs, simplified operations, and improved
reliability and availability for Tata Skys core business-critical applications.

July/August 2014 Oracle.com/oraclemagazine

Namas Bhojani

Seamless Reliability
No matter how they are deliveredairwaves, cable, or satellite
broadcast television services demand 24/7 operations that operate
reliably and seamlessly, at the touch of a button or the flick of a
switch. With a subscriber base of more than 15 million households,
Mumbai, Indiabased Tata Sky is the leading provider of satellitebased, direct-to-home broadcast television services in India.
We offer a wide variety of television services, from standarddefinition and high-definition channels to video-on-demand,
mobile TV, movies, and personal video recordersboth standard
and high definitionas well as interactive content including games,
educational applications, and more, says N. Ravishanker, chief
information officer at Tata Sky, a joint venture between Indian conglomerate Tata Group and the US-based mass-media firm STAR TV.
In 2012, Ravishanker explains, the firm was looking to add both
capacity and capability to better serve its growing customer base.
There is excellent opportunity for growth in this market, especially
since there is so much churn in cable television, he says. Since
this is a commodity product, we face challenges similar to every B2C

29

Multithreaded
Under their metal exteriors, Oracles nextgeneration SPARC T5 and SPARC M6 servers look
alike, sharing common components, terabytes
of memory and storage, and more. What distinguishes one from the other is how they are put
together, and that, in turn, is a matter of scale.
The two systems were designed to handle
the same tasks, but with different design
approaches, says Renato Ribeiro, director of
product management for SPARC systems at
Oracle. SPARC T5 servers scale up to considerable capacity, while using a fraction of a server
rack. The SPARC M6 server supports four times
the capacity of the largest SPARC T5 system.
The design and capacity of the SPARC M6
server delivers additional benefits. SPARC M6
servers include more component redundancy

and therefore greater availability and serviceability, says Ribeiro. As a result, you can consolidate more applications and deploy more virtual
machines, while achieving better performance
through the highly scalable design.
The design differences between SPARC T5
and SPARC M6 servers are obvious in the way the
systems can be configured. The SPARC T5 system
begins with a blade server with a single processor
and 256 GB of memory and tops out with a server
with 8 processors and 4 TB of memory.
The SPARC M6, introduced in September 2013,
picks up where the SPARC T5 leaves off, and is
Oracles newest, most powerful, and most scalable SPARC server to date. The top-of-the-line
SPARC M6-32 has up to 32 12-core 3.6 MHz SPARC
processors and up to 32 TB of main memory. Each

of those SPARC chips has 12 corestwice the


number of cores as its predecessor, the SPARC
M5and each core can run 8 threads simultaneously, allowing for 3,072 threads running in the
top-of-the line systems 384 cores. The SPARC
M6-32 offers enough power to run the largest,
most demanding applications in use today, all inmemory, says Ribeiro.
The new SPARC T5 and SPARC M6 also run
counter to the conventional wisdom about largescale multiprocessor systemsthey offer nearlinear pricing from a two-processor SPARC T5-2
server to the 32-processor, multiterabyte SPARC
M6-32 server. Although they scale to a very high
number of processors and many terabytes of
memory, users dont pay a premium for that performance on the bigger package, Ribeiro says.

According to Ravishanker, these systems have improved perforT5 and SPARC M6 systems have so much power and capability that
mance, cut costs, simplified operations, and improved reliability
businesses today will typically carve these servers up into multiple
and availability for the companys core business-critical applicavirtual machines and deploy multiple different applications on a
tions, including its billing, smartcard management, electronic
single system. Users not only get much higher performance, they
voucher distribution, and online customer ordering systems.
get better return on their investment.
With the new SPARC systems, some applications run up to
10 times faster, he says. An application that ran at 4 seconds
Where Credit Is Due
per transaction now performs at 0.4 seconds per transaction,
Performance is important in all industriesand all economies. Turkey
and that provides near-instantaneous response times to our
has a rapidly growing private sector whose growth is fueled in large
customers online requests, such as ordering movies or new
part by the availability of consumer credit.
television channels.
Although credit card penetration is high
The company also has established its
in Turkey, the demand for consumer credit
snapshots
first DR site, located in the city of Pune,
continues to grow, explains Sinan zer,
Tata
Sky
India. With the new data center, should
executive vice president of infrastructure
tatasky.com
we experience a full-scale shutdown at our
operations and security at Yapi Kredi Bank.
Location: Mumbai, India
primary production site, we can be back up
Yapi Kredi was founded in 1944 as Turkeys
Industry: Media and entertainment
and running in less than 90 minutes, says
first private bank. It is the nations fourthEmployees: 1,500
Ravishanker. Powered by our new SPARC
largest private bank and was the first to
Oracle products: SPARC T4-2 and SPARC
T4-4 servers; SPARC T5-2 and SPARC
servers, the disaster recovery site provides
introduce consumer credit cards in 1991.
T5-4 servers; SPARC M5-32 server; SPARC
our customers with greater service reliTo keep up with demand, Yapi Kredi
Enterprise M9000; Oracle Solaris 11 with
ability and availability.
is currently migrating its credit card proOracle Solaris Zones Preflight System
We slashed operating costs 20 percent,
cessing from legacy mainframes and nonChecker; Oracle Solaris Cluster (for high
including licensing, reduced data center floor
SPARC UNIX servers, consolidating that
availability); Oracle Database 11g; Oracle
Real Application Clusters; Oracle Enterprise
space requirements, improved energy effiworkload on larger, more-powerful, and
Manager; Oracle VM 3.0; Siebel Customer
ciency, and consolidated 61 legacy systems at
cost-effective SPARC T5 series servers from
Relationship Management; Oracle Active
no additional cost, thanks to SPARCs built-in
Oracle running the Oracle Solaris 10 operData Guard; Oracle Advanced Customer
advanced virtualization technologies and
ating system and Oracle VM 3.0.
Support Services
linear scalability, Ravishanker continues.
Were consolidating our legacy servers
Yapi Kredi
We have been able to do all this and mainonto new SPARC T5 servers, using virtualyapikredi.com.tr
tain service levels with less staff.
ization to bring 80 hosts down to 50 hosts
Location: Istanbul, Turkey
Such an array of benefits is common
running on 10 machines, says zer. When
Industry: Financial services
among companies deploying SPARC T5 and
were finished, 65 percent of all our proEmployees: 14,865
SPARC M6 servers, says Masood Heydari,
cessing will be done on SPARC servers.
Oracle products: SPARC T5-4, SPARC
T4-4, SPARC T4-2, and SPARC T4-1 servers;
senior vice president of SPARC systems for
These SPARC systems will be running
SPARC Enterprise M9000; Oracle Solaris 10;
the systems group at Oracle.
not just consumer credit card operations
Oracle Database 11g and Oracle Database 10g;
Organizations used to map one applicabut also retail banking, merchant card and
Oracle GoldenGate; Oracle Internet Directory
tion to one server, explains Heydari. SPARC
banking, risk management, treasury, and

oracle magazine July/August 2014

Server consolidation onto SPARC servers has reduced the number of physical servers and virtual hosts at Yapi Kredi. Were consolidating our legacy servers
onto new SPARC T5 servers, using virtualization to bring 80 hosts down to 50 hosts running on 10 machines, says Sinan zer (left), executive vice president of
infrastructure operations and security at Yapi Kredi Bank.

System-Engineered
In April 2014, Oracle introduced
Oracle Solaris 11.2, an enterprise
cloud platform that integrates a full
OpenStack distribution, softwaredefined networking (SDN), clustering, and virtualization in a proven
enterprise-class operating system.
OpenStack functionality in
Oracle Solaris 11.2 environments
supports a standard self-service
environment for sharing and
managing compute, network, and
storage resources, and it enables
the rapid deployment of virtual
machines. Application-driven
SDN, from application to storage,
ensures that service-level agreements are maintained within a

data center or cloud environment.


Oracle Solaris Zones provide zerooverhead virtual environments,
and kernel zones deliver OS independence and isolation.
John Fowler, executive vice
president for systems at Oracle,
notes, By engineering the OS, virtualization, SDN, and OpenStack
together, Oracle Solaris 11.2
provides a complete cloud platform, for simple, efficient, secure,
compliant, and open enterprise
cloud deployments. Its designed
to help customers accelerate their
businesses and capitalize on the
potential of cloud computing
while reducing cost.

July/August 2014 Oracle.com/oraclemagazine

More to Come
Yapi Kredis IT overhaul isnt done yet; there are more SPARC
systems to come.
Later this year, we will be installing a SPARC M6-32 server that
will be used to move the rest of our core banking applications to
SPARC and Oracle Solaris, says zer. We are also rewriting those
applications on the Java platform. Once that is done, all of our core
applications will be running on SPARC and Oracle Solaris.
Besides the cost, reliability, and performance benefits, zer says
Yapi Kredis use of open platforms, SPARC servers, and Oracle Solaris
has an added advantage: It helps the bank attract top IT talent.
Its getting very hard to find sufficient talent for mainframes,
says zer. The younger generation only wants to work with the
latest technologythat means systems such as SPARC and
Oracle Solaris.

Philip J. Gill is a San Diego, Californiabased freelance writer and editor.


Next Steps
LEARN more about
SPARC servers
oracle.com/us/products/servers-storage/servers/sparc
Oracle Solaris
oracle.com/technetwork/server-storage/solaris11
Oracle Optimized Solutions
oracle.com/us/solutions/oos
OpenStack
bit.ly/1hbVSsH

Ali Kabas/Getty Images

other core banking services, zer notes.


Yapi Kredi chose SPARC systems because it has been committed
to the SPARC architecture and Oracle Solaris, the leading enterprise
UNIX operating system, for some time. The bank has been using
Oracle Solaris for 15 years, says zer. Years ago, we moved many of
our core banking applications to Oracle Solaris.
When the current SPARC T5 server project is completed later
this year, the bank expects significant savings. The new SPARC
systems offer one-third lower maintenance costs compared to the
mainframes they are replacing, says zer. Electricity costs will
decrease to less than a quarter of current costs, and so will our
cooling costs. Because of this and other cost savings, we expect a
payback period of less than two years.

2.6x Better

Performance
IBMs Power7+ AIX

Oracles SPARC T5

Performance:

Performance:

Server Cost:

Server Cost:

$805,000

$299,000

10,902

27,843

Industry Standard Java Middleware


SPECjEnterprise2010 Performance Benchmark

SPEC and the benchmark name SPECjEnterprise are registered trademarks of the Standard Performance Evaluation Corporation.
Virtualized results on spec.org as of 5/21/2013 for application and database on one 8-chip server. SPARC T5-8, 27,843.57 SPECjEnterprise2010 EjOPS, pricing on
oracle.com; IBM Power 780, 10,902.30 SPECjEnterprise2010 EjOPS, pricing on ibm.com. Server cost excludes storage and software. Details: oracle.com/sparc-t5.
Copyright 2013, Oracle and/or its affiliates. All rights reserved.

TOGETHER ORACLE AND


NATIONAL GEOGRAPHIC EDUCATION ARE

Leading the Way


in Ocean Education
and Marine Research

National Geographic Education supports the


mission of the National Geographic Society to
inspire people to care about the planet by
creating compelling educational materials for
young people and the adults who teach them.
NG Education provides unique learning
experiences to educators and advocates for
improved education in geography, the
environmental sciences, and other disciplines
that are critical to understanding our world.
With support from Oracle, National Geographic
Education is engaged in a major project to
develop teacher leaders in marine ecology and
create materials about ocean science and
geography for students, families, the ocean
recreation community, and the general public.

Support our work today.


Visit nationalgeographic.org/education.

National Geographic is a 501(c)(3) organization. PHOTOGRAPH BY ENRIC SALA

Java Developer

ORACLE ADF By Frank Nimphius

Oracle Application Development Framework, Oracle Jdeveloper

Region Extreme:
Multi-Task-Flow Binding

Render an unknown number of task flows in page or


dashboard regions.

racle Application Development


Framework (Oracle ADF) regions
display the contents of bounded task flows
in designated areas on a page. Each region
uses a special binding configurationthe
task flow bindingin the Executables
section of the parent pages PageDef.xml
file to populate the region content with data
from the Oracle ADF binding layer.
In use cases such as analytic dashboards, the contents of an unknown
number of task flows must be displayed
as regions at runtime. However, Oracle
ADF regions cannot be created at runtime.
Multi-task-flow binding in Oracle JDeveloper
11g Release 2 and Oracle JDeveloper 12c
addresses this limitation. Using a hands-on
exercise, this article shows developers how
to use multi-task-flow binding in Oracle
ADF applications. Parts of the sample
application have been prebuilt to give you
a head start. In addition to performing
the hands-on steps, you can learn more by
examining the source files.
To begin, download the sample application at bit.ly/1lZ4nXw and unzip the o44adf2197040.zip file to a local folder on your
computer. Do not use spaces in the folder
name. Ensure that youre using the studio
edition of Oracle JDeveloper 12c (12.1.2.0.0)
or later, available as a free download on
Oracle Technology Network.

Static, Dynamic, Multiple


The multi-task-flow binding feature is a
combination of the static and dynamic
task-flow-binding types used in Oracle
JDeveloper to associate region content with
the Oracle ADF binding layer and lifecycle.
A static region uses a dedicated task flow
binding added to the PageDef.xml file of the
parent page to associate the region content

with a bounded task flow. The task flow


binding contains a static reference
to the bounded task flow to be exposed in
the region.
Dynamic regions also use a dedicated
task flow binding, which uses a property
reference to a managed bean in view scope
to provide the task flow reference information. The managed bean is accessible
from Java code and through expression
language (EL). The task flow reference
returned by the managed bean property
can be changed at runtime for the region
to display the contents of different task
flows sequentially.
In multi-task-flow binding, the multi
TaskFlow binding element provides the
region component model for multiple
Oracle ADF region instances that are
created at runtime with the af:forEach
loop tag of the Oracle ADF Faces feature
of Oracle ADF. Each region obtains its
bounded task flow configuration reference
from a managed bean. As with dynamic
regions, the content of the managed
bean can be changed at runtime, thereby

enabling the display at runtime of an


unknown-at-design-time number of task
flows in regions. The region binding is
appropriate for uses such as dashboards
that display varying numbers of bounded
task flows on a page.
Sample Application Overview
The sample application is a dynamic dashboard that displays information for departments the user selects, as shown in Figure 1.
Each department is exposed in a region with
a read-only view shown first. An Edit button
navigates the bounded task flow associated
with each region to an edit page so the user
can change the department data.
The user selects which departments
to display on the dashboard by using the
select-many checkboxes on the right-hand
side and clicking the Update Dashboard
button. The Reset Dashboard button sets
the dashboard to the none-selected state
and shows a single panel with instructions
for the user.
The application uses Oracle ADF adaptive bindings to create multiple instances of

Figure 1: Sample application

oracle magazine July/august 2014

33

34

Oracle adf

a bounded task flow that share the Oracle


ADF data control with the parent view for
best performance. With this technique, the
sample application can use a single task
flow definition to simulate an unknown
number of Oracle ADF regions to be displayed in an Oracle ADF view.
Sample Application Architecture
Figure 2 illustrates the architecture of
the sample application. A managed bean
instance holds a list of bounded task flow
configurations that specify the number of
region instances and the department information to display. The bounded task flow
takes two input parameters and creates a
new view object instance on the server to
display the department data, identified by
department ID.
The Home.jsf file contains a panel
dashboard component that shows a variable list of Oracle ADF regions based
on the configuration in the managed bean.
The page accesses the task flow definition
in the bean indirectly through the multitask-flow binding added to the Oracle ADF
pages binding file, the PageDef.xml file.
An af:forEach iterator on the page references the task flow binding and creates
an instance of af:region for each task
flow configuration.
Getting Ready
The RegionExtreme workspace in the sample
application download contains a completed
Oracle ADF Business Components model
(Oracle ADF Business Components is a
feature of Oracle ADF) and a view-controller
project with prebuilt artifacts such as
managed beans, page fragments, and a
bounded task flow.
To prepare this workspace for your environment, you must configure the database
connection that the workspace is dependent
on to access your HR database schema:
1. In Oracle JDeveloper, select File -> Open,
and navigate to the directory containing
the unpacked zip file content.
2. Open the oramag070814/
RegionExtreme folder, and select the
RegionExtrem.jws file. Click Open to load
the workspace.
3. Select Window -> Database

July/august 2014 Oracle.com/oraclemagazine

Managed bean

Holds configuration
instances

Re
ad

st

a sk

Home.jsf
af:forEach
af:region

flo

wi

ns t

an c

Provides task flow


definitions

Bounded task flow

es

Oracle ADF binding (PageDef)


Multi-task-flow binding

Figure 2: Sample application architecture

-> Databases, and expand the


RegionExtreme node to display the contained hrconn node.
4. Right-click hrconn, and select Properties
from the menu. Edit the database connection information to work with your
setup. Test the changes, and click OK
when the connection succeeds.
Next, start the Oracle WebLogic Server
instance thats integrated with Oracle
JDeveloper, by selecting Run -> Start
Server Instance.
If you are running the integrated Oracle
WebLogic Server for the first time, a Create
Default Domain dialog box will open. Create
a password for the default Oracle WebLogic
Server domain. To ensure that the integrated Oracle WebLogic Server listens for
the localhost and the IP address of your
computer, do not select an address from
Listen Address.
Click OK to save the changes and
to create and configure the default
domain for Oracle ADF. Oracle
WebLogic Server creates a default
domain and then starts the server.
Wait for the IntegratedWebLogicServer
started. message on the Running:
IntegratedWebLogicServer panel before
proceeding to the steps in the next section.
Creating the Bounded Task Flow
The sample application uses a single parameterized bounded task flow to populate
all region instances with different data
content. For this technique to work correctly, the Oracle ADF bindings used in the

task flow must be made configurable with


the adaptive bindings technique:
5. With the RegionExtreme workspace
open in Oracle JDeveloper, click the
Applications tab.
6. Expand the ViewController -> Web
Content -> WEB-INF -> btf node, and
double-click the departments-flow.xml
file to open the task flow diagram.
7. On the Applications tab, expand
the Data Controls panel and its
AppModuleDataControl node.
8. Drag the createNewDepartmentVO
Instance() method entry onto the task
flow diagram editor.
9. In the Edit Action Binding dialog box,
enter #{pageFlowScope.departments
TaskFlowBean.departmentsId} as the
departmentId value and #{pageFlow
Scope.departmentsTaskFlowBean
.voinstance} as the instanceName
value. Click OK. A new method activity is
created for you.
10. Choose Window -> Components to open
the Components window.
11. Drag the View activity from the
Components section of the Components
window onto the diagram editor. Change
the name of the view activity from view1
to Browse.
12. Repeat step 11, but this time name the
view activity Edit.
13. In sequence, click Control Flow Case in
the Components window, the method
call activity in the diagram, and the
Browse view activity in the diagram
to create a navigation case. Keep the

35

default name for the navigation case.


14. Create a navigation case from the Browse
view to the Edit view, and enter edit as
the name of the navigation case.
15. Create a navigation case from the Edit
view activity to the Browse view activity,
and name it return.
16. Save your work.
What you just did: The method call activity
you created references a method in the
Oracle ADF Business Components application module that creates new instances
of the DepartmentsView view object. The
name of the new instance is saved in a prebuilt managed bean property. At runtime,
the navigation cases you created are used to
navigate between the department read-only
view and the editable form.
17. In the task flow diagram editor, doubleclick the Browse view activity to open the
Create ADF Page Fragment dialog box.
18. Click the magnifying glass icon next to
the Directory field.
19. In the Choose Directory dialog box, click
the Create new subdirectory icon next
to the Location field and create a new
btf folder under the public_html folder.
Under the btf folder you just created,
create a departments folder. Click Select.
20. Ensure that the Facelets and Create Blank
Page options are selected in the Create
ADF Page Fragment dialog box, and click
OK to create the new page fragment.
21. With the Browse page open in the visual
editor, expand the Data Controls panel
on the Applications tab and click the
allDepartments collection.
22. Drag the allDepartments collection to the
page, and drop it as an Oracle ADF Form.
23. In the Create Form dialog box, click the
Read-Only Form and Submit checkboxes
to create a read-only form and a button
(which youll configure next) for navigating to the editable page. Click OK.
24. Click Submit in the visual editor, and
choose Window -> Properties.
25. In the Properties inspector, change the
Text property value to Edit and select
edit as the value of the Action property.
26. Click the Bindings tab at the bottom of
the visual editor. In the bindings editor,
select allDepartmentsIterator in the
Executables section.

27. In the Properties inspector, change the


value of the Binds property to ${page
FlowScope.departmentsTaskFlow
Bean.voinstance}. Do not be concerned that a border now surrounds the
Binds field.
28. Save your work.
What you just did: You created a read-only
view to display department data in the
regions. Because the sample application
uses a single bounded task flow definition
to display department information for multiple regions, you used adaptive binding in
the allDepartmentsIterator to dynamically
determine which ViewObject instance to
query data from.
29. Click the departments-flow.xml tab
to switch back to the task flow
diagram editor.
30. Double-click the Edit view activity, and
use the magnifying glass icon next to the
Directory field to select the departments
folder in public_html/btf. Click Select,
and then click OK.
31. Drag the allDepartments collection from
the Applications tabs Data Controls
panel to the page, and drop it on the Edit
page as an ADF Form.
32. In the Create Form dialog box, click the
ADF Input Text w/Label value next to
the DepartmentId value binding entry
and change it to ADF Output Text w/
Label. Then click the Submit checkbox
and OK.
33. Click Submit in the visual editor
for the Edit page, and choose
Window -> Structure.
34. Right-click Submit in the Structure
window, and choose Surround With.
35. In the Surround With dialog box, select
Panel Group Layout and click OK.
36. In the Structure window, right-click
af:panelGroupLayout and select Insert
Inside Panel Group -> Spacer.
37. Repeat step 36, except select Button
instead of Spacer.
38. In the visual editor, click the Submit
button and change its Action property
to #{backingBeanScope.edit
DepartmentBacking.onSubmit} in the
Properties inspector.
39. Click the button 1 button. Using the
Properties inspector, change the Text

attribute to Cancel, the Action attribute


to return, and the Immediate attribute
to true.
40. Save your work.
41. Select the Bindings tab at the bottom of
the visual editor for the Edit page.
42. In the bindings editor, select
allDepartmentsIterator in the
Executables section.
43. In the Properties inspector, change the
value of the Binds property to ${page
FlowScope.departmentsTaskFlow
Bean.voinstance}.
44. Save your work, and close all open page
tabs. The bounded task flow is complete.
What you just did: You created an Oracle
ADF bound input form in which users can
edit department information in a region at
runtime. The DepartmentId field in the form
is configured to be read-only, and the Submit
button action property references a prebuilt
managed bean method to commit data
changes before returning to the browse page.
The Cancel button uses immediate=true
so the Oracle ADF model is not updated with
any changed data when the button is clicked.
Like the browse page, the edit page uses
adaptive binding to connect to the serverside ViewObject instance.
Creating the Multi-Task-Flow
Binding
Now create and configure the multi-taskflow binding:
45. On the Applications tab, double-click
the Home.jsf file in the ViewController
-> Web Content -> utf node to open the
page in the visual editor.
46. Click the Bindings tab at the bottom of
the visual editor.
47. In the binding editor, click the green plus
(+) icon in the Executables header.
48. In the Insert Item dialog box, change the
selection from Generic Bindings to ADF
Task Flow Bindings.
49. Select the multiTaskFlow item, and
click OK.
50. In the Insert multiTaskFlow dialog box,
add mtb1 as the value of the id attribute
and ${viewScope.multiTaskFlowList
Bean.multiTaskFlowBindings} as the
value of the taskFlowList attribute. (You
must use these exact values for the con-

oracle magazine July/august 2014

36

Oracle adf

figuration to work with the prebuilt code


the workspace uses.) Click OK.
51. Save your work.
What you just did: You created and configured the multi-task-flow binding in the ADF
PageDef file of the Home.jsf page. The task
flow binding references the multiTaskFlowBindings property in the multiTaskFlowList
Bean managed bean to obtain the list of task
flows to render in regions.
The managed bean reference is required
immediately when the page renders, which
is why the EL expression used starts with a $
character instead of the # deferral prefix.
The referenced managed bean is defined
in the MultiTaskFlowListBean.java file,
located in the oramag.sample.seven.eight
.fourteen.view.utf.beans package hierarchy in the ViewController -> Application
Sources folder. The managed bean class is
documented with Java comments to help
you understand how the multi-task-flow
binding implementation works and how
EL can be used in Java to provide individual
input parameters for each task flow.
Building the Region Dashboard
Next (with the help of prebuilt code segments), add an af:forEach component that
adds the task flow binding instances defined
in the multi-task-flow binding as regions to
the Home.jsf page:
52. On the Applications tab, double-click
the forEachCodeSnippet.txt file in
the ViewController -> Web Content ->
utf node.
53. Select all of the files contents (Ctrl+A),
and copy them to the clipboard (Ctrl+C).
54. Switch back to the Home.jsf page, and
click the Source tab at the bottom of
the editor window to show the page in
source view.
55. Select Window -> Structure to open the
structure panel if its not already open.
56. On the Structure panel, expand
the f:view -> af:document -> af:form ->
af:pageTemplate -> f:facet >
center node.
57. Select af:panelDashBoard.
58. In the page source, change
(without using copy/paste) the
af:panelDashBoard component definition (now highlighted) from

July/august 2014 Oracle.com/oraclemagazine

<af:panelDashboard id="pd1"
rowHeight="150px" />
to
<af:panelDashboard id="pd1"
rowHeight="150px">
</af:panelDashboard>

59. Click between the opening and closing


tags of the af:panelDashboard component, and paste (Ctrl+V) the code from
the clipboard.
60. Right-click in the source window, and
choose Reformat to improve the code
alignment.
Note: The af:panelDashBoard component
expects af:panelBox or af:region as its
child components. Because af:forEach is
used to create the panelBox instances at
runtime, you see that Oracle JDeveloper
flags the af:forEach tag as an error.
However, this is a false positive in the integrated development environment (IDE). It
is not considered an error at runtime, and
you can ignore it.
61. Close all tabs, and save your work.
What you just did: You added a prebuilt
code snippet to the panel dashboard component on the Home.jsf page that reads
the number and definitions of task flows
to display in a region from the multi-taskflow binding you configured earlier. In
addition, the code you pasted contains
a panel box that is shown whenever no
department is selected for display as a
region on the dashboard.
Running the Application
62. On the Applications tab, navigate to
ViewController -> Web Content ->
WEB-INF and double-click the adfcconfig.xml file.
63. In the task flow diagram, right-click the
Home view activity and choose Run. (You
must run the page from the adfc-config
.xml filenot from the Applications
tabso that the task flow context is set
when the page displays.)
64. When the page displays in your browser,
use the checkboxes on the right to
select the departments to display on the
dashboard. Click the Update Dashboard
button to update the dashboard view,
and try out the other dashboard features.

Conclusion
Dynamic regions are a frequent user
requirement. Oracle JDeveloper 11g
Release 2 and Oracle JDeveloper 12c address
this requirement with multi-task-flow
binding. This article showed how to add
dynamic bindings for a dynamic dashboard
that uses a single bounded task flow to
render an unlimited number of regions, with
each region sharing the Oracle ADF data
control scope for best performance.
Task flows in regions execute sequentially.
When you use the multi-task-flow binding
feature, minimize the number of flows added
to a page. Each task flow comes with a performance overhead determined by the data
query and the initialization tasks it performs.
Also note that when an application
uses dynamic regions, users might switch
between bounded task flows while task
flows have pending transactions. The risks
associated with premature termination
of bounded task flows through dynamic
regions and how to handle such a case are
documented in the Oracle ADF Task Flow
Transaction Fundamentals white paper
(see Next Steps).

Frank Nimphius is a senior principal product


manager for Oracle JDeveloper and Oracle ADF.
He is a coauthor of Oracle Fusion Developer
Guide: Building Rich Internet Applications with
Oracle ADF Business Components and Oracle
ADF Faces (McGraw-Hill, 2010).

Next Steps
DOWNLOAD
Oracle JDeveloper 12c
bit.ly/KDqHjA
the sample application for this article
bit.ly/1lZ4nXw
READ more about Oracle ADF
oracle.com/technetwork/developer-tools/adf
Using Task Flows as Regions
bit.ly/1onhggq
Towards Ultra-Reusability for ADF - Adaptive
Bindings
bit.ly/1mPPoBY
Oracle ADF Task Flow Transaction
Fundamentals
bit.ly/1jAmuCM
A Template with Behavior
bit.ly/1lqjZST

DBA

manageability By Arup Nanda

Oracle database 12c

Managing Expressly

Manage Oracle Database with Oracle Enterprise Manager


Database Express, a built-in browser-based graphical tool.

ow do you administer Oracle Database?


Command-line tools such as SQL*Plus
may be all you need in many situations, but
you may also find a graphical tool useful in
some cases, such as for displaying performance statistics.
Oracle Database 12c includes a built-in
graphical management tool called Oracle
Enterprise Manager Database Express. Its
a web-based tool you can launch from any
web browser, and no operating-system-level
installation is required. Oracle Enterprise
Manager Database Express is extremely
lightweight and easily configurable, and in
this article, you will learn how to configure
and use it to perform your daily DBA chores.

Setup
Oracle Enterprise Manager Database
Express is installed and configured with the
database, but additional configuration may
be required if your database uses nondefault
values for parameters. Here are the manual
steps for configuring Oracle Enterprise
Manager Database Express.
1. To check the port number for the database listener, enter lsnrctl status at
the command line and look for the string
(PORT= in the output.
2. The default port for the database listener
is 1521. If the database listener listens on
a different portsay, 1526you must
set the local_listener database parameter with the following SQL:

built-in web server. To use the Oracle


XML DB web server for Oracle Enterprise
Manager Database Express, make sure
the DISPATCHERS parameter of the
database instance includes the entry for
the Oracle XML DB service:
SQL> show parameter dispatchers
NAME

TYPE

VALUE

Dispatchers

string

(PROTOCOL=TCP)
(SERVICE=ANN1XDB)

4. If the DISPATCHERS parameter is not set,


include the following line in the parameter file:
dispatchers="(PROTOCOL=TCP)

3. Oracle Enterprise Manager Database


Express is web-based, so it needs
a web server. Oracle XML Database
(Oracle XML DB) functionality in Oracle
Database 12c provides a lightweight

7. If the port number is not defined or


your organizational policies do not
allow that specific port number, you
can use a different port number for the
listener for Oracle Enterprise Manager
Database Express. To use port number
5501, for example, set the new port
number as follows:
begin
end;

(SERVICE=<sid>XDB)"

and restart the instance. Note that <SID>


is the ORACLE_SID. Replace <SID> with
the ORACLE_SID value for your instance.
5. To confirm that the Oracle XML DB configuration is working, as well as to get
the port number of the listener, execute
the following SQL:
select dbms_xdb_config.gethttpsport()
from dual;
DBMS_XDB_CONFIG.GETHTTPSPORT()

SQL> alter system set local_


(HOST=localhost)(PORT=1526))';

https://prolin1.proligence.com:5500/em

dbms_xdb_config.sethttpsport(5501);

5500
listener='(ADDRESS = (PROTOCOL=TCP)

Replace <servername> with the name of


your database host. For example, if your
host is named prolin1.proligence.com,
enter the URL as

6. From the output, you know that the


Oracle XML DB listener is listening on
port number 5500. In this case, you
can launch Oracle Enterprise Manager
Database Express from any web browser
by typing the following URL:
https://<servername>:5500/em

The Oracle XML DB listener for Oracle


Enterprise Manager Database Express
is now configured for port 5501. You
can launch Oracle Enterprise Manager
Database Express from any web browser
by entering the URL as
https://prolin1.proligence.com:5501/em

The first screen of Oracle Enterprise


Manager Database Express asks you for
authentication. Enter a database username
and password. Remember, you need a
database username. This is different from
the standalone version of Oracle Enterprise
Manager Cloud Control (formerly known as
Oracle Enterprise Manager Grid Control),
where you enter a username from the
Oracle Enterprise Manager repositorynot
Oracle Database.
Oracle Enterprise Manager Database
Express comes with two predefined roles
EM_EXPRESS_ALL and EM_EXPRESS_
BASIC. The Oracle Database DBA role is

oracle magazine July/august 2014

37

38

manageability

already granted these two Oracle Enterprise


Manager Database Express roles, so any
user with a DBA role will not need to be
granted these Oracle Enterprise Manager
Database Express roles explicitly.
Database Home Page
Enter a valid database username and password to see the database home page, as
shown in Figure 1. The main menuright
below the Oracle Enterprise Manager
Database Express 12c bannerdisplays five
items. The first is the database name and the
version, which is ANN1 and 12.1.0.1.0 in this
case. From any other screen, click this item to
return to the database home page.
The next menu itemConfiguration
displays four submenus:
Initialization Parameters. Click this item to
display and edit initialization parameters
and their descriptions.
Memory. Click this item to see memory
allocations, including system global area
(SGA) and program global area (PGA).
Database Features Usage. Click this item
to see database features, their descriptions, and when they were used. (Highwater-mark analysis is also available
through this item.)
Current Database Properties. Click this
item to see properties such as the character
set and the time zone of the database.
The next menu itemStoragedisplays
five submenus:
Tablespace. Click this item to see the list
of tablespaces, datafiles, their sizes, and
the free space inside them. (You can also
create and alter existing tablespaces here.)
Undo Management. Click this item to
see how the undo mechanism is working
in your database. (Two of the very useful
graphically represented undo-related
metrics here are the rate of generation and
the space used.)
Redo Log Groups. Click this item to see
the online redo log files for the database.
(It also enables you to add, drop, and alter
redo log groups.)
Archive Logs. Click this item to see the list
of archived logs, when they were created,
the system change number (SCN) of the
changes contained in them, and more.
Control Files. Click this item to see the

July/august 2014 Oracle.com/oraclemagazine

control files for the database, the size and


number of records in different sections of
the control file, and more.
The next menu itemSecurityenables
you to perform database-security-related

activities, such as managing users and roles.


It displays three submenus:
Users. Click this item to see the list of users
and details such as status (active, locked,
or password expired), default tablespace,

Figure 1: Oracle Enterprise Manager Database Express home page

Figure 2: Performance Hub

Figure 3: Activity, as shown in Performance Hub

39

when they were created, and expiration


dates for passwords. (This item also enables
you to alter users and create new ones.)
Roles. Click this item to create, alter, and
display database roles.
Profiles. Click this item to create, alter, and
display database profiles. (Profiles enable
you to control how long the user session
is allowed to remain active, control how
many invalid login attempts are permitted
before the account is locked, define the
function to enforce the complexity of the
password, and so on.)
Performance
The last menu item is Performance. (Note
that you need to license the extra-cost
Oracle Diagnostics Pack to use this menu
item.) I will devote more attention to it here,
because this is an item you will likely spend
a lot of time on.
The Performance menu item includes
two submenus. Lets take the first one
Performance Hubwhich displays a screen
similar to the one shown in Figure 2. The
topmost graph, called the time picker, shows
the average active sessions across various
points in time.
You can drag the shadow box across the
graph to focus on the activities in a particular time period. The information below
the graph will change to reflect the activities in that period. The various color bands
represent different activitiesblue for user
I/O, green for CPU, and so on. Place your
cursor above a color band. A pop-up text
box displays the metric that this bar represents and its value. A camera icon on the
graph (at around 07:00 p.m. in Figure 2)
indicates that an Automatic Database
Diagnostic Monitor task was run at that
time automatically (Automatic Database
Diagnostic Monitor is a feature of Oracle
Database). If you place your cursor above
that icon, you will see the task ID, which
enables you to check the details of that
Automatic Database Diagnostic Monitor
task later. You can check the details on that
task in the ADDM tab on the screen shown
in Figure 2.
The four boxes below the time picker are
self-explanatory: the load average of the
database host, memory, I/O, and the activi-

ties of the active sessions. These are all


active displaysthat is, if you move your
cursor over a part of the diagram, you will
see the name and the value of the metric
it represents and the time it was collected.
You can go back as far into the past as data
is available in the Automatic Workload
Repository feature of Oracle Database.
It is easier to see the power of these
charts and graphs by examining them in the
context of a real problem. Suppose you are
investigating the cause of a database performance problem. From the time picker, you
can see that there is a spike at 7:10:00 p.m.,
as shown in Figure 3. From the main menu,
choose Performance and then from the tabs
below the time picker, click Activity, which
shows total activity and the associated
wait classes. The section at the bottom left
shows the SQL statements with the highest
activity. The colored bar next to each SQL

ID shows the breakdown of the wait classes


for that activity. Place your cursor over the
colored bar, and a pop-up box will show the
name and the value of the metric.
In the chart in Figure 4, you can clearly
see that the first SQL ID4sjngb1tsayy9is
responsible for most of the activity in the
database. Your next diagnostic step is to
find out why that SQL statement is so active.
Click the 4sjngb1tsayy9 SQL ID to get the
details on that SQL statement. That brings
up the SQL Details screen shown in Figure 4.
Click the Execution Statistics tab.
The SQL Details screen includes two
types of output. At the top, in the Plans area,
you can see the impact of the SQL statement represented through various metrics,
including the database time, the number of
I/O requests, the rows returned, the number
of times the statement was parsed, and so
on. If the SQL statement has had different

Figure 4: SQL Details screen

Figure 5: SQL Tuning Advisor

oracle magazine July/august 2014

40

manageability

execution plans, Oracle Enterprise Manager


Database Express will grab the plans from
all the sourcesthe cursor cache, the
Automatic Workload Repository, and so on
and will display the statistics for all execution plans, one per line. The icon in the first
columnlabeled Sourceshows the source
of the information on the execution plan.
Displaying details on all plans is very useful if
you have seen different performance characteristics for the same SQL statement.
A very important metricBuffer
Gets, which shows the number of buffers
fetchedis shown in the last column. This
number in my example is 16,808a significantly large number, which probably explains
why this SQL statement had so much impact
on performance. To understand why this
SQL statement had so many buffer gets,
look at the bottom part of the screen, in
the Plan Details area, where the execution
plan of the SQL statement is shown. Each
step in the plan includes statistics such as
the estimated number of rows and bytes,
shown both as values and graphically. Note
the HASH JOIN stepthe Estimated Bytes
value shows 18,447 petabytes! This is just an
estimate; it may not be accurate, but it does
give you an idea of the amount of data this
SQL statement will fetch. Because the data is
stored in buffers, the SQL statement fetches
a large number of buffersexplaining the
large buffer gets metric for this SQL.
SQL Tuning Advisor
Do you want to see if this SQL can be tuned to
improve its performance? Oracle Enterprise
Manager Database Express can help you do
that. Click the Tune SQL button at the top
of the SQL Details screen, just below the
menu bar, to bring up the SQL Tuning Advisor
feature of Oracle Database. (You can also
invoke it from the main menu bar from the
Performance tab by choosing the SQL Tuning
Advisor submenu.) Clicking Tune SQL creates
a task that may take some time to complete.
When it completes, you will be presented
with a screen that displays the results of the
tuning effort, as shown in Figure 5.
The findings are shown in boxes toward
the right of the screen. The first box, SQL
Examined Count, shows a bar chart of
the number of SQL statements examined

July/august 2014 Oracle.com/oraclemagazine

Figure 6: Specific details of the recommendations

Figure 7: Oracle RAC database home page

Figure 8: Multitenant database home page

for tuning. The blue area in the vertical


bar shows the count of SQL statements
where SQL Tuning Advisor has no findings,
meaning that there are no tuning recommendations. If the green area in the vertical
bar shows the count of SQL statements
where SQL Tuning Advisor reported findings,
it means that there are tuning recommendations. Recommendations might include
implementing a SQL profile or restructuring
(rewriting) the SQL. The last box shows the
possible savings in database time if you
implement the SQL profile suggested by SQL
Tuning Advisor. The magnitude of the potential savings will help you decide whether the
recommendations are worth exploring.
While you mull over the displayed potential savings resulting from implementation
of the SQL profile suggested by SQL Tuning
Advisor, you will naturally be curious to
learn how SQL Tuning Advisor computed the
savings. The SQL profile does not change
the SQL; it changes only the execution plan.
If you want to learn how the plan will be

different after the SQL profile is applied,


click the value for that SQL statement in the
bottom box, Top SQL Statements, in the Id
column. The details of the plan changes will
appear, as shown in Figure 6. The tabs show
Original Plan for the SQL statement and
Plan Using SQL Profilethe modified plan.
But the screen displays more than the modified plan. It also showsgraphically and as
valuesthe estimated operation cost and
the rows and bytes of data at each step of
the execution plan. The display helps you
visualize the step with the biggest performance impact and how that changes from
the original to the modified plan.
Happy with the modified plan? Just click
the Implement button at the top of the
screen. It will implement the SQL profile for
that SQL statement, and the modified plan
will be in effect. Dont like the plan? Well, no
harm done. The SQL profile is only a suggestion by SQL Tuning Advisor; its not implementedunless you click Implementand
can be ignored. Repeat this SQL Tuning

41

Advisor review for all of your high-impact


SQL statements.
With Oracle Enterprise Manager Database
Express and SQL Tuning Advisor, you can
not only identify the high-impact SQL statements; you can also get recommendations
on improving their performance quickly and
compare the effectiveness of the suggestions
with the originalall with just a few clicks.
Express Compatibility
Oracle Enterprise Manager Database Express
also works with Oracle Real Application
Clusters (Oracle RAC) databases. The
Database home page, similar to the screen
shown in Figure 7, shows all the database
instances and details of each, such as the
host the instance runs on, how long the
instance has been up, and so on. A very
useful display is the graphical representation
of the CPU, memory, and active sessions on
each of the instances. A visual examination

of the display can quickly reveal whether the


instances are equally loaded or skewed.
Oracle Enterprise Manager Database
Express also works on Oracle Multitenant
databases. The database home page shows
the details of the multitenant container
database (CDB). However, the Performance
panel at the right has a tab labeled PDBs
that shows the pluggable databases (PDBs)
running on the CDB, as shown in Figure 8.
The Performance bar chart shows the division of various PDBs, differentiated by multiple colors.

mance issues and use SQL Tuning Advisor to


improve database performance.

Arup Nanda (arup@


proligence.com) has
been an Oracle DBA
since 1993, handling
all aspects of database
administration, from
performance tuning to security and disaster
recovery. He was Oracle Magazines DBA of the
Year in 2003 and received an Oracle Excellence
Award for Technologist of the Year in 2012.

Conclusion
Oracle Enterprise Manager Database Express
provides Oracle Database 12c DBAs an out-ofthe-box graphical interface for common database management tasks. This article explored
Oracle Enterprise Manager Database Express
features, described basic tasks, and demonstrated how to troubleshoot common perfor-

Next Steps
LEARN more about
Oracle Enterprise Manager Database Express
Oracle Database 2 Day DBA 12c Release 1 (12.1)
bit.ly/1lBKmow
DOWNLOAD Oracle Database 12c
bit.ly/1czAk2I

Go where the conversation lives.


Connect with Oracle Magazine on your favorite social
channel and be a part of our growing community.
Join Us.

OracleMagazine

Oracle Magazine

@OracleMagazine

Print. Digital. Mobile.

Copyright 2014, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners.

oracle magazine July/august 2014

Database Application Developer

PL/SQL By Steven Feuerstein

Oracle Database

The Joy of Low-Hanging Fruit


Are you using BULK COLLECT and FORALL for bulk
processing yet?

he following is based on true events. The


names have been changed to protect
people and intellectual property.
I recently spent a few days with a team
of developers at extremememe.info, an upand-coming Web 3.0 paradigm-shifter that
analyzes internet memes, tracks them to
their source, andbest of allpredicts new
and future memes.
The developers at extremememe.info are
very knowledgeable about Oracle Database
and PL/SQL, but as is the case with many
other developers, they have little time to
explore new technology features. They
struggle to keep up with the demands of
their users, and even when they know about
some great new feature, it can be a challenge to convince management to commit
the resources to apply those features to
stable production code.
We interspersed training on PL/SQL
techniques with reviews of their code and,
in the process, came across a program that
runs in a daily batch process and updates
the status of all the memes. Unfortunately,
as extremememe.infos data volumes grew,
the process was taking longer and longer,
approaching 23 hours. Given how uncomfortably close that was to a full day, we
decided to take a closer look.

value of the primary key to the next sequential value is an Oracle Database 12c feature;
in Oracle Database 11g Release 2 and earlier,
you would use a trigger to achieve the same
result. The em_memes_setup.sql script
includes this code.)

I-Hua Chen

PRIMARY KEY,
meme_id

INTEGER
REFERENCES
em_memes (meme_id),

CREATE TABLE em_memes

source_name

VARCHAR2 (100),

source_details

CLOB,

occurred_on

DATE

(
meme_id

INTEGER
DEFAULT
em_memes_seq.NEXTVAL
PRIMARY KEY,

meme_name

VARCHAR2 (1000)
UNIQUE,

discovered_on

DATE,

meme_status

VARCHAR2 (100)

Meme mentions are loaded from many


different sources, and extremememe.info
relies on a staging table to collect data from
all sources:
CREATE TABLE em_incoming
(

The meme_status value can be VIRAL,


DORMANT, HOAX, and so on.
extremememe.info has a table for all the
mentions of, or references to, a meme:
CREATE SEQUENCE em_mentions_seq
/
CREATE TABLE em_mentions
(
mention_id

On Closer Inspection
The meme update process uses the following three tables: em_memes, em_
mentions, and em_incoming. (You can
create these tables by using the emmemes_
setup.sql script in the download for this
article, at bit.ly/QntyHo). Note that the
columns of these tables have been simplified for the purposes of this article.
The developers at extremememe.info
use the em_memes table for all the memes
of which they are aware and whose status
they track. (Note that setting the default

em_mentions_seq.NEXTVAL

meme_name

VARCHAR2 (1000),

source_name

VARCHAR2 (100),

occurred_on

DATE,

mention_details

CLOB

)
/

The developers at extremememe.info


also use the following em_memes_pkg
package to log errors and to perform some
critical proprietary computations, based
on the content of those tables:

INTEGER
DEFAULT

CREATE OR REPLACE PACKAGE em_memes_pkg

em_memes_pkg.incoming_t

This is a nested table type that contains rows of data from the em_incoming table.

em_memes_pkg.mentions_t

This is a nested table type that contains rows of data from the em_mentions table.

em_memes_pkg.meme_ids_t

This is a nested table type that contains primary keys from the em_memes table.

em_memes_pkg.log_error

This is a generic (and typical) error-logging mechanism. Defined as an autonomous


transaction, it writes out the basic error information available from the DBMS_
UTILITY functions (and more) to a log table and then commits just that insert.

em_memes_pkg.unpacked_incoming

This is a function that converts a row of incoming data (whose mention details column
is an XML document that holds the different formats of source information) into a
record that can be inserted into the em_mentions table.

em_memes_pkg.reset_meme_status

The heart and soul of the extremememe.info proprietary process, this procedure
analyzes the contents of the mentions table and ascertains the status of the meme.

Table 1: em_memes_pkg elements and descriptions

oracle magazine July/august 2014

43

44

PL/SQL

em_mentions%ROWTYPE;

(between SQL and PL/SQL) and consequently


greatly slows the performance of the code.
Fortunately, this classic antipattern has a
classic, well-defined solution: use BULK
COLLECT and FORALL to switch from row-byrow processing to bulk processing.

TYPE meme_ids_t IS TABLE OF

Code Listing 1: Meme status updater, version 1

IS
TYPE incoming_t IS TABLE OF
em_incoming%ROWTYPE;
TYPE mentions_t IS TABLE OF

The presence of this antipattern was also


a source of delight for me. The developers
needed to improve the performance of the
procedure significantly. That would have
been very hard to do if they had already
taken full advantage of SQL and PL/SQL

em_memes.meme_id%TYPE;
PROCEDURE log_error (
error_code_in
IN INTEGER DEFAULT SQLCODE,
error_msg_in
IN VARCHAR2
DEFAULT
DBMS_UTILITY.format_error_stack);
FUNCTION unpacked_incoming (
incoming_in

IN

em_incoming%ROWTYPE)
RETURN em_mentions%ROWTYPE;
PROCEDURE reset_meme_status (
meme_id_in

IN

em_memes.meme_id%TYPE,
new_status_out

OUT

em_memes.meme_status%TYPE);
END;
/

For space reasons, I will not provide the


package body code for em_memes_pkg, but
Table 1 lists what the elements in the specification provide.
Listing 1 shows the code for the status
update process in the em_update_status
procedure. (Listing 1 is available as em_
update_status_old.sql in the download for
this article at bit.ly/QntyHo.) Descriptions
of the key parts of the em_update _status
package appear at the end of Listing 1.
I was dismayed when I saw extremememe
.infos implementation of em_memes_pkg
.reset_meme_status, because I found in that
procedure a cursor FOR loop that contained
two nonquery data manipulation language
(DML) statements. That is a classic antipattern, a general pattern of coding that
should be avoided. It should be avoided
because the inserts and updates are changing
the tables on a row-by-row basis, which
maximizes the number of context switches

July/august 2014 Oracle.com/oraclemagazine

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

CREATE OR REPLACE PROCEDURE em_update_status


IS
CURSOR incoming_cur
IS
SELECT * FROM em_incoming;
l_mention
em_mentions%ROWTYPE;
l_status
em_memes.meme_status%TYPE;
BEGIN
FOR incoming_r IN incoming_cur
LOOP
BEGIN
SAVEPOINT new_transaction;
l_mention := em_memes_pkg.unpacked_incoming (incoming_r);
INSERT INTO em_mentions (meme_id,
source_name,
source_details,
occurred_on)
VALUES (l_mention.meme_id,
l_mention.source_name,
l_mention.source_details,
l_mention.occurred_on);
em_memes_pkg.reset_meme_status (l_mention.meme_id,
l_status);
IF l_status IS NOT NULL
THEN
UPDATE em_memes
SET meme_status = l_status
WHERE meme_id = l_mention.meme_id;
END IF;
EXCEPTION
WHEN OTHERS
THEN
em_memes_pkg.log_error;
ROLLBACK TO new_transaction;
END;
END LOOP;
END;

Line(s)

Description

10

For each row in the staging table (em_incoming)

12, 40

Put the entire body of the loop inside its own nested block so that any exception can be trapped and logged.

13

Set a savepoint for this new transaction.

15

Convert the incoming row to a record that can be inserted into the em_mentions table.

1724

Insert a single row into the em_mentions table.

2627

Compute the new status for the meme, based on the new mention.

2934

If the status isnt NULL, update the em_memes table with that status.

3539

If anything goes wrong, log the error and then erase the effects of the insert and/or the update by rolling back to
the savepoint.

45

performance optimization features. Because


they had not done so, they were looking at a
procedure full of low-hanging fruit. That is,
they were looking at the possibility of solving
their problem with a relatively straight
forward change to their existing code.
Code Review Identifies a Logic Flaw
I shared my dismay and delight with the
extremememe.info developer team. They
were excited about the potential improvements and were eager to get started. Then I
noticed something odd about the algorithm
theyd presented. A brief Q&A session soon
clarified matters:
Can the table of incoming data contain
more than one reference to the same meme?
Heads nodded vigorously. They told me
that the more viral the behavior of a meme,
the more mentions there would be. In the
case of some very popular memes, the daily
incoming could contain millions of references to the same meme. That led directly
to my second question:
Then why are you updating the meme
status after each insert of a mention?
Now eyebrows shot up and heads were
turned. Wow, said one developer. Oh. My.
Gosh. said another.
The team lead turned to me. We never
thought of that before. Weve been doing
an enormous amount of unnecessary
processing. Thats kind of embarrassing.
It sure helps to have a fresh pair of eyes
looking at our code.
Yes, it does. Never underestimate the

Relational
Table

power of your brain to hide the obvious from


you. Once youve spent a lot of time writing
or working with a program, you dont really
see the code anymore. You see what you
think the code should be. When someone
else looks at it, they come at it without any
preconceived notions and perceive very different aspects of the program.
If youre the only one whos ever looked
at your code, you can be certain it contains
bugs and perhaps even substantial algorithm errors.
Members of the extremememe.info
developer team quickly agreed that the
statuses of the memes should be updated
only after all mentions were inserted.
Furthermore, only those memes with new
mentions should be updated.
In the remainder of this article, I
show you the end result of the rewrite of
extremememe.infos em_memes_pkg
.reset_meme_status procedure into a
program that runs significantly faster and
made it possible for data volumes to grow
substantially while still allowing the batch
process to be finished in a single day. My
stevenfeuersteinonplsql.blogspot.com blog
expands on this article to take you through
those changes in a step-by-step process.
On Switching to Bulk Processing
Although row-by-row processing can be
unacceptably slow for large volumes of data,
it offers a significant advantage for execution of nonquery DML: it is easy to define
and manage a transaction.

Phase 1: BULK COLLECT from table(s) to collection

Phase 2: Modify contents of collection


according to requirements

Relational
Table
Phase 3: FORALL from collection to table(s)

Figure 1: Bulk processing phases

Take the Challenge


Each PL/SQL article offers a quiz to test your
knowledge of the information provided in it.
The quiz appears below and also at PL/SQL
Challenge (plsqlchallenge.com), a website that
offers online quizzes on the PL/SQL language
as well as SQL, Oracle Application Express,
database design, and deductive logic.
Here is your quiz for this article:
Which of the following statements about
BULK COLLECT and FORALL are correct?
a. System global area (SGA) is the only type
of memory affected by a switch from row-byrow processing to bulk processing.
b. You can use BULK COLLECT only with nondynamic queries.
c. You can have only one nonquery DML statement inside a FORALL statement.
d. If you want to make sure the SQL engine at
least attempts to execute every DML statement generated by FORALL, add the SAVE
EXCEPTIONS clause.

In the reset_meme_status procedure, the


transaction consists of two DML processes:
1. Insert a row into the mentions table.
2. Update the memes table.
A quick glance at the original procedure
code in Listing 1 shows that these two processes go together: if the insert fails, the
update wont execute. If the update fails,
the insert will be rolled back. And in either
case, the error will be logged and processing will continue.
With the switch to bulk processing,
the procedure moves from a row-byrow approach to a phased approach. For
reset_meme_status, this means that the
procedure will perform all the inserts first
and then execute all the updates.
Generally, you can think of bulk processing as having three distinct phases:
Phase 1: Populate the collections that
will drive the FORALL processing. This is
usually done with a BULK COLLECT query.
Phase 2: Modify the contents of the collections as needed to prepare them for
Phase 3.
Phase 3: Execute the FORALL statement to
push the data into the table(s).
Figure 1 shows these three phases.
In the real world, life is complicated and
there are always exceptions. Sometimes
you will not need Phase 1, because the collections are already filled and being passed
to your program, and sometimes you can
skip Phase 2, because the collection is

oracle magazine July/august 2014

46

PL/SQL

ready to go, to be used immediately in the


FORALL statement.
The Bulk Processing Implementation
The code in Listing 2 is the rewrite of the
too slow em_update_status procedure.
This new version takes advantage of nested
procedures (procedures declared within
another procedure or function). The code
for these nested proceduresget_next_
set_of_incoming, unpack_and_record_
mentions, and reset_meme_statusesis
presented and analyzed later in this article.
Descriptions of the key parts of the revised
em_update _status package appear at the
end of Listing 2.
Now lets take a closer look at each of the
nested procedures, correlating each of these
with the phases I described earlier.
Phase 1: Get incoming rows. When youre
switching to BULK COLLECT to fetch data,
there are a few key guidelines to keep in mind:
You can use BULK COLLECT with static
SELECT statements (SELECT BULK
COLLECT INTO and FETCH BULK COLLECT
INTO) and dynamic queries (EXECUTE
IMMEDIATE BULK COLLECT INTO).
If your original code contains a cursor
FOR loop that fetches many rows (thousands and higher) but the loop body does
not have any nonquery DML (inserts,
updates, deletes), you probably do not
need to switch to BULK COLLECT. The
PL/SQL compiler automatically optimizes
cursor FOR loops to return 100 rows with
each fetch.
BULK COLLECT and FORALL work with
PL/SQL collectionsarraylike structures.
These collections consume process global
area (PGA) memory, which is allocated
per session. It is possible for sessions to
run out of memory and return the ORA04030: out of process memory error.
The best way to manage memory in bulk
processing is to use the LIMIT clause with
BULK COLLECT.
Any collections populated by BULK
COLLECT are either empty or filled sequentially from index value 1. This means that
every index value between that returned by
the FIRST method (lowest defined index
value) and the LAST method (highest
defined index value) is defined.

July/august 2014 Oracle.com/oraclemagazine

With all that in mind, lets now implement the get_next_set_of_incoming


procedure (called in the new em_update_
status procedure). The get_next_set_
of_incoming procedure passes back a
collection of incoming records; BULK
COLLECT will improve the performance,
and the LIMIT parameter will help control
PGA consumption:
PROCEDURE get_next_set_of_incoming (
incoming_out
OUT NOCOPY em_memes_pkg.incoming_t)

IS
BEGIN
FETCH incoming_cur
BULK COLLECT INTO incoming_out
LIMIT bulk_collect_limit_in;
END;

First, note that I use the NOCOPY hint in


my parameter definition. By using NOCOPY,
Im asking Oracle Database to not make a
local copy of my collection inside the procedure. The result will be lower PGA consumption and improved performance.

Code Listing 2: Meme status updater, version 2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

CREATE OR REPLACE PROCEDURE em_update_status (


bulk_collect_limit_in
IN PLS_INTEGER DEFAULT 100)
IS
bulk_errors
EXCEPTION;
PRAGMA EXCEPTION_INIT (bulk_errors, -24381);
CURSOR incoming_cur
IS
SELECT * FROM em_incoming;
l_incoming

em_memes_pkg.incoming_t;

l_affected_meme_ids
em_memes_pkg.meme_ids_t;
:= em_memes_pkg.meme_ids_t ();
PROCEDURE get_next_set_of_incoming ....
PROCEDURE unpack_and_record_mentions ....
PROCEDURE reset_meme_statuses ....
BEGIN
OPEN incoming_cur;
LOOP
get_next_set_of_incoming (l_incoming);
EXIT WHEN l_incoming.COUNT = 0;
unpack_and_record_mentions (l_incoming, l_affected_meme_ids);
END LOOP;
CLOSE incoming_cur;
reset_meme_statuses (l_affected_meme_ids);
END;

Line(s)

Description

BULK COLLECT returns multiple rows with each fetch. This parameter controls the number of rows fetched.

45

Because the original procedure traps exceptions, logs the errors, and continues processing, use SAVE
EXCEPTIONS in the FORALL statements and include an exception handler for ORA-24381.

1113

Declare nested tables based on the packaged types to be used by the nested procedures.

1618

The nested procedures.

2132

The now small and very readable executable section. Heres the narrative version of the code:
Open the cursor that identifies all the incoming rows to be processed.
Get the next N rows of incoming data. Stop when the collection is empty.
Unpack each incoming row, and insert it into the mentions table. Add all IDs of memes that were
mentioned into the collection of affected memes.
After inserting all mentions, reset the statuses of only those memes that were affected.

47

Next, because I already opened the


cursor on line 21 of the new em_update_
status procedure, all I need to do in this
get_next_set_of_incoming procedure is
fetch. And I want to retrieve multiple rows
with each fetch, so I put the keywords BULK
COLLECT in front of INTO and then provide
a collection after INTO.
I then add the LIMIT clause, which tells
Oracle Database to retrieve up to that
number of rows with each FETCH. I could
have provided a literal instead of a parameter, as in
LIMIT 100;

In fact, 100 is a good default value. You


get a nice boost in performance, and you
dont consume enormous amounts of PGA.
Yet I hesitate to hard-code the value.
If over time this procedure needs to work
with more and more data, I may want to
experiment with different limit values
to see if I can coax more performance
out of the process without breaking the
PGA bank.
By passing the limit value as a parameter,
I can change the value whenever I want
without having to recompile the code.
OK, Ive got the next N rows of incoming
data. Now its time to move them to the
em_mentions table.
Phases 2 and 3: Unpack and record
mentions. With phased processing, you do
not unpack a single row and then insert it
into a table. Instead, you unpack all the rows
fetched and then push them all into a table
by using FORALL. In this case, all the rows
fetched by get_next_set_of_incoming will
be unpacked and pushed into the em_
mentions table with FORALL.
Answer to Last Issues Challenge
The PL/SQL Challenge quiz in last issues
Writing SQL in Oracle Application Express
article offered different ways to implement
thequery for an Oracle Application Express
interactive report so that it could return data
from two different queries. Choices (b) and
(c) are correct: you can use a table function
or, for simpler scenarios, a union of queries
that aremutually exclusive. You cannot,
however, use a dynamic query with an interactive report, so choice (a) is incorrect.

Code Listing 3: Unpack and record mentions


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

PROCEDURE unpack_and_record_mentions (
incoming_in
IN
em_memes_pkg.incoming_t,
affected_meme_ids_out
IN OUT em_memes_pkg.meme_ids_t)
IS
l_affected_this_time
em_memes_pkg.meme_ids_t;
l_mentions
em_memes_pkg.mentions_t := em_memes_pkg.meme_ids_t();
l_status
em_memes.meme_status%TYPE;
PROCEDURE add_to_affected_memes
IS
BEGIN
affected_meme_ids_out :=
affected_meme_ids_out
MULTISET UNION DISTINCT l_affected_this_time;
END;
PROCEDURE record_errors
IS
l_bad_index
PLS_INTEGER;
BEGIN
FOR indx IN 1 .. SQL%BULK_EXCEPTIONS.COUNT
LOOP
l_bad_index := SQL%BULK_EXCEPTIONS (indx).ERROR_INDEX;
em_memes_pkg.log_error (
error_code_in => SQL%BULK_EXCEPTIONS (indx).ERROR_CODE,
error_msg_in
=> 'Unable to insert mention for incoming mention '
|| incoming_in (l_bad_index).meme_name
|| '-'
|| incoming_in (l_bad_index).source_name
|| '-'
|| TO_CHAR (
incoming_in (l_bad_index).occurred_on,
'YYYY-MM-DD HH24:MI:SS'));
END LOOP;
END;
BEGIN
l_mentions.EXTEND (incoming_in.COUNT);
FOR indx IN 1 .. incoming_in.COUNT
LOOP
l_mentions (indx) :=
em_memes_pkg.unpacked_incoming (incoming_in (indx));
END LOOP;
FORALL indx IN 1 .. l_mentions.COUNT SAVE EXCEPTIONS
INSERT INTO em_mentions (meme_id,
source_name,
source_details,
occurred_on)
VALUES (l_mentions (indx).meme_id,
l_mentions (indx).source_name,
l_mentions (indx).source_details,
SYSDATE)
RETURNING meme_id
BULK COLLECT INTO l_affected_this_time;
add_to_affected_memes;
EXCEPTION
WHEN bulk_errors
THEN
add_to_affected_memes;
record_errors;
END;

oracle magazine July/august 2014

48

PL/SQL

Line(s)

Description

2 and 3

The next set of incoming rows is passed to the procedure, which passes back an updated list of all those
meme IDs that have received at least one mention. This collection will drive the final reset meme status step.

38

Start of the executable section: make room in the local nested table of mentions to hold all the
incoming data.

4044

A classic Phase 2: for each of the incoming rows, convert it to the mentions format and load it into the
array. Notice the use of the same index value for the l_mentions collection as in the incoming_in collection.
Because incoming_in was populated with BULK COLLECT, it is either empty or filled sequentially from 1.

4656

Time to push all that nicely prepared data into the em_mentions table with FORALL. Because the collection
is sequentially filled from 1, use the simplest form for the FORALL header:
FORALL indx IN 1 .. l_mentions.COUNT

If I used this form (very similar to a numeric FOR loop) and the collection had gaps (index values between
FIRST and LAST that are not defined), the procedure would fail with the ORA-22160: element at index [N]
does not exist error. To avoid this problem, you can use INDICES OF or VALUES OF; the former is discussed
in the Phases 2 and 3: Reset meme statuses section.
Next I use the RETURNING clause to capture the IDs of all mentioned memes. I need to use BULK
COLLECT for my RETURNING clause, because I am likely to insert more than one row and therefore will
return more than one ID.
58

Call the add_to_affected_memes procedure. This is a procedure declared within the parent procedure. Its
implementation is very simple:
9
10
11
12
13
14
15

PROCEDURE add_to_affected_memes
IS
BEGIN
affected_meme_ids_out :=
affected_meme_ids_out
MULTISET UNION DISTINCT l_affected_this_time;
END;

It uses the MULTISET UNION operation to add the ID of the newly affected meme to the existing list of
previously affected memes. By adding the DISTINCT keyword, I ensure that there will not be duplicates in the
resulting nested table.
5964

Time to handle any errors during insertion into the em_mentions table. The WHEN clause references the
bulk_errors exception, which is declared at the top of the procedure. Within the handler, I call the add_to_
affected_memes procedure.

1736

The record_errors procedure iterates through the contents of SQL%BULK_EXCEPTIONS, a pseudocollection


of records that contains the index in the collection for which an error was returned by the SQL engine and the
error code. It is called a pseudocollection because it is only a partial implementation of an associative array;
specifically, only the COUNT method is defined for this collection.

Table 2: unpack_and_record_mentions procedure line descriptions

Listing 3 shows the implementation of


the unpack_and_record_mentions procedure. As you can see, it is much more
involved than the code required to fetch
data. Thats because it contains an INSERT,
which means that you have to pay a lot of
attention to error processing.
Table 2 includes descriptions of the
significant lines of code in Listing 3. These
descriptions are out of order (not simply
listed from the first to last lines), because
I am again using nested subprograms to
improve readability. And that usually means
that you read from the bottom up: start with
the main executable section and then jump
to subprograms as needed.
Phases 2 and 3: Reset meme statuses. At
this point, all meme mentions have been

July/august 2014 Oracle.com/oraclemagazine

inserted that can be inserted. In the process,


the unpack_and_record_mentions procedure filled up the l_affected_meme_ids
collection, so now its time to use that collection to drive the second FORALL statement, performing the updates against the
em_memes table.
In the original program, for each
mention, the new meme status was
computed. If it was NULL, no update was
performed. The new program will need
to incorporate these steps. The code for
reset_meme_statuses is shown in
Listing 4, available in the Oracle-hosted
online article at bit.ly/RryVWE.
(The code in Listing 4 is also in the em_
update_status_new.sql file in the download
for this article at bit.ly/QntyHo). Table 3,

also available in the Oracle-hosted online


article, presents descriptions of the significant lines of code in Listing 4.
So, Is It Faster?
It might be lots of fun to completely reorganize ones program in hopes of improving
performance, but we cant just assume that
the resulting code actually does run quickly.
The results the extremememe.info team
and I found when we put together and ran a
test script (em_test.sql in the download for
this article at bit.ly/QntyHo) were unambiguous: the new em_update_status runs
between two and three times as fast as the
original procedure.
Not too shabby.
The Oracle-hosted online article concludes
with an extremememe.info developer debrief.
A stevenfeuersteinonplsql.blogspot.com
blog post expands on this article to take you
through the extremememe.info code changes
in a step-by-step process.

Steven Feuerstein
(steven.feuerstein@
oracle.com) is an
architect for Oracle,
specializing in PL/SQL.
His books, including
Oracle PL/SQL Programming, and more
than a thousand PL/SQL quizzes at PL/SQL
Challenge (plsqlchallenge.com) provide in-depth
resources for PL/SQL developers.

Next Steps
READ Oracle-hosted online article content
bit.ly/RryVWE
DOWNLOAD
Oracle Database 12c
bit.ly/fherki
scripts for this article
bit.ly/QntyHo
TEST your PL/SQL knowledge
plsqlchallenge.com
READ more Feuerstein
stevenfeuersteinonplsql.blogspot.com
bit.ly/omagplsql
READ more about
Oracle Database 12c
oracle.com/database
BULK COLLECT and FORALL
bit.ly/12k0n8H
bit.ly/1onU8vi

Database Application Developer and DBA

Ask Tom by Tom Kyte

Oracle Database

On Table Updates and


SQL Plan Baselines

Our technologist updates tables quickly via CTAS


and optimizes queries for evolution.

ue to an application upgrade, we have


to change all the records in one of our
tables, based on new data supplied in a temporary table. (That table exists just for the
upgrade; it is not a global temporary table.)
What is the best approach for accomplishing
this? The table has millions of records, and
we need to complete the upgrade as quickly
as possible.
This is a frequently asked question with
an answer that might surprise you. The best
way to update this table is not to update
it but, rather, to re-create it! Because this
is part of an application upgrade and the
application is scheduled to be offline during
the upgrade, re-creating the table will
almost certainly be the most efficient way
to accomplish this.
Rather than updating every row, which
would necessarily generate UNDO for every
modification and generate REDO for the
table modification as well as more UNDO,
simply use CREATE TABLE NEW_TABLE AS
SELECT (CTAS). Using this approach, you can
definitely skip all generated UNDO, and if
you choose, all REDO as well. Additionally,
instead of trying to maintain any and all
indexes on these modified columns during
the application update, simply create fresh
indexes after the CREATE TABLE process is
complete. If you were to update every row,
the index on these modified columns would
likely be at least twice as large as it needs to
be, so you would almost certainly want to
rebuild these indexes anyway.
So, your update steps are as follows:
1. CREATE TABLE NEW_TABLE AS SELECT
<join of old_table with the data to be
updated>. This may involve an outer
join if most, but not all, of the rows are
to be updated. (There might not be a
row in the stage table for every row in

the existing table.)


2. DROP TABLE OLD_TABLE. Get rid of the
existing table with the old data.
3. ALTER TABLE NEW_TABLE RENAME TO
OLD_TABLE.
4. CREATE INDEX. Re-create the indexes.
5. GRANT the appropriate privileges on
the table.
If you are in archivelog mode during
the application upgrade, consider using
the NOLOGGING clause to prevent REDO
from being generated. (But make sure
to disable NOLOGGING and back up the
database after the upgrade.) If you are in
noarchivelog mode, the CREATE TABLE
NEW_TABLE AS SELECT and CREATE INDEX
commands will not generate any REDO.
(And remember, they never create UNDO
for the CREATE TABLE or CREATE INDEX
commands.) Youll not only find this
CREATE TABLE AS SELECT approachusing
data definition language (DDL) instead of
data manipulation language (DML)to be
faster for large objects but, in addition, the
resulting segments will not be in need of a
reorganization, as they probably would be
after a MERGE/UPDATE operation.
To see this in action against a large
data set, I recommend that you look at the
four-part video series at bit.ly/1fXdD8L,
bit.ly/1idIpdK, bit.ly/1mO3dwL, and
bit.ly/1lIg7yO. These videos show the
loading, validating, and transforming (you
are interested in the transforming portion
most of all) of a large set of data with DDL
and compare that approach with trying to
use DML to do the same.
IF YOU CAN HINT IT, YOU CAN BASELINE IT
I recently had a problem with two SQL statements performing semantically equivalent
queries but with very different runtimes.

I think I narrowed the problem down to a


simple case where the optimizer is wildly off
in cardinality estimates. The statistics are up
to date and represent the actual data.
When I run the query with a subquery
(returning a single constant value) in the
WHERE clause, the query is excruciatingly
slowabout 350 seconds. If I evaluate
the subquery by hand (which takes some
milliseconds) and pass the return value as a
constant to the query, the query will run in
some millisecondswith a completely different plan.
The subquery is a simple MAX(...) query,
so why cant the optimizer use the same plan
or predict that a single value will be returned
and optimize the query?
[Editor's note: Listing 1 shows the example
table, a slow query and plan, and a faster
query and plan.]
What is the best way to achieve this faster
query plan without having to rewrite the
original query?
Although these two queries are semantically equivalent, they present very different
challenges to the optimizer. In the first
case, the optimizer will have to guess
at the value returned by the subquery,
because it has not yet executed the subquery. That is, the query
SQL> SELECT *
2

FROM t t1

WHERE t1.object_type = 'TABLE'

AND t1.object_id > (SELECT

MAX(t2.object_id) - 500000

FROM t t2);

is very much like


SQL> SELECT *
2

FROM t t1

oracle magazine July/august 2014

49

50

Ask Tom

3
4

WHERE t1.object_type = 'TABLE'

The optimizer cannot see what the


constraint against OBJECT_ID will be, and
it cannot see what value will ultimately be
plugged in there when the query executes.
Therefore, the optimizer will guess at the
estimated cardinality.
However, when you query with the
construct
SQL> SELECT *
2

Code Listing 1: Example table, slow query and plan, and faster query and plan

AND t1.object_id > ???;

FROM t t1

WHERE t1.object_type = 'TABLE'

AND t1.object_id > 19975;

the optimizer has a lot more information


to work with. It knows approximately how
many rows will come back, due to the
predicate with constant values. So what
you are dealing with is a query in which
the optimizer will have a really hard time
obtaining correct cardinality estimates
at hard parse time and therefore stands a
good chance of not selecting the optimal
planat least for the first execution. The
question is, How can you fix this without
rewriting the code to use two queries and,
optimally, without using any hints in the
production code? The answer is to temporarily use hints to get the plan you desire
but then use the SQL Plan Management
feature of Oracle Database and query plan
baselines to implement the fix, removing
the need for hints in the production environment and ensuring that you get the
plan you want, unless and until the optimizer discovers a better plan.
The reason you do not want hints in your
production code is that it is very difficult
to correctly hint a query. To properly hint a
query, you must fully, verbosely hint it. You
might discover in your testing environment
that using hints A, B, and C achieves the
plan you want but that in production, after
statistics are gathered and the data has
changed, or after a database upgrade, hints
A, B, and C may no longer do the job. Maybe
you didnt know you also needed hint D to
ensure that the optimizer would choose the
plan you wanted, even though the query
was working well by accident before. Or,

July/august 2014 Oracle.com/oraclemagazine

Here is the setup for the example table:


CREATE TABLE t AS SELECT * FROM all_objects;
ALTER TABLE t ADD CONSTRAINT t_id_pk PRIMARY KEY (object_id);
CREATE INDEX t_idx_id ON t(object_id);
CREATE INDEX t_idx_type ON t(object_type);
exec DBMS_STATS.GATHER_TABLE_STATS(user, 'T' );

Here is the slow query I would like to tune, along with its plan:
SQL> SELECT *
2
FROM t t1
3
WHERE t1.object_type = 'TABLE'
4
AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);
6115 rows selected.
Execution Plan

| Id | Operation
| Name
| Rows | Bytes |

|
0 | SELECT STATEMENT
|
|
413 | 39235 |
|
1 | TABLE ACCESS BY INDEX ROWID
| T
|
413 | 39235 |
|
2 |
BITMAP CONVERSION TO ROWIDS
|
|
|
|
|
3 |
BITMAP AND
|
|
|
|
|
4 |
BITMAP CONVERSION FROM ROWIDS|
|
|
|
|
5 |
SORT ORDER BY
|
|
|
|
|* 6 |
INDEX RANGE SCAN
| T_IDX_ID
| 8252 |
|
|
7 |
SORT AGGREGATE
|
|
1 |
5 |
|
8 |
INDEX FULL SCAN (MIN/MAX)| T_IDX_ID
|
1 |
5 |
|
9 |
BITMAP CONVERSION FROM ROWIDS|
|
|
|
|* 10 |
INDEX RANGE SCAN
| T_IDX_TYPE | 8252 |
|

Predicate Information (identified by operation id):

6 - access("T1"."OBJECT_ID"> (SELECT MAX("T2"."OBJECT_ID")-500000 FROM


"T" "T2"))
filter("T1"."OBJECT_ID"> (SELECT MAX("T2"."OBJECT_ID")-500000 FROM
"T" "T2"))
10 - access("T1"."OBJECT_TYPE"='TABLE')

Here is the query and the faster plan I would like it to use:
SQL> SELECT MAX(t2.object_id) - 500000 FROM t t2;
MAX(T2.OBJECT_ID)-500000

19975
SQL> SELECT *
2
FROM t t1
3
WHERE t1.object_type = 'TABLE' AND t1.object_id > 19975;
6115 rows selected.
Execution Plan

| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)|

|
0 | SELECT STATEMENT
|
| 7198 |
667K|
102
(2)|
|* 1 | TABLE ACCESS BY INDEX ROWID| T
| 7198 |
667K|
102
(2)|
|* 2 |
INDEX RANGE SCAN
| T_IDX_TYPE | 8553 |
|
6
(0)|

Predicate Information (identified by operation id):

1 - filter("T1"."OBJECT_ID">19975)
2 - access("T1"."OBJECT_TYPE"='TABLE')

51

maybe after a database upgrade, the optimizer introduces a new query transformation/rewrite that invalidates your hint.
Ill demonstrate the shortest list of hints
you would need to ensure that the above
query uses the plan you want, and youll see
that this list of hints is much longer than any
list of hints you would have coded yourself.
Another reason to avoid putting
hints into the query and to use SQL Plan
Management is that you enable the optimizer to evolve your query plan over time.
That is, you wont freeze your query plan,
and youll have the opportunity to use a
better plan in the future. If you fully hinted
the query, youd be stuck with whatever plan
you had today. See Baselines and Better
Plans at bit.ly/PWcxDU for a discussion of
this query plan evolution.
Now lets see how to get the plan
you want and then how to use SQL Plan
Management to put that plan in place and
have it be used transparently by your query.
In a testing environment, I discovered that
by using either the FIRST_ROWS(1) or the
OPT_PARAM( _b_tree_bitmap_plans,
FALSE ) hint to disable the use of B-tree
bitmap plans for this SQL statement, I get
the plan I want, as shown in Listing 2.
Now, if I wanted to ensure that the
plan in Listing 2 is, in fact, the plan used
by default, I would need more than just a
FIRST_ROWS(1) or OPT_PARAM hint. In fact,
when I use DBMS_XPLAN to display not only
the plans but also the full set of hints necessary to reproduce this plan reliably, I see the
plan and the outline data in Listing 3.
As you can see in Listing 3, the full list
of hints in the outline data that you need
is quite extensivefar beyond just the
OPT_PARAM hint. I can assure you that
properly hinting a query to repeatedly get
the same plan is much harder than it looks.
Also, I dont really want to freeze the plan
forever, because future releases of Oracle
Database will likely be able to rewrite the
query or perform some optimization that
just doesnt exist yet, resulting in an even
better plan. Id like to be able to take advantage of future features, but if Ive hinted the
query, I wont be able to.
So, what would the steps be to get the
optimizer to choose the desired plan until a

Code Listing 2: Getting a plan by using hints


SQL> SELECT /*+ first_rows(1) */ *
2
FROM t t1
3
WHERE t1.object_type = 'TABLE'
4
AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);
Execution Plan

Plan hash value: 1289158178

| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)

|
0 | SELECT STATEMENT
|
|
1 |
97 |
4
(0)
|* 1 | TABLE ACCESS BY INDEX ROWID| T
|
1 |
97 |
2
(0)
|* 2 |
INDEX RANGE SCAN
| T_IDX_TYPE | 1871 |
|
1
(0)
|
3 |
SORT AGGREGATE
|
|
1 |
5 |
|
4 |
INDEX FULL SCAN (MIN/MAX)| T_ID_PK
|
1 |
5 |
2
(0)

SQL> select /*+ opt_param( '_b_tree_bitmap_plans', 'FALSE' ) */ *


2
FROM t t1
3
WHERE t1.object_type = 'TABLE'
4
AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2);
Execution Plan

Plan hash value: 1289158178

| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)

|
0 | SELECT STATEMENT
|
|
94 | 9118 |
85
(0)
|* 1 | TABLE ACCESS BY INDEX ROWID| T
|
94 | 9118 |
83
(0)
|* 2 |
INDEX RANGE SCAN
| T_IDX_TYPE | 1871 |
|
6
(0)
|
3 |
SORT AGGREGATE
|
|
1 |
5 |
|
4 |
INDEX FULL SCAN (MIN/MAX)| T_ID_PK
|
1 |
5 |
2
(0)

provably better plan comes along?


First, I would capture a SQL plan baseline
for the existing querythe query with the
bad plan. Why would I want to capture the
bad plan? To establish a SQL plan baseline for
this query (into which I will load the desired
plan), I need the plan baseline to exist before
I can load the plan into it. I execute the code
in Listing 4 to create the baseline.
That is my baseline, and that plan will be
used. But it isnt what I want. The next step
is to disable that plan:
SQL> begin
2

dbms_output.put_line(

dbms_spm.alter_sql_plan_baseline

( sql_handle =>
'SQL_e738c19a5191e8fd',

attribute_name => 'enabled',

6
7

attribute_value => 'NO' )


);

end;

The database will still use that plan, but


only because it is the only game in town
right now. So lets create something better:
the first query plan in Listing 2the plan for
the SELECT /*+ first_rows(1) */ * query.
That is the plan I want. All I need to do
is load that plan in place of the bad one, as
shown in Listing 5, available in the Oraclehosted article at bit.ly/1hYmIyb.
There are now two plans loaded for that
SQL statement: onethe bad planis
disabled; the otherthe good plan (even
though it is for a different query, it can
work with this query)is enabled.
When I run the query again, as shown
in Listing 6 (available in the Oracle-hosted
article at bit.ly/1hYmIyb), I see that it used

oracle magazine July/august 2014

52

Ask Tom

Code Listing 3: Determining plan and outline info needed to make a better hinted plan
SQL> select *
2
from table(dbms_xplan.display_cursor (sql_id=>'4rg4kcxr83kup',
3
cursor_child_no => 0, format=>'+outline'));
PLAN_TABLE_OUTPUT

SQL_ID 4rg4kcxr83kup, child number 0

select /*+ opt_param( '_b_tree_bitmap_plans', 'FALSE' )


gather_plan_statistics */ *
FROM t t1 WHERE t1.object_type = 'TABLE'
AND t1.object_id > (SELECT MAX(t2.object_id) - 500000 FROM t t2)
Plan hash value: 1289158178

| Id | Operation
| Name
| Rows | Bytes| Cost (%CPU)| Time
|

|
0 | SELECT STATEMENT
|
|
|
|
83 (100)|
|
|* 1 | TABLE ACCESS BY INDEX ROWID| T
|
91| 8827|
81
(0)| 00:00:01|
|* 2 |
INDEX RANGE SCAN
| T_IDX_TYPE| 1823|
|
6
(0)| 00:00:01|
|
3 |
SORT AGGREGATE
|
|
1|
5|
|
|
|
4 |
INDEX FULL SCAN (MIN/MAX)| T_ID_PK
|
1|
5|
2
(0)| 00:00:01|

Outline Data

/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('11.2.0.2')
DB_VERSION('11.2.0.3')
OPT_PARAM('_b_tree_bitmap_plans' 'false')
ALL_ROWS
OUTLINE_LEAF(@"SEL$2")
OUTLINE_LEAF(@"SEL$1")
INDEX_RS_ASC(@"SEL$1" "T1"@"SEL$1" ("T"."OBJECT_TYPE"))
PUSH_SUBQ(@"SEL$2")
INDEX(@"SEL$2" "T2"@"SEL$2" ("T"."OBJECT_ID"))
END_OUTLINE_DATA
*/

Code Listing 4: Creating the baseline


SQL> begin
2
dbms_output.put_line(
3
dbms_spm.load_plans_from_cursor_cache
4
( sql_id => 'crvk9z6mx9n4d' )
5
);
6 end;
7 /
1
SQL> select sql_handle,
2
substr(sql_text,1,10)||'...'||
3
substr(sql_text,length(sql_text)-10) stext,
4
plan_name, enabled
5
from dba_sql_plan_baselines
6
where sql_text like
7
'SELECT%FROM t t1%(SELECT MAX(t2.object_id) - 500000 FROM t t2)';
SQL_HANDLE
STEXT
PLAN_NAME
ENA

SQL_e738c19a5191e8fd SELECT *
SQL_PLAN_fff61m98t3u7xda64b1bb YES
... FROM t t2)

July/august 2014 Oracle.com/oraclemagazine

the query plan baseline for my good plan.


With this baseline solution, there is
no permanent hintingand permanent
hinting is much harder to set up and use
than you think it is! Many hinted queries
out there in production today may be
ticking time bombs.
And there are no upgrade issues with this
baseline solution. (You may have to completely change all your hints after a database
upgrade as you add new query rewrites,
access paths, and so on. With this baseline
solution, you wont.)
And, finally, if a better plan comes along,
youll be able to use it if you are using query
plan evolution.

Tom Kyte is a database


evangelist in Oracles
Server Technologies
division and has worked
for Oracle since 1993. He
is the author of Expert
Oracle Database Architecture (Apress, 2005,
2010) and Effective Oracle by Design (Oracle
Press, 2003), among other books.

Next Steps
ASK Tom
Tom Kyte answers your most difficult technology
questions. Highlights from that forum appear in
this column.
asktom.oracle.com
READ Oracle-hosted online article content
bit.ly/1hYmIyb
READ more Tom
bit.ly/omagasktom
Expert Oracle Database Architecture
amzn.to/ckGXaR
DOWNLOAD Oracle Database 12c
bit.ly/epBiUG
LEARN more about
Oracle Database 12c
oracle.com/database
baselines
Baselines and Better Plans
bit.ly/PWcxDU
FOLLOW Tom on Twitter
@OracleAskTom
FOLLOW Oracle Database
on Twitter
@oracledatabase
on Facebook
facebook.com/oracledatabase

Find the Most Qualifed


Oracle Professional for
your Companys Future
Introducing the Oracle Magazine
Career Opportunities section the ultimate technology recruitment resource.

Oracle Magazine is the largest IT publication in the


world with a total circulation of more than 500,000.
Place your advertisement and gain exclusive and
immediate access to top talent including:
IT Managers, DBAs, Programmers and Developers.

For more information or to place your recruitment


ad or listing contact: tom.cometa@oracle.com

Copyright 2014, Oracle and/or its affliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affliates. Other names may be trademarks of their respective owners.

54

In the Field by carol hildebrand

Learning Circle, Part 1

President Alyssa Johnson talks about OAUGs evolving


mission and commitment to innovation through community.

s Alyssa Johnson takes over the reins


at Oracle Applications Users Group
(OAUG), she draws on more than 10 years of
user group participation to refine the communitys mission of connection, education,
and innovation. Oracle Magazine recently sat
down with Johnson to talk about her history
with Oracle technology, the mission of OAUG,
and collaboration.
Oracle Magazine: How did you get started
with Oracle technology?
Johnson: I got started in technology almost
30 years ago in software development in
the scientific field. I took a break from that
part of my life to concentrate on family,
and when the time was right, I was very
fortunate to have the opportunity to go
back into technology. It was then that I first
focused on Oracle and on the functional
side of applications. I was part of a Release
12 team for Oracle E-Business Suite, and
we really invested a lot of time in understanding and implementing the many features in Release 12, specifically around the
financials product family.
Oracle Magazine: And that eventually led
you to OAUG?
Johnson: Exactly. I began leading learning
sessions and regional workshops, which led
to giving presentations at COLLABORATE.
For me, it was about giving back to the OAUG
community, because when I first started
working in Oracle technology, I leveraged a lot
of the education that was provided by OAUG
through resources such as OAUG eLearning
and the Conference Paper Database.
I currently serve on the OAUG Board of
Directors, and I served as president-elect last
year. And because I worked very closely with
Margaret Wright [Johnsons predecessor], I
will be able to continue with the vision and
the strategy that she and the board had.
Oracle Magazine: Will you give a little perspective on that vision?

July/august 2014 Oracle.com/oraclemagazine

Alyssa Johnson, president of OAUG, talks about


enterprise technology, user groups, communication,
collaboration, and more.

Johnson: The mission of OAUG is to


enhance the return on investment in Oracle
Applications for its members by building a
global knowledgebase of information. We
do that through education and personal
development; through unique networking
opportunities; and through established
channels for communicating with and
advocating to Oracle, such as the OAUG
Customer Support Council.
As president, one of my focus areas is
finding innovative ways to improve the
benefits we currently provide. For example,
in the past our Conference Paper Database
has not been easy to use. But we just
released a version that is highly searchable
and easy to use.
Another area that Iand the entire
boardwant to focus on is increased
member involvement. We want to challenge each one of our members to be more
involved this year than last year. You dont
have to run for president of OAUG, but take
a look to see where your involvement helps

you learn. If you didnt participate in any of


our OAUG eLearning events last year, join
us this year. Or read an article in our OAUG
Insight magazine. Or maybe youd like to
come to COLLABORATE. We want to better
communicate to our membership about
opportunities and encourage them to be
more involved.
Oracle Magazine: Speaking of
COLLABORATE, tell us about that event.
Johnson: COLLABORATE is interesting,
because the different user groups [OAUG;
Independent Oracle Users Group, or IOUG;
and Quest] have different needs. But at the
core, all the groups are still about member
education, facilitating networking, and
communicating with Oracle. I think there
were 1,900 COLLABORATE 2014 paper submissions just for OAUG. After completing
the presentation selection process, there
were more than 1,400 sessions across all
three user groups. And with almost 200
partners involved, the exhibitor showcase
was fantastic.
One thing we did a little differently in
2014 was restructuring the Oracle Meet
the Experts session to give attendees the
opportunity to talk one-on-one with the
experts on certain topics. And we debuted
the new COLLABORATE mobile application, which lets people network with fellow
attendees right on the app and search on
different and trending topics.

Carol Hildebrand writes about business,


sports, and technology from Wellesley,
Massachusetts.

Next Steps
JOIN OAUG
oaug.org
FOLLOW OAUG on Twitter
twitter.com/OAUG1

Paul S. Howell

Analysts Corner by DAVID BAUM

Deploy Applications in
Different Environments

Organizations look to todays application server platforms to


run high-performance enterprise applications and services.

racle Magazine spoke with Maureen


Fleming, vice president of business
process management and middleware
research programs at International Data
Corporation (IDC), about the latest innovations in application server technology.
Oracle Magazine: What do organizations
look for in an application server platform?
Fleming: Most organizations today are
looking for a set of services that improve
the ease with which they can deploy
scalable, high-performance applications. Application servers such as Oracle
WebLogic Server can be purchased as part
of a suite with a broad set of additional
middleware capabilities such as distributed
data caching and identity management.
These additional services support missioncritical application deployments.
Oracle Magazine: How are open source
and proprietary application servers being
used today?
Fleming: Some organizations are now
commingling open source application
servers and proprietary application servers,
especially for custom-developed applications. You can do some amazing things with
open source technology, such as using a
lightweight application server embedded in
a tablet or in highly distributed scenarios, in
addition to serving classic custom applications. When it comes to running packaged
applications, you have to make sure your
application server is certified to run those
applications in an optimal way. Its important to pick an application server that is
recommended by the application vendor,
especially given the investments associated
with these applications.
Oracle Magazine: How are businesses using
application server technology to streamline
deployments and simplify maintenance?

A lot of things have


to come together
to build a cloud
application.
Fleming: Companies are virtualizing Java
server farms and standardizing management
across the farm. Rather than having one
application server or server cluster per application, they are creating shared environments
to improve utilization. This permits administrators to spin up or tear down instances as
needed and troubleshoot issues across the
farm. Development teams can choose the
right application server while improving operational consistency and driving down costs.
On the low end or mobile end, companies
are starting to use lightweight platforms like
Raspberry Pi or even a tablet to serve applications. On the high end, they are turning to
engineered systems such as Oracle Exalogic.
Engineered systems offer a great deal of
scalability in a plug-and-play environment
that has been preconfigured to improve
speed and performance. They let you run
larger applications than youve been able
to run in the past, so you can dream bigger
about the type of application you want to
build without hitting prior logical limits.
Oracle Magazine: How are application servers
evolving in an era of cloud computing?
Fleming: Application servers are the least
mature of all the tiers of the cloud. For
example, SaaS [software as a service] platforms predate the cloud as we know it today,
and some of these platforms are not constructed to work with leading application
server platforms.
A lot of things have to come together to
build a cloud application. This is motivating

middleware vendors to build application platform frameworks and services. Java-based


cloud application platforms are evolving
around standards that will drive some consistency in how cloud applications can be built.
Oracle Magazine: What does the future hold
for application server technology?
Fleming: Event-driven design is becoming
more and more important with the growth
of the Internet of Things and as a way to take
advantage of the growing volumes of data
that can be harnessed for business value.
For example, new digital services are being
built using sensors embedded in industrial
and consumer products that transmit data
to a collector that aggregates and looks for
indications that something is going wrong.
This prompts a notification to an application or backbone designed to manage the
response. The response may be executed on
a mobile device; it may be a task generated
by an existing application; it may be built
using BPM [business process management]
technology; or it may be a custom application running on an application server or
cloud application platform.

David Baum (david@dbaumcomm.com) is


a freelance business writer based in Santa
Barbara, California.
IDC (idc.com) is a global provider of market
intelligence, advisory services, and events for
the information technology, telecommunications,
and consumer technology markets.

Next Steps
READ more about
Oracle WebLogic Server 12c
bit.ly/1kPVs9y
DOWNLOAD Oracle WebLogic Server
bit.ly/1kPVu19

oracle magazine July/august 2014

55

1951

Flashbacks: Culture. Industry. Oracle. Oracle Magazine.

BY RICH SCHWERIN

1956

Time Capsule

Tape Drive

The Remington Rand UNISERVO was the primary I/O


device on the UNIVAC I computer, and stored up to
224 KB on a 1,200-foot-long metal tape.

Hard Disk
The refrigerator-sized IBM 350 disk drive held 3.75 MB and
leased for US$3,200 a month. Inflation adjusted, thats
nearly US$28,000 todayor US$7,400 per MB.

1970s
Floppy Disks

Data storage in the 70s and into


the 80s? Floppy. From 8-inch to
5-inch to 3-inch, these disks
of thin, flexible magnetic storage
medium were state of the art. Just
ask your mom.

SD Cards

Initially 64 MB, the Secure


Digital (SD) memory card
storage from SanDisk,
Matsushita, and Toshiba has
been getting smaller in size
and larger in capacity ever
since. (Todays MicroSD holds
128 GB.)

2000
USB Flash Drive

The first ThumbDrive


from Trek Technology
plugged into any USB port
and offered a whopping 8
MB storage capacity. And
within just a few years,
thumb drives were making
fashion statements.
Sushi, anyone?

JULY/AUGUST 2014 ORACLE.COM/ORACLEMAGAZINE

2013
Extreme
Memory

Storage from A to ZFS


Organizations are optimizing storage with
tiered Sun flash, disk, and tape solutions
from Oracle and enabling unified storage
with the Oracle ZFS Storage Appliance.

YOUR TURN

In a single rack, Oracles


Exadata Database
Machine X4 supports
88 TB of user data in
flasha capacity sufficient to hold the majority
of online transaction
processing databases in
flash memory.

FROM 8-INCH FLOPPIES TO 88 TB IN


FLASH, tell us about your first storage,
your ultimate storage, and where you
think storage will be in five years.
Visit Facebook/OracleMagazine and let
us know. bit.ly/orclmagfb

REMINGTON RAND, WIKIPEDIA COMMONS

1999

2011

56

Oracle Cloud
Applications
HCM
Human Capital
Ca
Recruiting
Re
Talent

CRM
Sales
Service
Service
vice
Marketing

ERP
Financials
Procurement
Projects
Supply Chain

More Enterprise SaaS Applications


Than Any Other Cloud Services Provider

Copyright 2013, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates.

Вам также может понравиться