Great Expectations: An Interview with Tanel Poder
Tanel Poder is an experienced consultant with deep expertise in Oracle database internals, advanced performance tuning, and end-to-end troubleshooting. He specializes in solving complex problems spanning multiple infrastructure layers such as Unix, Oracle, application servers, and storage. He hosts an Oracle performance tuning blog at blog.tanelpoder.com and has published useful Oracle troubleshooting tools like PerfSheet, LatchProfX, and Session Snapper. In addition to consulting and training, Tanel frequently speaks at major conferences such as OracleWorld, UKOUG, Hotsos Symposium, IOUG-A Live, and many regional ones. Tanel is one of the first Oracle Certified Masters in the world, an Oracle ACE Director, and an OakTable Network member.
Tell us something about yourself.
I am an IT enthusiast, fascinated by the opportunities of using technology to improve our productivity and our lives. I’m focused on getting the most out of information technology, both for my clients and for me.
I started my professional career at age 16 as a part-time C developer (I was not too good at it back then, because I lacked software engineering experience). I got introduced to Unix, though, which gave me a good foundation for understanding Oracle and enterprise-class applications when I started working for a consulting company at age 19.
By now I have over 12 years of experience managing and improving Oracle-based database and application environments, plus troubleshooting; tuning; and delivering training classes for user groups, Oracle Education, and partners. Currently I’m particularly focused on researching Oracle 11g internals and its touch point with Unix/Windows for gaining fast and accurate troubleshooting skills—and, of course, for getting the most out of its new features.
I took the first public Oracle Certified Master DBA exam in the Oracle Education Center in Chicago (2002) and became the 25th–27th OCM in the world. The range of numbers is because previously there had been two internal beta exams for Oracle employees and 24 people were certified already; also a few people (like Dave Ensor) had received an honorary OCM certificate. There were four people taking the exam, but one of them, unfortunately, lost some data during a simulated crash, and a DBA cannot be called a master if they fail to deliver the most fundamental part of their work—retaining the data. So, 25th–27th it is (smile).
In 2004 I was invited to join the OakTable Network during the Miracle Database Forum. I think this is the greatest professional honor and recognition I’ve ever received, and I proudly accepted (after having to justify why MS-SQL Server is much better than Oracle to 10+ OakTable members in a public debate).
In April 2003 I also got my first international conference speaking experience from IOUG-A Live in Orlando, FL. I spoke about how to do major Oracle E-Business Suite upgrades with minimum downtime for the business. I had about 15 people attending my session in a big 300+ capacity room. But it looked like they liked it and I sure liked it. Ever since I’ve been speaking at conferences three to five times per year, depending on how busy (and lazy) I have been during that particular year.
And now I’m blogging. I hope to give something back to the community, as I have gained so much from it. But also I hope this blog becomes a good way to keep in touch with friends around the world in today’s extremely busy life— which we’ll definitely improve, eventually, as we throw even more technology at it (smile).
I’m now also an Oracle ACE Director.
What’s an Oracle ACE director?
Oracle ACE director status is Oracle Corporation’s official recognition for Oracle community members who have a track record of being community advocates on Oracle-related topics and who have advanced the Oracle technology field with their blogs, publications, and conference presentations. One difference between Oracle ACE and ACE director is that Oracle actively involves ACE directors in getting feedback and ideas about product usage and development directions.
You started your IT career as a programmer and went on to become a database administrator. Here is part of an email message that I received from a reader: “I purchased your book in order to embark on a self-study of Oracle in order to pursue a career as a DBA. My education background is of a Bachelor Degree in Information Systems (Honors) from UK. The problem is I have no background in programming and my professional experience [is] as a business analyst.” Should lack of programming experience stop someone from pursuing a career as a database administrator?
There are many DBAs out there without programming background. Understanding programming concepts and the ability to write database maintenance scripts will definitely help a lot, but nowadays this is not a prerequisite for starting as a junior DBA. If you want to end up a senior DBA, then be prepared to learn some scripting language such as some Unix shell or Perl. The good news is that the database maintenance scripts usually don’t require advanced programming skills such as multithreading, objects, etc.
Also, you could use your background as a business analyst to your advantage. If you aim toward being a development DBA or database designer, business analysis and knowledge of your company’s business can be helpful as you can communicate with end users more easily and add more value.
Certification can be a costly pursuit. In addition to the work absences, there’s the cost of instructor-led training courses; exam fees; and travel, board, and lodging. How much did you spend in acquiring the OCM credential? Was it a good investment? Would you recommend certification to other Oracle professionals? Should employers favor professionals with certification?
The total cost was around $6000. One-third of it was the exam fee, another third went for the two advanced courses I had to take as a prerequisite for the exam, and rest went on the trip from Europe to Chicago, as back in 2002 that was the only exam center giving OCM exams. This number excludes the costs involved taking the prerequisite OCP exams and, of course, all the learning time.
But yes, I think OCM was a good investment, especially as I could keep mentioning that I was one of the first OCMs out there (smile).
When looking for contract roles in the past, I had to explain to all recruiters what the heck OCM means, but once my resume passed them, I think the credential made a difference. I was definitely invited to the interview and the techies were eager to have a conversation with me.
Of course, at the interview table, you must back up what your credentials say—answer all the questions, even if some answers are simply, “I don’t know, but I know how to find out.” It doesn’t matter how many certificates or diplomas you have: if you can’t answer your job-related questions at the interview, you’re out.
You won membership in the OakTable network by arguing that SQL Server might sometimes be a better choice than Oracle. Some of those arguments might come as a surprise to those who have never worked with a database technology other than Oracle. Would you care to share some of them with us?
Heh heh, well I think it was already decided by the OakTable junta that I’d be in, but they just wanted to give me a hard time and have some good laughs. This was five years ago and I didn’t know many of the OakTable members personally yet, so it was a situation to remember. I was standing with another new Oakie-to-be on one side of the room across from 10 existing OakTable members, whom I already knew from their work and had high respect for, answering a long series of questions that they bombarded us with. I was actually nervous but it was also fun at the same time, since I knew they were just teasing us. This was an exam of personality, not technology. I don’t remember exact questions anymore, but none of the questions were serious ones (smile).
You’ve published some free Oracle tools. What do they do?
I think my Oracle Session Snapper should be the first thing to mention. This is a single SQL script containing an anonymous PL/SQL block, which allows you to take snapshots and report session-level performance statistics in Oracle. It’s very convenient to query where one or more sessions’ response time is spent with Snapper plus other statistics like number of executions, logical IOs, and more. The key design principle behind Snapper is that it does not require any change to the database whatsoever—no temporary tables, no PL/SQL packages, nothing—it’s just an anonymous PL/SQL block parsed and executed on the fly. This is especially useful for troubleshooting databases under tight change control.
Another tool of mine is LatchProfX. This is a script that allows you to be more systematic when troubleshooting latch contention issues. Whenever a session is waiting for a latch, it’s because some other session is holding it. LatchProfX allows you to easily identify who the latch holders are and why they are holding it. Again, this is an Oracle session-level troubleshooting approach; this is a more universal and reliable way for latch contention troubleshooting than the old system-wide latch sleep-based technique.
Finally, I have written an Excel-based tool called PerfSheet that I use for easy visualization of performance and other data. Basically the idea is that you can define a number of SQL queries in an Excel sheet; from there it takes just a couple of mouse clicks to run them against a database, and the result set is automatically fetched into Excel and visualized for you. There is no need to dump data to CSV and load to Excel; all data transport and visualization is done for you. This reduces many time-consuming (and boring) steps from data analysis and visualization. I have used this tool successfully in multiple troubleshooting and capacity-planning cases and sometimes use it for monitoring as well.
All the Oracle scripts and tools I’ve written have come out of necessity. I have had some problem I’ve needed to fix or I’ve realized I’m wasting too much time doing something manually over and over again. I don’t like wasting time on doing things manually, so I’ve automated some tasks with my scripts or tools. I hope they are useful for you too.
You travel more than 100,000 miles every year to speak at conferences and deliver training. How do you cope? Do you have any travel tips to share? Favorite airports?
As with my work, I optimize my travel too (smile).
For example, when I started taking (too) frequent long-haul flights, I bought good noise-canceling headphones. I can both sleep and concentrate better with these on, as it’s much quieter for me. Regarding jet lag, I’ve realized that it’s more important to have a good rest before the flight instead of trying to get myself into the right time zone by skipping a night of sleep before the flight or forcing myself to wake up really early. Also, I try to take long-haul flights that depart in the morning so I can work the whole day on the plane instead of trying to try to get some sleep in flight. Obviously, sleeping in a hotel bed works much better than sleeping on a plane.
My favorite airport is Singapore’s Changi airport. It actually feels good to be there. They have won numerous awards for their quality. They even have live piano music and occasional singers there.
Is Unix a better choice than Windows for an Oracle database and—if so—why? In your experience, is Oracle on Windows any less stable or reliable than Oracle on Unix?
By now I have realized that when running on comparable platforms (and Unix, Linux, and Windows are comparable nowadays), the quality of people involved in building and maintaining the system is much more important than the individual details of the underlying platform. With an experienced and motivated team you can build a scalable and working solution on Windows/MSSQL, just like with Unix/Oracle. With an inexperienced or unmotivated team, it doesn’t matter how good the infrastructure you use is—you will have problems. The design decisions and coding quality can hurt or benefit the end result more than change from one major platform to another.
From a technical perspective I still like Unix/Linux platforms more than Windows for running Oracle databases, as they tend to have better diagnosability infrastructure available than when running on Windows. Of course you can always download and install additional tools and debuggers, but on Unixes they usually tend to be there. On the other hand, if your company is a 100% Windows shop, go with Windows as you already have Windows experience in-house.
My personal favorite is Solaris due to its extremely good instrumentation and diagnosability tools such as DTrace. This allows me to systematically go deeper in troubleshooting without having to resort to guessing or luck.
You’ll be delivering your Advanced Oracle Troubleshooting Seminar at NoCOUG in November. Why should I come to your seminar?
The main reason is that I will provide a systematic approach to troubleshooting, along with the scripts and tools required for it. And the word Advanced in the seminar title actually means advanced too! I will show you how to drill down extremely deep in case of Oracle instrumentation bugs and complex issues such latch and mutex contention. Another reason is that I won’t cover just Oracle database in isolation, I will also talk a lot about how Oracle interacts with operating systems and hardware and how to troubleshoot Oracle from the OS side too. Finally, you will see demos during the majority of the seminar time in SQL*Plus, Unix shell, or with few GUI tools of mine. This allows showing how Oracle really works and the troubleshooting techniques in action.
This seminar is concentrated entirely on Oracle troubleshooting—understanding what exactly Oracle is doing right now or what it was doing when the problem occurred. You will gain the skill to systematically work out the reasons for crashes, hangs, bad performance, or other misbehavior.
The seminar takes a holistic approach to end-to-end troubleshooting. It will explain the full lifecycle of a database request, from database client libraries and networks to the Oracle database kernel and the underlying OS. For each layer, a troubleshooting technique is provided along with advice on using the right tool for the right problem at the right time.
The two days are full of intensive learning, reading dumps, stack traces, network packet captures, and Oracle SGA directly. You’ll be using debuggers and custom tools provided to you for real-time and post-mortem diagnosis. The emphasis is on practical troubleshooting; safety comes first and many techniques are designed to require no change to database schemas or instance parameters. I hope to see you there (smile). ▲
Interview conducted by Iggy Fernandez for the August 2009 issue of the NoCOUG Journal (Click here to view the PDF version)