March, 2002
In This Issue
Free Oracle Utility: Code Search Utility
Myths and Folklore About Oracle8i Performance Tuning
DB2 Index Design: Analyze How Data is Used
Oracle8i PL/SQL FTP Protocol Implementation
Data Modeling Part 2: It's Really all About the Relationships

All articles have been reprinted with the written consent of their respective authors.

Atlantic OTC - April 25 & 26
Washington Convention Center - Washington, DC

Come join top industry authors and experts for this 2-day extensive technical conference.  Speakers include Steven Feuerstein, Mike Ault, Kevin Loney, Dan Hotka, Tom Kyte, and many others.  Click Here for the complete speaker list and conference abstracts.  Register now for just $300 and save $100 off the walk-in registration.

Free Oracle Utilities

Code Search Utility
By Michael Broughton

I figured that after using code samples from so many others from resources like this, it was time to give back a bit.  So, here is my small contribution to the community.

As a roving developer, I am regularly diving into new applications that have been documented poorly, if at all.  The first thing I usually need to figure out is "What sets this value".  Sure, you can check dba_dependencies, but that doesn't get you to the column level of granularity, or the the procedure level within a package.  And, if the original developer used "%type" specifications, there could be a whole lot of dependencies.  You can quickly search all_source, but what if the value is set in a trigger?  Besides, printing out the one line from all_source rarely is as informative as what you want and you wind up manually opening each stored procedure, searching for line 657, and seeing if that was the hit you wanted.

This does the legwork for you.  It checks all_source, trigger bodies, and view bodies for a case-insensitive match in either a single schema, or all of the schemas.  When it finds a hit, it prints out enough of the surrounding code to give you a good sense of what it is being used for in this instance, and if the hit is in a package body it tries to figure out the subprogram name as well.    Click Here for the Code Search Utility.

SYSOP Response: (Brian Peasland) "I got a chance to run this utility today.  It's really nice!  I like it.  I really like two things about it.  The search string is highlighted with '==>' at the start of the line.  This is a nice touch.  I also like the way each proc/fn/etc is separated by the '---End of Match---' string."
  

Oracle Administration

Myths and Folklore About Oracle 8i Performance Tuning
By Gaja Krishna Vaidyanatha, Director of Storage Management Solutions,  Quest Software
Co-author, "Oracle Performance Tuning 101", Osborne McGraw-Hill

It is hard to believe that the Oracle RDBMS has been in existence for 25 years...a fascinating but true fact.  In this period of time, it has undergone significant change.  Over the years, with core functionality transformed, it has become imperative that we keep up with change.  Every major release of Oracle makes some of us feel as though we have to re-learn the concepts all over again.  Personally, with the advent of every major release of Oracle, I feel like a brand-new DBA.

In a world that requires us to support well-designed and great performing 24x7xforever commercial applications, there is a dire need for us to keep up with time.  Failure to do so results in us propagating old and potentially irrelevant technical information to others.  And that is how myths and folklore are conceived and that also drives us to arrive at inappropriate technical decisions.  The myths and folklore discussed in this paper are all performance-related.  Although the list is not comprehensive, it encompasses some of the common ones that are out there within the context of Oracle and performance tuning.  So what is your take on the legend of Loch Ness? Does Nessie (as she is affectionately referred to) really exist?  Click Here for the article.

Have you written a Users Group paper or presentation that you would like to share with your colleagues around the world?  Send your paper to campbell.white@quest.com for possible publication in the Pipeline Newsletter.  If your article is accepted, it will be mailed to over 24,000 readers and you will receive a free gift from Quest Software as a gesture of our appreciation.
DB2

DB2 Index Design: Analyze How Data is Used
Sample Topic from Knowledge Xpert for DB2 

To understand the cost vs. benefits of using indexes, you must analyze how the data is used to determine which columns should be indexed.  Identify columns that are frequently searched or joined, and estimate the percentage of rows processed by frequently executed SQL statements.  Consider creating the clustering index on the column most frequently searched or joined in sequence.  Consider non-clustering indexes on searched or joined columns in which less than 5 to 10 percent of the rows are to be selected, updated, deleted, and joined.  Read on for more!
 

Oracle Development

Oracle 8i PL/SQL FTP Protocol Implementation
By Dmitry Bouzolin

This paper shows basic ideas of how to work with FTP protocol from an Oracle database, presenting a PL/SQL package example, which allows you to download text files right inside your Oracle database.  The task of building an Oracle package even with minimal ftp functionality is very complex and challenging, but feasible.  In this paper, the author shows the basic approach to the process.  Click Here for the paper.

Data Modeling, Part 2: It's Really All About the Relationships
By Bert Scalzo, Ph.D., Quest Software

In this paper, the second in the data modeling series, we'll examine the intricate complexities of relationships and their corresponding foreign keys.

Experience has shown that while many people can readily define entities and their unique identifiers, a relatively small percentage are really any good at modeling the relationships between those entities.  This usually occurs as the chosen data modelers are:

  • Analysts unsure of concepts such as cardinality, optionality, and normalization
  • Information systems staff unsure as to the actual business rules and requirements
  • Information systems staff more interested in the resulting database than the model
  • Information systems staff more interested in the application design than the model

In other words, DBAs and programmers quite often make the worst data modelers!  The motto has to be effective first, then efficient.  It doesn't matter if it runs fast if the results are wrong.  Likewise, it doesn't matter that in the old system it was done a certain way.  Let the business requirements dictate the model - and don't fight it.  Click Here for the paper.

A Brute Force Approach to Debugging Forms
By Ryan Gaffuri, Bloodworth Integrated Technology

You're sitting at your desk and your manager comes over to you, hands you an issue that needs to be fixed - the client is complaining because something is not working, let it be a forms crash, triggers acting improperly, or anything else.  This is the kind of thing that the Oracle documentation and the books do not discuss.  You have no idea what is going on.  You scan Metalink and OTN to see if anyone else has had this issue and find nothing.  The Oracle representative responds to your post saying that they were unable to recreate the error.  You're under time pressure.  The client and your management want this fixed.  What do you do?  Click Here for the answer.   
 

Microsoft SQL Server

XML Support in Transact-SQL
By Vakhtang Pavliashvili 

The Internet has changed our lives once and for good; most times for the better and sometimes for worse. But the bottom line is that we would never want to go back to living without email, on-line shopping and the ability to do research right from our desktop. 

Microsoft SQL Server has supported web related functionality since version 6.5, which allowed you to create somewhat crude and non-interactive HTML pages. These HTML pages display contents of your tables or queries. In the later releases the web functionality has been enhanced with web tasks and wizards that automatically create web pages according to the settings you specify. More importantly, SQL Server 2000 is one of the first relational database engines that offers native XML support. Click Here for the article.

Product Update: The new Knowledge Xpert for SQL Server v1.1 fully integrates with Microsoft's Visual Studio suite, including Visual Basic, Visual C++, and Visual InterDev.  Click Here for the announcement.

News & Events

TOAD User Groups in 20 Cities - Sign Up Today!
 

Quest Software is proud to present the 2002 TOAD User Groups, where TOAD and his entourage are hitting the road and coming to a city near you.  That's right, we are bringing you a series of free, full-day local user groups to help you get more out of your favorite development tool and exchange ideas with the real TOAD experts -- users like you!  Click Here to register.

Free e-Seminars with Steven Feuerstein

e-Seminar "en Francais"

Visit the e-Seminar Archives

Tips of the Month
Oracle DBA Tip of the Month:  Converting LONG Datatypes to VARCHAR2 on the Fly
PL/SQL Tip of the Month:  Stored Procedure to Disable/Enable Foreign Key Constraints Against a Specified Parent Table
DB2 Tip of the Month:  DB2 OS/390 Product Maintenance
SQL Server Tip of the Month: Inserting the Output of a dbcc Command into a SQL Server Table
Humor

"The TAO of Programming"
Translated by Geoffrey James
Transcribed by Duke Hillard
Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath
Re-html-ized and edited by Kragen Sittler

The wise programmer is told about Tao and follows it.  The average programmer is told about Tao and searches for it.  The foolish programmer is told about Tao and laughs at it.

If it were not for laughter, there would be no Tao.

The highest sounds are hardest to hear.
Going forward is a way to retreat.
Great talent shows itself late in life.
Even a perfect program still has bugs.

Click Here for more of this month's humor!

New Feature!!   

 
11 Across - Type of Transaction Processing
Test your database knowledge with the Pipeline Newsletter's New Monthly Crossword Puzzle. 

Click Here to Play!

 

Regular Features

Get FREE Stuff from Quest!

We love getting white papers, tips, articles, and code examples/archives from our readers around the world.  Send your submission to campbell.white@quest.com.  If your article is published, we will mail you a FREE gift from Quest as a gesture or our appreciation.

Our mission at Quest Software - RevealNet Labs is to anticipate the daily responsibilities and challenges faced by database professionals.  Our products help thousands of people solve problems and implement solutions every day.  This newsletter is designed to help facilitate the sharing of information among database professionals.  It is currently circulated to 24,000 readers.

About the Newsletter

This newsletter is distributed to Quest Software - RevealNet Labs customers, prospects and friends who have subscribed to it from our website. If you would like to unsubscribe, please send a note to info@quest-pipelines.com and we will make every effort to remove you from our list.

Subscribe a Friend!

Do you know someone who would like to receive the Pipeline Newsletter? If so, please enter their email address in the box below and click SUBMIT.

  
Subscribe to re:Quest,
Quest's Quarterly newsletter with articles, new product announcements, success stories and much more.
 

Past Issues of the Pipeline Newsletter