An Interview with Linux Advocate Jason Heese on Oracle10G and Linux
Although Jason's still a young pup, (which is anyone under 30 for me) I have met few folks in my career that can match his intelligence and raw technical skill sets. He's one of the best SQL super tuners I've seen. He's not intimidated by ANY new technology or my DBA team (why are ALL DBAs Type A personalities?) so he is an excellent resource for us to draw upon. Before his head gets any bigger, let's proceed with the interview:
Question:
OK Jason, let's start with a quick review of your Linux experience.
Response:
I've been playing around with LINUX for some time now. I started in the early to mid 90's when the operating system first became available for downloading. Since that time, I've used Linux quite extensively. I have run close to a dozen different flavors of the O/S - Debian, Sourcerer, Mandrake, Red Hat, YellowDog, etc..
I guess you could describe me as a LINUX advocate and a heavy Linux user. During my spare time, I work on open source projects using Python and C++. Many of those projects involve the Linux operating system. If you're interested in learning more about open source coding projects, take a look at www.sourceforge.net. If you have some free time, working on open source projects is an excellent way of sharpening your coding skills. We can always use the help.
Question:
It seems that there is a community of developers that almost have a religious fervor for the Linux operating system. What is the lure of Linux for you personally?
Answer:
It's the whole open-source development environment that intrigues me… I'm a coder at heart and it allows me to add functionality to the operating system or specific tools by writing additional code or customizing the code provided by the original developer(s). I enjoy tuning, tweaking and coding and Linux allows me to do that. Working on O/S code is challenging. If you like this kind of stuff, the more complex the better.
Question:
What Linux environments and versions are you currently running at home?
Answer:
I'm currently running Red Hat and Gentoo. There's really no specific version for either product. I have the core products installed and then upgrade them with the different packages as they become available. Both operating systems are truly customized.
Question:
Red Hat is pretty well known. What is Gentoo?
Answer:
Gentoo is just another flavor of Linux. I like it because it is a little more customizable than some of the other Linux distributions. Gentoo allows me to compile the source code with my own optimizations and merge them into the existing Linux code set using the Gentoo Portage System. The Portage System keeps track of installed packages and allows me to update packages with automatic dependency checking.
Think of Gentoo as a coding enthusiast's version of Linux. Red Hat is downloaded as a set of packages, which are really binary executables. They are already compiled for you so everyone gets the same vanilla install depending upon what architecture they chose. If you're interested in learning more about Gentoo, take a look at www.gentoo.org. There's a lot of information on that site.
Question:
So you have installed Oracle10G on both Linux and Gentoo?
Answer:
Yes, I have it running on both systems. But Oracle is not really available on Gentoo. However, you can create a release file on your system to fool the installer that you're using Red Hat or United Linux. Another option is to run the Oracle10G installer and tell it to ignore the system PREREQs. Either way should work.
Question:
How would you compare the 10G and Oracle9i installs on Red Hat?
Answer:
It's like night and day. The 10G installer ran so much faster that I first thought it might have blown up. The 10G install was smoother and required less hacking. I had to do a lot of Googling to fix the problems I ran into with the 9i installer. I'll admit that some of the problems were dependency issues, but most were just esoteric setting changes to try and appease the installer. Compared to the 9i install, the 10G install was a dream. The only downside was that I didn't have any time to take a nap while the installer ran which left me cranky when I had to use the DBCA utility. It was that much smoother and faster.
Question:
What 10G feature impresses you the most?
Answer:
I'm a coder, not a DBA. So all of the new diagnostic tools that come with the database are of great benefit to me. If you set up ADDM and the internal database alerting features correctly, the 10G database can actually tell you what's wrong with it.
10G also contains several new V$ tables that will be of great benefit to both developers and DBAs. The first one is V$LOCK_TYPE Since I'm not a DBA, I have no idea what most of the lock types mean so having a look up table is very helpful. I also find the V$WAIT_SESSION_CLASS table very informative when I'm trying to pinpoint specific performance bottlenecks. The V$SYSTEM_WAIT_HISTORY is another table that will provide you with good tuning information, especially if you are unable to monitor a process as it was running. V$SYSTEM_WAIT_HISTORY allows you to look at previous performance stats at your leisure. Oracle continues to enhance the database to make it easier for us to debug performance problems that occurred in the past. This capability was unheard of a few years ago.
The new recycle bin feature for dropping objects could be very helpful when you've made a big mistake. In addition, the new SQL Model Clause is undoubtedly one of the most powerful enhancements made to the SQL language. In a very over simplified explanation, it allows you to do spreadsheet type manipulations in SQL. It also allows you to treat your result set as a multidimensional array. If I could provide one single reading recommendation to developers, it would be to read all of the information they can on the 10G SQL Model Clause enhancements.
In general, it looks like Oracle really focused on performance and database tuning with this release. Pretty soon we won't need you guys (DBAs) anymore. The database will tune itself.
Question:
Real funny. I think I'll revoke some of your security when we are done with this interview. Is there anything else that you would tell us about 10G?
Answer:
The database just seems to be faster right out of the box. I haven't had a chance to look into the reasons yet but trust me; it's just faster than previous releases. The optimizer is also more intelligent. I know the access paths most of my statements should take. I know my data and I've read the 9i optimizer code so I know how Oracle's access paths work. I had to use a lot of hints in 9i to get it to take the access paths I wanted. I felt like I was smarter than the optimizer. 10G is taking the correct access paths without me using hints. This is across the board too, not just for a particular type of query or join.
One more thing, the new PL/SQL compiler along with the PLSQL_OPTIMIZE_LEVEL settings can be quite helpful. The setting ranges from 0 to 2. The higher the number, the greater the effort made by the complier to optimize the PL/SQL library units. This is actually one of the first features I played around with after getting the database set up. Now, I know that everyone will want to set the optimizer to level '2', which is also the default. However, anyone who's had any experience optimizing C code knows that the highest setting is not always the best in all cases. I recommend using '1' as your optimizer level to start and then experimenting with the optimization level set at '2'.
I'm also impressed with 10G's smaller footprint on Linux. 10G provides more features than 9i with less code. It makes me feel that the code set is just cleaner in general. I was never a real fan of some of the 9i releases - especially 9.2.0.5. The optimizer just seemed to "flake out" on me occasionally. The 10G optimizer is pretty rock solid. I can't wait to look at the optimizer's code set to see how it makes access path decisions.
Question:
Where do you go when you are looking for Linux information?
Answer:
Oracle's websites are a great place to start. Technet (technet.oracle.com) has a LOT of Linux information to offer. Technet has white papers, articles, downloads and there's a whole area pretty much devoted to running Oracle on Linux. I also visit www.kernel.org and www.gentoo.org. Both of those sites have a lot of Linux information. In addition, www.puschitz.com/InstallingOracle10g.shtml has a great FAQ on installing oracle on Linux. If you are interested, gentoo-wiki.com/HOWTO_Install_Oracle_10g is a WIKI devoted to Gentoo and has information on installing Oracle on the Gentoo distribution.
If anyone would like to ask me any questions, they can usually find me on the #gentoo channel at irc.freenode.net. It's an interactive discussion (chat) area. It'll require that you download an IRC client but that's where I can be found. You'll find some Oracle Corporation tekkies hanging out there sometimes too. They are very knowledgeable and always willing to answer questions.
Question:
What is the future for Linux?
Answer:
Linux will continue to grow and continue to challenge both Windows and UNIX operating systems for market share. The O/S is becoming easier to install and administer. That's one of the reasons why mainstream technical personnel stayed away from Linux when it was first released. A lot of hacking was required to get it to install. It also took too many alterations to the kernel to get all of the applications to work. The libraries in earlier releases were also a pain; one application required one version of the GLIBC library to compile correctly while other applications required a different version. You were always switching back and forth…
Red Hat's Anaconda installer simplified the installation process and changed people's perception of Linux. Some pretty big players are also pushing Linux. IBM, Oracle - it seems like everyone but Microsoft is jumping on the bandwagon. It's the best of both worlds - open source code that is being supported by some of the major players in the industry.
Question:
What are your thoughts on Oracle supporting the Red Hat operating system directly?
Answer:
I think being able to call one company to provide both O/S and database support is an excellent idea. It reduces the amount of finger pointing. No matter where the problem resides, O/S or database server, you can talk to one support unit to help you fix it.
I think that Oracle and Red Hat should take the partnership one step further by combining both the database and O/S binaries into one combined product set. Let's face it, the database and the O/S are so co-dependent that it makes sense to combine them.