<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Remote DBA Experts &#187; Application Design Review</title>
	<atom:link href="http://www.remotedbaexperts.com/Blog/tag/application-design-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.remotedbaexperts.com/Blog</link>
	<description>Remote DBA Experts Blog</description>
	<lastBuildDate>Mon, 26 Sep 2011 12:48:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Keeping Customers Happy, Part 2</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/11/the-art-of-being-a-successful-dba-keeping-customers-happy-part-2/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/11/the-art-of-being-a-successful-dba-keeping-customers-happy-part-2/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 17:00:32 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[Application Design Review]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=704</guid>
		<description><![CDATA[Introduction In today’s business environment, being a successful DBA is more than just being technical. If you want to excel in this profession, you must be seen as someone who understands both the business and technical aspects of the applications you support. In last week’s post, I started providing a general set of recommendations on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
In today’s business environment, being a successful DBA is more than just being technical. If you want to excel in this profession, you must be seen as someone who understands both the business and technical aspects of the applications you support.</p>
<p>In last week’s <a href="http://www.remotedbaexperts.com/Blog/2009/10/the-art-of-being-a-successful-dba-keeping-customers-happy-part-1/" target="_blank">post</a>, I started providing a general set of recommendations on keeping your customers happy. Today, I’ll continue our discussion on “The Art of Being a Successful DBA” with my remaining recommendations for customer satisfaction.</p>
<p><strong>Application Design Reviews</strong><br />
Yet another activity that I firmly believe in.  Just call me “Mr. Procedure”…  I’ve just seen way too many things go wrong in 20 years in this profession to not take a proactive problem prevention approach to the development process.   The bigger the application being developed, the more proactive you need to be.</p>
<p>I used to be a “high priced industry consultant” that customers would pay a fairly substantial rate for.  As a result, I would be brought in to solve the “tough problems”.   What I found was that if these customers WOULD HAVE FOLLOWED ANY TYPE OF DESIGN REVIEW PROCESS THE MAJORITY OF THESE PROBLEMS WOULD *NOT* HAVE OCCURRED.  Ok, now I’m yelling.</p>
<p>I was once asked to be onsite for a huge application turnover for a local business.  I had about 4 hours notice to drive out to a firm and help the other consulting company when they “flipped the switch” on the new application.   Although this consultant group was from the largest technical firm in our industry, documentation (and application design best practices) was dismal at best.  I just had a very uneasy feeling.  This application was BIG.  I could also tell my fellow onsite DBA was not very experienced and very overwhelmed.  He stated that most of the DBA work was done offsite.</p>
<p>Well, when “they flipped the switch” – “the lights went out”.    Nothing, and I mean nothing, wanted to run.   I looked at the other consulting DBA, his eyes were as big as pie plates.  He looked at me, said “I quit” and began to pack his equipment up.   I whispered to him “don’t ruin your career over this, let’s take a look first”.</p>
<p>Sky-high CPU was the culprit.  The next step was to look at some diagnostic information (we’ll be covering this in-depth in upcoming blogs).  Reviewing the SQL provided in a SQL Trace dump, I noticed nothing, and I mean nothing, was using bind variables.  This application also had dozens of batch jobs that processed around the clock.  The jobs were looping and hard parsing, looping and hard parsing – statement after statement after statement.</p>
<p>I thought to myself “this may not be another 36 hour, around-the-clock gig”.  The database went down, the cursor sharing parameter was changed, and the database brought up.  It was like we switched to the Energizer Bunny.  The application just ran.  I thought “wow, I never knew hard vs soft parsing made that much of a difference”.    The culprit was that this very blue consulting organization used a new fangled code generator that didn’t generate bind variables.</p>
<p>I have been involved in dozens of cases like these.  When I asked if anyone went through a performance review during the design process, I received blank stares.  The moral of this, and many other horror stories, is that they *ALL* could have been prevented if any type of design review process was followed.</p>
<p>The goal of the design review process is to identify and address application design, process flow, program logic and SQL statement problems early in the development life cycle. Identifying these issues early in the development life cycle allows them to be more easily addressed than if they were to be identified during later stages.  That last statement bears repeating.   Like any other issue you face, no matter what it is (personal, professional, whatever), the sooner you identify it, the easier it is to correct.</p>
<p>Over the years, I have come up with a set of <a href="http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/" target="_blank"><span style="text-decoration: underline;">design review meetings</span></a> that any DBA unit can follow.  These recommendations are not intended to coerce readers into using the application design review meeting examples verbatim but to emphasize the importance of a structured approach to the design review process. The seemingly endless combinations of application architectures and software products used for application development may require the creation of a fully customized design review process for each application development project. The overall goal of design review meetings is to ensure the involvement of technical support units during the application’s design and implementation. When design issues are addressed early in the development life cycle, problems are minimized and the migration from test to production is more easily accomplished.<br />
<strong> </strong></p>
<p><strong>DBA Report Cards and the 360-Degree Review Process</strong><br />
Effective measurements are required to judge the success of any activity. The quality of support the DBA unit provides should be reviewed on a regular basis. A DBA report card allows business and application development units to provide feedback on DBA support activities.</p>
<p>The report card will allow them to measure how well they feel you are meeting your Service Level Agreements.  Here are a few sample questions to start you on your way:</p>
<ul>
<li>How      would you rate the turnaround times for DBA unit work requests?</li>
<li>How      would you evaluate the DBA unit&#8217;s responsiveness to questions?</li>
<li>How      would you evaluate the DBA unit&#8217;s responsiveness to requests for      assistance?</li>
<li>Please      rank the quality of communications the DBA unit provides.</li>
<li>Please      rank the overall quality of work the DBA unit provides.</li>
</ul>
<p>All questions are ranked from 1 to 5 with 5 being the highest. You can also allow the respondents to rank the importance of each question from 1 to 5 with 5 being the highest.</p>
<p>A short survey should be attached to the DBA report card to gather additional information that can be used to improve the quality of support the DBA unit provides to their customers:</p>
<ul>
<li>What      are your top three technical challenges that you face?</li>
<li>What      are the top three non-technical challenges?</li>
<li>Please      list your current priorities. Rank them in order of importance.</li>
<li>List      the most important services the DBA unit provides. Rank them in order of      importance.</li>
<li>What      support services does the DBA unit do a good job of providing?</li>
<li>What      support services should the DBA unit improve upon?</li>
<li>What      additional services would you like the DBA unit to provide?</li>
</ul>
<p>Meetings can be held with the respondents to discuss their reviews. DBA team members participating in the reviews must be prepared to respond to criticism in a professional manner. But just as its title describes, the 360-degree review process also allows support units to provide feedback on their customer&#8217;s support requests and work activities. The 360-degree review process provides important feedback to both support units and their customers. Once again, your customers may not know that some of their expectations are unachievable until you tell them the reasons why.</p>
<p><strong>Corrective Action Reports</strong><br />
Databases are challenging to administer. As much as we would like to prevent mistakes, we do make them. That&#8217;s one of the benefits of being human; we learn from our mistakes. During my 20 years in this field, I&#8217;ve seen all kinds of mistakes made &#8211; from little ones to catastrophic. I&#8217;ve also made my fair share of them.</p>
<p>The worst one I ever experienced is when we brought a technician in from a third-party disk vendor to format what we thought was to be a single disk in a huge disk array. We just purchased the arrays and were in the process of assuming support responsibilities from the vendor. The vendor assisted us in the initial setup and data migration from our old storage devices to their new whiz-bang storage system.</p>
<p>The array stored data from dozens of Oracle databases. After 20 minutes of showing our folks how to set the necessary switches and enter the appropriate values at the prompts, the technician hit the enter key with much flair and bravado.</p>
<p>I assumed we would see the one activity light activate for the disk being formatted. Instead, I saw a whole wall of lights begin flashing and twinkling. I thought to myself &#8220;Hmmm, this can&#8217;t be good…&#8221;. I glanced at the technician and the look of horror on his face confirmed my suspicions. He then reinforced my conclusions when he stammered, &#8220;I think I just formatted the entire array.&#8221; I looked at the DBA next to me and said &#8220;Looks like we are in for a looong night.&#8221;</p>
<p>I continue to be amazed at the rapid improvements in hardware redundancy and reliability. Hardware platforms now have the ability to recognize individual component failures, bypass them, produce diagnostic information and &#8220;phone home&#8221; to report the problem to the manufacturer. But hardware components will fail. Just as the sun comes up every morning, hardware components will fail, operating systems will get tied up in knots and database bugs will manifest themselves. Such is life for a computer technician.</p>
<p>The key is to document everything that happened during the time period when the problem occurred. Documenting provides you with the information you need to prevent the problem from occurring again and your customers with information on exactly what happened. Its my experience that the more informed a customer is about the problem and the steps your unit is taking to prevent its reoccurrence, the better they feel.</p>
<p>The corrective action report should contain:</p>
<ul>
<li>A      detailed description of the error that caused the problem.</li>
<li>The      customer impact the problem caused.</li>
<li>A      timeline of the activities that were performed.</li>
<li>The      steps that were performed to correct the problem.</li>
<li>Mitigating      factors that contributed to or exacerbated the problem&#8217;s impact.</li>
<li>The      steps that will be taken to prevent the problem from occurring again.      Include who is responsible for the activity and a date the activity will      be completed.</li>
</ul>
<p>Thanks for Reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/11/the-art-of-being-a-successful-dba-keeping-customers-happy-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 2</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 16:00:17 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[Application Design Review]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<category><![CDATA[database monitoring]]></category>
		<category><![CDATA[database performance]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=140</guid>
		<description><![CDATA[Setting up a Successful Test System in Oracle This meeting is held as soon as the application developers are ready to begin the actual coding process. The ultimate goal of this meeting is for application developers to have a firm understanding of what is required to create and maintain a successful Oracle test environment. Discussions [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Setting up a Successful Test System in Oracle</strong></p>
<p>This meeting is held as soon as the application developers are ready to begin the actual coding process. The ultimate goal of this meeting is for application developers to have a firm understanding of what is required to create and maintain a successful Oracle test environment. Discussions on Oracle utilities, SQL statements, procedural code, Oracle security, batch script testing, benchmarking, testing and monitoring are of prime importance at this time. The DBA must make it clear to all involved that the DBA unit is always available to answer questions and troubleshoot poorly performing SQL throughout the entire application development life cycle. It is imperative that the DBA make every effort to find and correct problems during this stage of the development process. Maintaining a proactive stance instead of a reactive one will always prove to be beneficial when it comes to correcting design problems. There are always enough potential problems lurking in the system for the DBA to solve without adding any additional ones through faulty application design. Topics to be discussed in this meeting include:</p>
<ul>
<li>Division of duties between DBA, systems, application development and business units</li>
<li>Test hardware platform, O/S installation, configuration and administration</li>
<li>Data feeds required from other architectures</li>
<li>Data load and update processing and scheduling</li>
<li>SQL Loader control cards</li>
<li>Test system availability requirements</li>
<li>Test system backup and recovery requirements</li>
<li>Oracle security authorization</li>
<li>Tools to aid in application development</li>
<li>Oracle GRID toolset monitoring capabilities</li>
<li>In-house monitoring tools</li>
<li>Third-party vendor products</li>
<li>Benchmarking and performance measurements</li>
</ul>
<p><strong>Monitoring Performance During Testing</strong></p>
<p>Because this meeting and the previously discussed Setting Up a Successful Test System are closely related, they may be discussed together to save time and provide greater clarity. The DBA and developers need to have an understanding of what information is required to effectively monitor the performance of the Oracle application throughout the entire testing process. The DBA can offer to show developers how to use the various toolsets provided by Oracle (Oracle GRID AWR reports, SQL Trace, explain plan, autotrace, Oracle traces, V$ tables and my old favorite &#8211; Statspack) so that developers can play an active role in performance measurement. Suggested discussion topics are as follows:</p>
<ul>
<li>Names of all SQL Loader control cards and batch scripts</li>
<li>Performance measurement goals and expectations</li>
<li>Determine the test load volume (data volume, concurrent users) required to accurately predict production performance</li>
<li>Comparison of test system load to estimated production load</li>
<li>Oracle performance measurement tools. Suggested tools include:
<ul>
<li>Explain</li>
<li>SQL*Plus autotrace</li>
<li>Oracle SQL trace</li>
<li>Statspack</li>
<li>Oracle GRID monitoring components</li>
<li> V$ performance tables</li>
<li>Index utilization monitoring via ALTER INDEX MONITORING statement</li>
<li>Third party performance monitoring tools</li>
<li>LAN performance monitoring tools</li>
<li>Operating system performance monitoring tools</li>
</ul>
</li>
</ul>
<p><strong>Performance Design Reviews</strong></p>
<p>Information collected from the various performance monitoring tools is discussed at this time. One meeting may be sufficient, but large application development efforts usually require several discussions. If the DBA has maintained good communications throughout the initial stages of application design, there should be few surprises when these meetings are held. SQL tuning and tweaking recommendations are covered in this meeting. Depending on the length of the development process, follow-up meetings can be held to ensure that the application is performing as expected. Some suggested topics include:</p>
<ul>
<li>Load testing assessment: Is the load being placed on the test system large enough to accurately predict production performance?</li>
<li>Review performance statistics collected during the testing process</li>
<li>Assess SQL coding techniques by reviewing explain plan output for performance critical transactions
<ul>
<li>Index usage</li>
<li>Local/join predicates</li>
<li>Join methods</li>
<li>Subselects</li>
<li>View materialization</li>
<li>Determine if additional Oracle objects need to be created to enhance SQL performance
<ul>
<li>B-Tree Indexes</li>
<li>Bitmap Indexes</li>
<li>Function-Based indexes</li>
<li>Materialized views</li>
<li>Index organized tables</li>
<li>External tables</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>Preparation for Production Turnover</strong></p>
<p>This meeting is held to determine if there are any last-minute questions and to make certain that everyone knows what is expected of them during the final turnover process. All units that have participated in the application design or application design review process are invited to attend. To ensure that all steps necessary for a successful migration to production are executed, the use of a standardized Oracle migration checklist is highly recommended. This document will allow the DBAs and developers to concern themselves with topics that are related to this specific turnover rather than spending time on the more mundane turnover tasks that are just as important, but easily forgotten. Having a complete, well thought-out migration checklist produces a less stressful and less error prone production migration process. Topics include:</p>
<ul>
<li>Division of duties between DBA, systems, application development and business units</li>
<li>Production hardware platform, O/S installation, configuration and operation</li>
<li>Data feeds required from other architectures</li>
<li>Data load and update processing and scheduling</li>
<li>SQL Loader control cards</li>
<li>Backup and recovery</li>
<li>Oracle security authorization</li>
<li>DBA forms and turnover procedures</li>
<li>Contact information and escalation procedures</li>
<li>Post-production monitoring tools to be used</li>
</ul>
<p><strong>Post-production Turnover</strong></p>
<p>This final set of meetings is held after the production turnover is complete. Application logic errors and performance problem resolution are the prime topics of discussion. A comparison of the actual performance to the anticipated performance of the application is also discussed. The review and correction process, by its nature, is iterative. The problems are identified, a plan of attack to solve them is agreed upon and additional meetings are scheduled to review the results. As additional problems are identified, they are added to the list of problems to be solved. This iterative process continues until all major performance issues and application logic errors are addressed. The post production turnover meetings should include discussions on:</p>
<ul>
<li>Review performance statistics collected (Oracle GRID, SQL Trace, explain plan, autotrace, Oracle traces, V$ tables and Statspack)</li>
<li>Assess SQL coding techniques by reviewing explain plan output for transactions experiencing performance problems</li>
<li>Index usage</li>
<li>Local/join predicates</li>
<li>Join methods</li>
<li>Subselects</li>
<li>View materialization</li>
<li>Determine if additional Oracle objects need to be created to enhance SQL performance</li>
</ul>
<p><strong>Oracle Database Design Review Meetings &#8211; Conclusion</strong></p>
<p>These recommendations are not intended to coerce readers into using the Oracle application design review meeting examples verbatim but to emphasize the importance of a structured approach to the design review process. The seemingly endless combinations of application architectures and software products used for application development may require the creation of a fully customized design review process for each application development project. The overall goal of design review meetings is to ensure the involvement of technical support units during the application’s design and implementation. When Oracle design issues are addressed early in the development lifecycle, problems are minimized and the migration from test to production is more easily accomplished.</p>
<p>Check out <a href="http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one" target="_blank">The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 1</a>.</p>
<p>Thanks for reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 1</title>
		<link>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/</link>
		<comments>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 16:00:01 +0000</pubDate>
		<dc:creator>Chris Foot</dc:creator>
				<category><![CDATA[Tips from the Oracle Ace]]></category>
		<category><![CDATA[Application Design Review]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Data Modeling]]></category>
		<category><![CDATA[database monitoring]]></category>
		<category><![CDATA[database performance]]></category>
		<category><![CDATA[DBA Advice]]></category>
		<category><![CDATA[DBA Best Practices]]></category>
		<category><![CDATA[DBA Help]]></category>
		<category><![CDATA[DBA procedures]]></category>
		<category><![CDATA[Oracle Ace]]></category>
		<category><![CDATA[The Art of Being a Successful DBA]]></category>

		<guid isPermaLink="false">http://www.remotedbaexperts.com/Blog/?p=135</guid>
		<description><![CDATA[Let&#8217;s continue our discussion on the Art of Being a Successful DBA. The intent of this blog is to help administrators design and standardize on a formalized design review process. The goal of the design review process is to identify and address application design, process flow, program logic and SQL statement problems early in the [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s continue our discussion on the Art of Being a Successful DBA. The intent of this blog is to help administrators design and standardize on a formalized design review process. The goal of the design review process is to identify and address application design, process flow, program logic and SQL statement problems early in the development lifecycle. Identifying these issues early in the development life cycle allows them to be more easily addressed than if they were to be identified during later stages.  That last statement bears repeating.   Like any other issue you face, no matter what it is (personal, professional, whatever), the sooner you identify it, the easier it is to correct.</p>
<p>One of the overlooked duties of an Oracle DBA is to inform, educate and assist the application development staff during the application development process. Although these responsibilities may not be formally assigned to the DBA, the DBA unit often finds that they are providing these services by default. The DBA is often considered to be a seasoned veteran who spends most of their time learning the subtle eccentricities of the database management system.</p>
<p>It is the DBA’s responsibility to ensure that the overall design and implementation of the new application is proceeding according to expectations. Although application developers may be experts in SQL, procedural languages (Java, PL/SQL, C variations, TSQL, etc.), they still turn to the DBA for help with standards, procedures, performance design, error recovery and complex SQL.</p>
<p>A continuous and effective dialogue between the DBA unit, system support personnel and application developers is of utmost importance throughout the entire application design and implementation process. One method to foster effective communications is for the DBA unit to create a series of new application design review meetings. These meetings can be organized in a manner that promotes efficient application usage of the Oracle database environment. The design review meetings can be scheduled during logical break points between the different stages of the application development process.</p>
<p>The database administration team should invite representatives from the development and business units to assist in the creation (and enforcement) of the standardized review process. Application development teams will be able to help tailor the design review process to satisfy their specific design and implementation needs. Business users who will be impacted by the production turnover will provide valuable input on implementing new applications for their specific business areas. Customized checklists are created to ensure that all application and business specific issues are addressed during each meeting of the design review process.</p>
<p>It is recommended that the database administration team then communicate to all application development and business areas that any internal applications created without following the standardized review process will not be migrated to production. Having the application teams and business units participate during the creation of the standardized review process allows the DBA team to enforce the policy without being viewed as dictatorial or making rules in a vacuum. In addition, every effort should be made to “sell” the standardized design review process in all communications to application development teams and business units.</p>
<p>The following list of meetings can be used as a starting point in the creation of a structured application design review process:</p>
<p><strong>Initial Overview of Proposed System</strong></p>
<p>The kickoff meeting is held with datacenter operations support managers, operating system administrators, application team leaders, system analysts, end-user management and data administrators to discuss the application’s general purpose and function. This information will allow support technicians to determine the impact the new application will have on existing systems and allow them to begin planning the application design implementation process. The following information should be covered in this meeting:</p>
<ul>
<li>General description of purpose and function</li>
<li>Application scope (enterprise wide application that affects all business units, intra-departmental that affects several business units or departmental)</li>
<li>General application size (estimated number of programs, data objects)</li>
<li>Criticalness of the application (mission critical, application critical, non-critical)</li>
<li>Application availability requirements and downtime windows</li>
<li>Application type (decision support, business intelligence, data warehouse, data mart, online transaction processing)</li>
<li>Architecture design (web server, application server, N-tier, distributed database environment)</li>
<li>Advanced features required (replication, advanced queuing)</li>
<li>Data feeds required from other architectures</li>
<li>Load processing</li>
<li>Batch processing</li>
<li>Online transaction processing</li>
<li>Development tools used to build front-end application screens</li>
<li>Third-party tools used to provide Ad-Hoc query access</li>
<li>Procedural language used to build business logic (Java, PL/SQL)</li>
<li>Application development methodology to be used (Agile, Waterfall, RAD)</li>
<li>Number of concurrent users</li>
<li>Disk storage and data growth estimates</li>
<li>Highly available architecture discussion (RAC, Oracle Fail Safe, Data Guard, hardware vendor clustering and failover)</li>
<li>Performance expectations</li>
<li>Criteria used to judge performance</li>
<li>Security and auditing requirements</li>
<li>Hardware platform, O/S preferences/selection and sizing discussion</li>
<li>Hardware platform, O/S installation, operation and administration</li>
<li>Division of duties between the DBA, application development and business units</li>
</ul>
<p><strong>Logical Data Model Review</strong></p>
<p>This meeting is convened as soon as the logical data modeling effort is finished. The major emphasis of this meeting is to determine if the logical data model is complete and correct. The application’s process model (if one is available) can also be verified at this time. Volume statistics, object growth rates, purge criteria, referential integrity needs and application-naming conventions are also discussed. Knowing your data before hand is essential to designing processes to manipulate that data. The following topics are covered in this meeting:</p>
<ul>
<li>Determine if the data model is fully documented (entities, attributes, relationships)</li>
<li>Attributes have correct datatype, length, NULL status, default values</li>
<li>General discussion of business rules that are to be enforced by database level constraints</li>
<li>Not null constraints</li>
<li>Check constraints</li>
<li>Unique constraints</li>
<li>Primary key constraints</li>
<li>Foreign key constraints</li>
<li>Business rules to be enforced by triggers and procedures</li>
<li>Business rules to be enforced by application code</li>
<li>Logical/process model comparison</li>
<li>Volume statistics</li>
<li>Growth rates and purge criteria</li>
</ul>
<p><strong>Designing for Performance</strong></p>
<p>This meeting is held with the application development units before any physical DDL is generated by the DBA. Proper transaction design and efficient SQL coding results in less performance-oriented database alterations made during the latter stages of the design and implementation process. Determining predicate usage will allow the DBA to create additional database objects (indexes, materialized views, index organized tables) to increase SQL, and subsequently, application performance. The following information is discussed:</p>
<ul>
<li>Normalization vs denormalization or “lets collapse those 49 tables into one big one for fast read access”</li>
<li>Table access requirements and predicate usage</li>
<li>Database objects used to increase SQL performance including:
<ul>
<li>B-Tree Indexes</li>
<li>Bitmap Indexes</li>
<li>Function-Based indexes</li>
<li>Materialized views</li>
<li>Index organized tables</li>
<li>External tables</li>
<li>Data partitioning algorithms (range, hash, list, etc.)</li>
</ul>
</li>
<li>Process parallelism (parallel query, parallel DML, parallel load)</li>
<li>Transaction modeling</li>
<li>Oracle SQL performance features</li>
<li>Full table scan vs index access</li>
<li>Hash joins</li>
<li>Star joins</li>
<li>Index skip scans</li>
<li>Index fast full scans</li>
<li>Cursor sharing (SQL statement reuse and soft parse vs hard parse)</li>
<li>Bind variables</li>
<li>Reinforcement of effective SQL coding techniques</li>
</ul>
<p>Read <a href="http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-two" target="_blank">The Art of Being a Successful DBA &#8211; Application Design Review Meetings, Part 2</a>.</p>
<p>Thanks for Reading,</p>
<p><strong>Chris Foot<br />
Oracle Ace<img title="ace_2" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/ace_2.gif" alt="ace_2" width="12" height="12" /><br />
Director Of Service Delivery</strong><br />
<img title="RDBAELOGO" src="http://www.remotedbaexperts.com/Blog/wp-content/uploads/2009/07/RDBAELOGO.gif" alt="RDBAELOGO" width="205" height="44" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.remotedbaexperts.com/Blog/2009/08/the-non-technical-art-of-being-a-successful-dba-application-design-review-meetings-part-one/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

