Up

Papers

Technical papers and presentations from conferences and user groups.

Measure Once, Cut Twice
File Size:
132.37 kB
Author:
Cary Millsap
Date:
19 December 2008
“Measure Twice, Cut Once” is a reminder that careful planning yields better gratification than going too quickly into operations that can’t be undone. Sometimes, however, it’s better to Measure Once, Cut Twice. It’s one of the secrets behind how carpenters hang square cabinets in not-so-square kitchens. And it’s one of the secrets behind how developers write applications that are easy to fix when they cause performance problems in production use. The key is to know which details you can plan for directly, and which details you simply can’t know and therefore have to defend yourself against.
The Oracle Advisors from a Different Perspective
File Size:
921.09 kB
Author:
Karen Morton
Date:
19 December 2008
Oracle continues to add more and more automated features and advisors to assist with diagnosing and fixing problems. Given all this automation and advice Oracle is providing, a question to ask is whether or not all this advice is "dumbing us down" or "smartening us up". This paper explores this question and asks you to consider "Are you a monkey or an astronaut"?
The Oracle Advisors from a Different Perspective (PPT)
File Size:
2.34 MB
Author:
Karen Morton
Date:
19 December 2008
Oracle continues to add more and more automated features and advisors to assist with diagnosing and fixing problems. Given all this automation and advice Oracle is providing, a question to ask is whether or not all this advice is "dumbing us down" or "smartening us up". This presentation explores this question and asks you to consider "Are you a monkey or an astronaut"?
Performance Instrumentation for PL/SQL: When, Why, How (PPT)
File Size:
3.09 MB
Author:
Karen Morton
Date:
19 December 2008
Performance instrumentation is a little extra code that developers put into their PL/SQL applications that tells everyone—owners, users, system managers, and the software developers themselves—exactly where your software is spending your time. With it, managing performance is a snap. Good instrumentation makes it so normal people, not just specialists, can diagnose and solve performance problems quickly and permanently, often before your users even sense something is wrong. However, without good time-based performance instrumentation, managing performance becomes nightmarishly complex and expensive. With as little as two lines of code you will be able to monitor specific tasks in your application and make one of the most difficult steps of implementing response-time based problem diagnosis (Method R) into one of the easiest. In addition, these techniques will enable you to correlate database statistics back to business tasks and help discover those tasks that are heavy resource consumers. This presentation will provide examples of how to perform the instrumentation using Oracle's built-in packages and a free open source instrumentation package called the Instrumentation Library for Oracle (ILO). Its cost on every level is free, and the significant collateral benefits that can be achieved will make code instrumentation part of your coding standards.
For Developers: Making Friends with the Oracle Database
File Size:
926.12 kB
Author:
Cary Millsap
Date:
07 January 2009
To many application developers, a database is just a “data store” with an API that they call when they need to persist an object. It’s an abstraction that makes sense from one perspective: in a world where you’re expected to write dozens of new features every day in Java, PHP, or C#, who has the time or the inclination to dive into what’s going on deep inside the Oracle Database? As a result of this abstraction, though, developers sometimes inflict unintended performance horrors upon their customers. The good news is that you can avoid most of these horrors simply by better understanding a bit more about what’s going on inside the Oracle kernel. The trick is knowing which details you need to study, and which you can safely learn later. This presentation describes, from a developer’s perspective, some of the most important code paths inside the Oracle kernel that can make the difference between an application that breaks down under load and one that can scale to thousands of users.
Managing Statistics for Optimal Query Performance
File Size:
1.46 MB
Author:
Karen Morton
Date:
10 February 2009
Half the battle of writing good SQL is in understanding how the Oracle query optimizer analyzes your code and applies statistics in order to derive the “best” execution plan. The other half of the battle is successfully applying that knowledge to the databases that you manage. The optimizer uses statistics as input to develop query execution plans, and so these statistics are the foundation of good plans. If the statistics supplied aren’t representative of your actual data, you can expect bad plans. However, if the statistics are representative of your data, then the optimizer will probably choose an optimal plan.
Fundamentals of Software Performance Quick Reference Card
File Size:
253.68 kB
Author:
Cary Millsap
Date:
07 January 2010
This two-page quick reference card written by Cary Millsap sums up computer software performance the Method R way. The first page lists definitions of the terms you need to know: efficiency, knee, load, response time, and so on. The second page lists ten principles that are vital to your ability to think clearly about software performance. This document contains meaningful insight in a format that's compact enough to hang on your wall.
OFA Standard—Oracle for Open Systems
File Size:
157.20 kB
Author:
Cary Millsap
Date:
24 September 1995
(This is the original document published September 24, 1995, brought to you here with the kind permission of Oracle Corporation.) The OFA Standard is a set of configuration guidelines that will give you faster, more reliable Oracle databases that require less work to maintain. The OFA Standard is written by the founder of the Oracle team responsible for installing, tuning, and upgrading several hundreds of sites worldwide since 1990—this paper is based on the best practices of those hundreds of sites. Today the "Optimal Flexible Architecture" described in the OFA Standard is built into the Oracle configuration tools and documentation on all open systems ports. This paper formally defines the OFA Standard for configuring complex Oracle systems at sites demanding high performance with low maintenance under continually evolving requirements. It also details how the OFA is derived from requirements essential to successful implementation of complicated software on any system. Along with the definition of the OFA, this paper will also reveal the strategy and analysis that motivate the individual recommendations of Oracle Services’ Optimal Flexible Architecture. By reading this paper, you will more fully understand the challenges that confront the Oracle Server configuration planner.
Designing Your System to Meet Your Requirements
File Size:
89.68 kB
Author:
Cary Millsap
Date:
03 January 1996
(This is the original document published January 3, 1996, brought to you here with the kind permission of Oracle Corporation.) The technical architect of an application system is responsible for building a system that meets the goals of the end users. To succeed, this person must combine the right hardware components with suitable application architectures, always obeying complex functional, operational, and economic constraints. This job is complicated. A noticeable lack of good tools, methods, and experience have made it all the more difficult. Yet an inadequate technical architecture will doom an application. Oracle’s success in the mainframe downsizing market has begun to produce tools, methods, and experience that tremendously reduce technical architecture risk. This paper will identify factors critical to the success of a technical architecture design project. We will discuss successful methods used at the most demanding relational database projects in the world, and we will tell you how to use those methods to make your application succeed.
Configuring Oracle Server for VLDB
File Size:
261.75 kB
Author:
Cary Millsap
Date:
21 August 1996
(This is the original document published August 21, 1996, brought to you here with the kind permission of Oracle Corporation.) This paper will help the reader configure a very large Oracle Server database (VLDB) for high performance and high availability with low maintenance. It describes decisions about database block size, RAID technology and raw devices, redo log files, tablespace partitioning, storage parameters, and rollback segments. This paper explores the technologies and trade-off constraints associated with these issues and presents technically detailed methods for optimizing a configuration within these trade-offs.
System Architect’s Essential Role in Open Systems Implementations
File Size:
101.81 kB
Author:
Cary Millsap
Date:
19 May 1998
(This is the original document published May 18, 1998, brought to you here with the kind permission of Oracle Corporation.) The enormous variety of technology options available in today’s open systems environment makes the role of system architect more critical than ever on both large and small projects. More component options have led to greater flexibility and lower component prices, but also to greater complexity and, in turn, to greater risk of implementation project failure or delay due to technical miscalculations or inappropriate assumptions. System architecture is the discipline that addresses the difficult technical issues inherent in a complex software system implementation. In spite of the importance of system architecture design, many information systems practitioners lack adequate understanding of this subject area, resulting in many costly mistakes throughout information technology organizations worldwide. This paper explains the types of technical challenges the system architect must address. It illustrates the role of the system architect, the type of person required to fill that role, and the types of authority and information access that this person needs to perform effectively in the role. Finally, it describes procedures and an approach that a good system architect uses to reduce the technology risk in a software application implementation project.
Performance Management Myths & Facts
File Size:
108.04 kB
Author:
Cary Millsap
Date:
28 June 1999
(This is the original document published June 28, 1999, brought to you here with the kind permission of Oracle Corporation.) Performance management consists of problem diagnosis and repair, resource management, application optimization, and capacity planning. In constructing a reliable performance management method for hundreds of Oracle database sites, my colleagues and I have encountered bits of interesting folklore that, ironically, block progress toward the ultimate goal of lasting system performance satisfaction. In this paper, I will take a fun look at the dangers of several popular but bad guidelines, and I will offer alternative advice that helps you avoid the risk of costly performance management mistakes while not losing sight of the friendly goals: fast, easy, and cheap.
Optimizing and Oracle Database 11g (PPT)
File Size:
5.37 MB
Author:
Cary Millsap
Date:
09 November 2009
In this presentation, Cary Millsap discusses software performance in the context of Oracle Database 11g, and vice versa. Come see him describe what's new to help you achieve your goals of faster, more efficient systems that cost less.
An Industrial Engineer's Approach to Managing Oracle Databases - Robyn Sands
File Size:
292.15 kB
Author:
Cary Millsap
Date:
11 March 2008
This paper is an introduction to several concepts used in the manufacturing industry to improve efficiency. Some of these concepts will be compared to existing, well known methods in database management to demonstrate commonality between the disciplines. Other concepts will be explored to determine if there is a potential to develop new tools for database management. This paper discusses variation and why variation should be minimized where practical. The potential use of variation as a tool in performance measurement will be explored.
Thinking Clearly About Performance
File Size:
507.27 kB
Author:
Cary Millsap
Date:
11 May 2010
Creating high-performance as an attribute of complex software is extremely difficult business for developers, technology administrators, architects, system analysts, and project managers. However, by understanding some fundamental principles, performance problem solving and prevention can be made far simpler and more reliable. This paper describes those principles, linking them together in a coherent journey covering the goals, the terms, the tools, and the decisions that you need to maximize your application’s chance of having a long, productive, high-performance life. Examples in this paper touch upon Oracle experiences, but the scope of the paper is not restricted to Oracle products.
Messed-Up Apps: a study of performance antipatterns - Cary Millsap #oow10
File Size:
3.57 MB
Author:
Cary Millsap
Date:
08 October 2010
Sometimes, performance is not a matter of how you write your code; sometimes, your performance is doomed from the very design specification. In this session, Cary Millsap presents examples of applications that perform poorly and the patterns that result in reliably poor performance, no matter what development language you're using.
Mastering Performance with Extended SQL Trace
File Size:
305.93 kB
Author:
Cary Millsap
Date:
24 February 2011
Oracle's extended SQL trace data stream contains a linear sequential record of every database call and every operating system call that the Oracle kernel executes in response to the code that you write. The trace file contains timings that enable you to precisely measure how long your code takes to run and why. The detailed information about individual database calls and operating system calls is vital to building scalable applications (as well as troubleshooting them in production). The information in there is a gold mine, and some of it is available nowhere else.
My Case for Agile
File Size:
7.84 MB
Author:
Cary Millsap
Date:
27 June 2011
Among many of my Oracle database administrator (DBA) friends, “agile” is widely regarded as a dirty word, a synonym for “sloppy.” However, adopting the principles of the Agile Manifesto (specifically, the implementation of the Agile Manifesto called Extreme Programming, or XP) has radically improved the commercial and technical success of projects that I’ve worked on. Agile principles have enriched my entire life—not just professionally, but personally. The contradiction between the typical DBA’s perception of “agile” and my own is profound. This paper describes my experiences with Agile values and my implementation of them. I describe the circumstances that have led me to believe passionately that it’s XP that will best assure the success of my projects. I describe what has worked for me and why, and I describe what hasn’t worked and why.
Mastering Oracle Trace Data Class Reunion #1
File Size:
4.32 MB
Author:
Cary Millsap
Date:
01 March 2012
This is the presentation graphics from the first Method R "Mastering Oracle Trace Data" online class reunion, hosted 2012-03-01 by Cary Millsap. Topics include the MR Trace 2.0 production release, plans for the MR Tools GUI beta project, and experimental work with the profile differ called "mrd".
Mastering Oracle Trace Data Class Reunion #2
File Size:
7.27 MB
Author:
Cary Millsap
Date:
16 August 2012
This is the presentation graphics from the second Method R "Mastering Oracle Trace Data" online class reunion, hosted 2012-08-16 by Cary Millsap. Topics include the September/October events calendar, a price reduction for Method R software, a Method R software review, and a neat trick for grouping by SQL statements with hint stripping in mrskew.
Method R Software White Paper #1: A First Look at Using Method R Workbench Software
File Size:
580.40 kB
Author:
Cary Millsap
Date:
20 December 2012
Many people underestimate the value and overestimate the difficulty of Oracle tracing. Tracing is unique in how well it directly connects objective performance data to end-user performance experiences. This makes it the ideal bridge among a business’s users, its software developers, and its operational runtime support staff. With the right understanding and tools, tracing is no more difficult to obtain than other forms of Oracle diagnostic data. This paper demonstrates how to use the Method R Workbench software package to convert trace files into profiles, repair an improperly collected trace file, use profiles to diagnose an Oracle-based software performance problem, predict the effect of proposed remedies upon the end-user performance experience, fix the problem, assess the fix for potential side-effects, and then measure the end-user experience after the fix.
Why You Should Focus on LIOs Instead of PIOs
File Size:
374.60 kB
Author:
Cary Millsap
Date:
19 February 2013
Many Oracle educators teach that reducing the number of PIO calls should be the top priority of SQL optimization. However, in our field work, we commonly eliminate 50% or more of the response time from slow Oracle applications, even after they’ve been tuned to execute no PIO calls. The secret is that Oracle LIO calls are more expensive than many people understand. In this paper, I explain the following research results: (1) LIO processing is the number-one bottleneck for many business processes today, even on systems with “excellent” database buffer cache hit ratios. (2) Excessive LIO call frequency is a major scalability barrier, because LIOs consume two of the system’s most expensive resources: CPU and latches. (3) Even if you could have an infinite amount of memory and achieve a perfect 100% database buffer cache hit ratio, your system will be inefficient and unscalable if it executes more Oracle LIO calls than it needs to. (4) The statistics that database administrators commonly track can lead you to believe that PIO processing is your bottleneck when it’s not. Do not increase disk or memory capacity until after you determine the impact of PIO latency upon your end-user response times. (5) If you will focus on LIO reduction from the very beginning of a SQL optimization task instead of PIO reduction, then you will usually eliminate most of your PIOs by side-effect, because most of your PIOs are motivated by LIO calls in the first place.
MOTD Fact Sheet
File Size:
3.36 MB
Author:
Cary Millsap
Date:
10 April 2013
This PDF provides details about our one-day Master Oracle Trace Data course taught by Cary MIllsap. It is designed to give you everything that you and your manager need to decide whether this course is right for you. It includes information about the content of the course, everything you get, the Method R software that’s included in the various course packages, pricing, discounts, how to host a course at your facility, and loads of endorsements from customers who have taken the course.
“Performance is a Feature” Cary Millsap 2014-01-30 Dallas Oracle Users Group presentation
File Size:
853.32 kB
Author:
Cary Millsap
Date:
31 January 2014
Audience: application developers, database administrators, performance analysts, project leaders, system owners. To many software developers, designers, and architects “performance” is a side-effect, ...an afterthought of designing and building proper features like “book an order” or “look up a book by author.” But great performance at scale doesn't happen by accident. The first step is to know what performance is: it is the answer to the question, “What have people been experiencing?” Knowing what people experience when they use your software is possible only if you treat performance as a proper feature, a feature you analyze, design, build, test, and maintain. This session explains the steps that will get you started.