<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Neeraj Bhatia&#039;s Blog</title>
	<atom:link href="http://neerajbhatia.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://neerajbhatia.wordpress.com</link>
	<description>An Insight into Oracle Database Performance Tuning and Capacity Planning</description>
	<lastBuildDate>Thu, 26 Jan 2012 13:36:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='neerajbhatia.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/55a8ce9e8f1028ac8f7a32086f60c4a5?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Neeraj Bhatia&#039;s Blog</title>
		<link>http://neerajbhatia.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://neerajbhatia.wordpress.com/osd.xml" title="Neeraj Bhatia&#039;s Blog" />
	<atom:link rel='hub' href='http://neerajbhatia.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Do we need Smarter Developers or Smarter DBAs?</title>
		<link>http://neerajbhatia.wordpress.com/2011/12/20/do-we-need-smarter-developers-or-smarter-dbas/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/12/20/do-we-need-smarter-developers-or-smarter-dbas/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 14:00:46 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Oracle - General]]></category>
		<category><![CDATA[oracle community]]></category>
		<category><![CDATA[oracle database users]]></category>
		<category><![CDATA[oracle dba]]></category>
		<category><![CDATA[tuning oracle]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=348</guid>
		<description><![CDATA[There is an ongoing discussion about who is responsible for application performance tuning: Oracle developers or DBAs. While all Oracle database users and developers argue that it&#8217;s a DBA who is responsible for application performance tuning, DBA cries it&#8217;s a developer who write the code and so he should write it in an efficient way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=348&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is an ongoing discussion about who is responsible for application performance tuning: Oracle developers or DBAs. While all Oracle database users and developers argue that it&#8217;s a DBA who is responsible for application performance tuning, DBA cries it&#8217;s a developer who write the code and so he should write it in an efficient way and later optimize it.</p>
<p>When it comes to application performance tuning most of the times DBA remains in a tight corner, new functionalities being added to the database are just like giving more weapons to performance firefighters when it should also empower the developers community to write and test the efficient code. Whenever I listen to any Oracle community member &#8211; the way they speak is like application performance tuning is a battle to be fought only by Oracle DBAs. Look at the Oracle database&#8217;s new features in recent versions like 3-click performance tuning in Enterprise Manager Cloud Control 12c, claim that ADDM solve all the performance issues, automatic SQL tuning advisor and Real application testing. While some of these are just marketing gimmick others are really good. No doubt Oracle has put it&#8217;s heart and soul into making the product mature and easy to use for everyone, but even after so much efforts everyone who deals with Oracle databases believe that performance tuning is a sole responsibility of an Oracle DBA and all these new features are meant solely for Oracle DBAs.</p>
<p>I don&#8217;t think Oracle as a company is doing anything wrong it&#8217;s just a perception which has been made since long and become so strong in last many years that performance tuning is sole responsibility of an Oracle DBA. I must say when it comes to application performance tuning, it&#8217;s a developer who can contribute more than a DBA and its a developer who should design, write and test his SQLs and PL/SQL.</p>
<p>Almost 7 years back I started my career as a performance tuning DBA, I struggled a lot dealing with application performance tuning issue most of which were out of my control. Think about it. How many times you have left the office on Friday evening with everything well in place and all of sudden on Monday morning everyone is complaining about database performance. You as a DBA becomes from hero to villain just over the weekend. Everyone looks at you suspiciously. You look at every corner of the database for a clue but unfortunately you don&#8217;t find any. You get back to the basics and start doing all the things you have learnt over the years &#8211; take an AWR/Statspack snapshot and compare it with the known-good time and look for the clues what has changed? Now you are surprised to see many new SQLs are coming in the reports. Later discussions and meetings reveal that actually developers changed the code during the weekend. These changes were not documented anywhere, because developers are unaware that little changes to the SQLs can change the way how CBO looks at them. Forget the ITIL processes, change approval process etc, as such a thick layer of IT processes are rarely there in small Oracle shops. Generally there is a chinese wall between large developers team and small DBAs team in any company.</p>
<p>Now think about some scenarios:</p>
<ul>
<li>MultiColumn CBO Statistics is helpful in improving the selectivity estimates in situations where there is a relationship between the columns. But who is best placed to conclude such a relationship, developers or DBAs?</li>
<li>Partitioning Criteria: DBA can tell which tables should be partitioned but what should be the partitioning criteria, which partitioned indexes. Can he take such decisions without considering the table&#8217;s access criteria?</li>
<li>Index Design: Which columns should be indexes and what type of index? Without functional knowledge can we expect DBA prepare optimal index designs?</li>
</ul>
<p>How many times we have find Oracle developers who do 10053 trace to investigate why CBO is behaving in a particular way, profiling their PL/SQL codes for clues of performance improvements. Rarely! All assumes that all these tools are meant for DBAs who works as performance firefighters. Yes, this is true that Oracle DBAs work as firefighters whenever there is a performance issue, but if developers leverage this rich functionality of best database technology during development and testing phase, many of the issue could be solved before deployment.</p>
<p>Most of the times developer is a person who just passed out from a college and got a job as an Oracle developer. Sometimes Oracle developer is a person who has development experience but in other programming language like C, Java etc. So in a normal scenario developer is unaware of Oracle architecture, different ways to write optimized SQLs. So how can we expect optimized code hitting an Oracle database?</p>
<p>Now think from an Oracle DBA perspective for a second, how many times during high workload or high utilization time Oracle DBA finds top sessions are coming from TOAD and Toad-like frond-end tools which are pertaining to Oracle developers who with the help of rich functionality provided by tools are executing dumb, poorly written SQLs. Best practice says &#8211; no testing should be done in production environments, developers should not have access to dynamic public views blah blah, but that is not the case in many Oracle shops.</p>
<p>The conclusion is &#8211; we do need smarter DBAs but more importantly we really need smarter developers. Developers who look at the performance aspects of the code during early at the software development cycle, test them properly using Oracle rich set of tools like SQL trace, 10053 trace, explain plan, tkprof etc and then ultimately release them to the production database. To start with you can have a formal process in place where before any changes developers discuss them with DBA. Some examples are &#8211; before any table creation they consider how data will be populated to the table, what will be the access pattern, index design based on where clause etc. Later as the process and people get mature, you will find fine-tuned code executing on the database.</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/348/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=348&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/12/20/do-we-need-smarter-developers-or-smarter-dbas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>AIOUG Sangam11 &#8211; My Experience &amp; Presentation</title>
		<link>http://neerajbhatia.wordpress.com/2011/12/12/aioug-sangam11-my-experience-presentation/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/12/12/aioug-sangam11-my-experience-presentation/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 13:53:20 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Capacity - General]]></category>
		<category><![CDATA[Public Appearance]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=352</guid>
		<description><![CDATA[Today I am back from AIOUG Sangam11. It was a great experience seeing and listening to others &#8211; Arup Nanda, Kuassi Mensah, Richard Niemiec and Bryn Liewellyn. The session which I liked most was &#8220;PL/SQL Enhancements in Oracle Database 11g&#8221; by Bryn Liewellyn. He had an excellent slide deck and on top of that he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=352&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I am back from AIOUG Sangam11. It was a great experience seeing and listening to others &#8211; Arup Nanda, Kuassi Mensah, Richard Niemiec and Bryn Liewellyn. The session which I liked most was &#8220;PL/SQL Enhancements in Oracle Database 11g&#8221; by Bryn Liewellyn. He had an excellent slide deck and on top of that he presented with great enthusiasm and style. Then comes Richard Niemiec &#8211; he wonderfully presented Oracle Exadata features and configuration. Rest most of the sessions were by Oracle Product Managers &#8211; I didn&#8217;t like them much.</p>
<p>I am happy with my presentation. It was satisfactory to see large and active audience. No surprise these days people are so interested in capacity planning stuff and Oracle DBAs community is not an exception. Those who couldn&#8217;t make this time can find the presentation here:</p>
<p><a href="http://neerajbhatia.files.wordpress.com/2011/12/neerajbhatia_presentation.pdf" target="_blank">Sangam11 Presentation &#8211; &#8220;Did Someone Say the Word Capacity?&#8221;</a></p>
<p>In short, it was a great show and credit goes to complete AIOUG team.</p>
<p>Cheers,</p>
<p>Neeraj</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/352/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/352/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/352/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=352&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/12/12/aioug-sangam11-my-experience-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>AIOUG Sangam11 &#8211; My Presentation on Oracle Database Capacity Planning</title>
		<link>http://neerajbhatia.wordpress.com/2011/10/08/aioug-sangam11-my-presentation-on-oracle-database-capacity-planning/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/10/08/aioug-sangam11-my-presentation-on-oracle-database-capacity-planning/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 13:59:15 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Capacity - General]]></category>
		<category><![CDATA[Public Appearance]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=338</guid>
		<description><![CDATA[On 9th December in Bangalore, India I will deliver a presentation at the annual meet of the All India Oracle Users Group (AIOUG) &#8211; Sangam11. My presentation is entitled &#8220;Did someone say the word &#8216;Capacity&#8217;?&#8221; It is about how to proactively detect the performance problems before they actually happen and Capacity plan your Oracle database. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=338&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On 9th December in Bangalore, India I will deliver a presentation at the annual meet of the All India Oracle Users Group (AIOUG) &#8211; Sangam11.</p>
<p>My presentation is entitled &#8220;Did someone say the word &#8216;Capacity&#8217;?&#8221; It is about how to proactively detect the performance problems before they actually happen and Capacity plan your Oracle database. It will demonstrate the methods with an example. You would enjoy the content I have prepared.</p>
<p>Full details are available on the AIOUG website.</p>
<p>I know, it is too early, but hoping to see you there!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/338/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/338/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=338&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/10/08/aioug-sangam11-my-presentation-on-oracle-database-capacity-planning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>Capacity Planning and Performance Management on IBM PowerVM Virtualized Environment</title>
		<link>http://neerajbhatia.wordpress.com/2011/10/07/capacity-planning-and-performance-management-on-ibm-powervm-virtualized-environment/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/10/07/capacity-planning-and-performance-management-on-ibm-powervm-virtualized-environment/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 17:18:51 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Capacity - General]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=315</guid>
		<description><![CDATA[It&#8217;s always a great opportunity when you get a situation which you never faced, scenario you never worked on, technology you never experienced. As someone rightly said &#8211; the new challenges we confront today, decide our knowledge curve tomorrow. I believe in this philosophy and always challenge myself with something new. As a capacity planner, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=315&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always a great opportunity when you get a situation which you never faced, scenario you never worked on, technology you never experienced. As someone rightly said &#8211; the new challenges we confront today, decide our knowledge curve tomorrow. I believe in this philosophy and always challenge myself with something new.</p>
<p>As a capacity planner, I have to be proficient in virtualization techniques and latest happening in this space. Last year I got an opportunity to work on IBM&#8217;s power systems.  Being from Solaris/Linux background it was quite difficult in the beginning to grasp the terminologies as they are different from Oracle VM, Solaris logical domains. So I decided to learn it and get comfortable with it. My paper is a result of my efforts in that direction.</p>
<p>Virtualization is integral part of today&#8217;s Infrastructure and beleive it or not most of the applications/services we use on a daily basis run on virtualized environment &#8220;beautifully&#8221; wrapped with cloud&#8217;s charasteristics. There are several virtualization technologies and the vendor market is also crowded enough. In my paper I have discussed operating system virtualization offer from IBM. Hope you will enjoy the reading. Any comments (postive/negative), feedback, corrections are most welcome.</p>
<p><a title="Capacity Planning and Performance Management on IBM PowerVM Virtualized Environment" href="http://neerajbhatia.files.wordpress.com/2011/10/powervm_capacity_planning.pdf">Link to the paper</a></p>
<div>
<p>Happy reading &#8230;</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=315&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/10/07/capacity-planning-and-performance-management-on-ibm-powervm-virtualized-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>Data Loss, Disaster and Pain</title>
		<link>http://neerajbhatia.wordpress.com/2011/07/26/data-loss-disaster-and-pain/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/07/26/data-loss-disaster-and-pain/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:34:34 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Other Discussion]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=311</guid>
		<description><![CDATA[Today, after 2 days of incident, Dell Support confirmed that my hard drive is failed. I was keeping hope that it would be due to mother-board, memory stick etc, but happening in a Murphy&#8217;s law way, the problem zeroed down to hard disk. The part of a computer system where actual data resides. And in my case, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=311&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today, after 2 days of incident, Dell Support confirmed that my hard drive is failed. I was keeping hope that it would be due to mother-board, memory stick etc, but happening in a Murphy&#8217;s law way, the problem zeroed down to hard disk. The part of a computer system where actual data resides.</p>
<p>And in my case, it was not only data but the data which meant to me a lot.  To name some things &#8211; I was actively working on a book, so lost one-month worth of my chapters,  in parallel working on 3 technical papers and research work, which all lost, 2 month&#8217;s efforts and research lost. All my web-accounts and financial data/ acc-info is lost.</p>
<p>I am socked, angry, frustrated and hopeless all at the same time. Don&#8217;t know how much time it will take to recover from this painful situation.</p>
<p>Lessons learnt.  That&#8217;s the only positive thing I can say now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/311/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=311&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/07/26/data-loss-disaster-and-pain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding Oracle Database Licensing Policies</title>
		<link>http://neerajbhatia.wordpress.com/2011/01/17/understanding-oracle-database-licensing-policies/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/01/17/understanding-oracle-database-licensing-policies/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 11:33:42 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Oracle - General]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=277</guid>
		<description><![CDATA[Today I&#8217;ve chosen to blog about Oracle database licensing policy for two reasons. First, My experience with Oracle databases always revolved around the performance tuning work, so I never had to bother about licensing bits. In last few months quite number of times some friends in my network approached me about how Oracle license its [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=277&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve chosen to blog about Oracle database licensing policy for two reasons. First, My experience with Oracle databases always revolved around the performance tuning work, so I never had to bother about licensing bits. In last few months quite number of times some friends in my network approached me about how Oracle license its products. In latest situation, at my workplace I&#8217;ve been asked to review the Oracle licenses for a large data center with virtualized environment. Secondly technology has evolved very fast in recent years. Virtualization and Cloud computing has really made the licensing policies more complex. This triggered me to dig into the details and write about it.</p>
<p>My intent is to discuss about Oracle policies for educational purpose and if you are planning to buy/renew Oracle license for your environment, I strongly recommend to refer official Oracle policies. Some of the links, I have mentioned at the end for your reference.</p>
<p>With the intention to make this post self-contained, I have discussed some additional things which are related to licensing policies like different Oracle database editions, hardware terminology, Cloud computing etc.</p>
<p>Without further ado, let&#8217;s start our discussion with licensing for an Oracle database running on physical servers (non-virtualized environments). Licensing requirements in this case depends on database edition, software environment and whether you want to license based on named users or number of processors. Before delving into actual details, let me quickly touch base on these criteria.</p>
<p>Database environment: Typically we can differentiate database environments into three categories:</p>
<ul>
<li>Development Environment</li>
<li>Test Environment</li>
<li>Production Environment</li>
</ul>
<p>You can use full database licenses for development OR optionally you can download absolutely free database software from Oracle Technology Network (OTN). In order to download an Oracle product from OTN, you have to accept the OTN Development License. According to this agreement, user can use the licensed product for development purpose and has not the right to deploy applications.  Please refer references section for further details on OTN licensing. Test and Production environments must be fully licensed and OTN option is only available for development environments.</p>
<p>Now a brief discussion about various Oracle database editions. Oracle database comes in five flavors or edition, each suitable for different scenario.</p>
<ul>
<li>Express Edition: This is an entry-level, small-footprint database that&#8217;s free. Of course it comes with certain restrictions, It can be installed on any size host machine with any number of CPUs (one database per machine), but can store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.</li>
<li>Personal Edition: This edition of an Oracle Database is designed to provide software developers a cost effective, yet full featured Oracle Database environment without technical limits.</li>
<li>Standard Edition One:  It is an affordable, full-featured database for servers with up to two sockets.</li>
<li>Standard Edition: Standard Edition is an affordable, full-featured database for servers with up to four sockets.</li>
<li>Enterprise Edition: The Oracle Database Enterprise Edition (EE) offers industry-leading database solution without any restriction.</li>
</ul>
<p>For further differences between various database editions, refer MOS Doc ID 465455.1<br />
Now let&#8217;s take a step further, and discuss hardware terminologies:</p>
<ul>
<li>Socket: Physical receptacles on server main boards that accommodate CPU packages. Our laptop has 1 socket.</li>
<li>CPU package: A silicon die which fit into socket.</li>
<li>CPU core: The core is a self contained execution unit on the silicon die and capable of doing processing. Multi-core CPUs have multiple execution cores on the single piece silicon die.</li>
</ul>
<p>These days most of the processors are of multicore capability (dual and quad core, also called 2-way and 4-way respectively). This means that a single physical package has more than one execution core. Thus a server can have multiple physical sockets and a single physical socket in turn can accommodate a package with more than one execution core. This means a machine with 2 physical sockets, can accommodate 4 CPUs; and if each package is dual core, we have 8 cores of execution.</p>
<p><a href="http://neerajbhatia.files.wordpress.com/2011/01/picture.jpg"><img class="aligncenter size-full wp-image-281" title="Socket CPU and Cores" src="http://neerajbhatia.files.wordpress.com/2011/01/picture.jpg" alt="" width="819" height="374" /></a></p>
<p>License Metrics: Oracle database can be licensed using two metrics,  Named User Plus or Processor with the exception of the Personal Edition which can only be licensed using the Named User Plus metric.</p>
<p>The Named User Plus metric is used in environments where users (or non-human devices accessing the database, for eg temperature monitoring device) can be easily identified and counted.  The Processor metric is used where users cannot be easily identified and counted, such as internet-based applications.  The Processor metric is also used when it is more cost effective than Named User Plus licenses.</p>
<p>Let&#8217;s start with Named User Plus licensing for different database editions:</p>
<ul>
<li>Standard Edition One can only be licensed on servers that have a maximum capacity of 2 sockets. It requires a minimum of 5 Named User Plus licenses or the total number of actual users, whichever is greater.</li>
<li>Standard Edition can only be licensed on servers that have a maximum capacity of 4 sockets. It requires a minimum of 5 Named User Plus licenses or the total number of actual users, whichever is greater.</li>
<li>The Enterprise Edition requires a minimum of 25 Named User Plus per Processor licenses or the total number of actual users, whichever is greater.</li>
</ul>
<p>Example:  A customer who wants to license the Database Enterprise Edition on a 4-way box will be required to license a minimum of 4 processors * 25 Named User Plus, which is equal to 100 Named User Plus.</p>
<p>Oracle&#8217;s processor based licensing are based on number of CPU cores but number of total CPU cores should be converted to number of processor. Oracle has a predefined core processor licensing factor which you can use for your platform.  So all cores on all multi-core chips are to be aggregated before multiplying by the appropriate core processor licensing factor and all fractions of a number are to be rounded up to the next whole number.<br />
As explained Oracle Standard One and Standard editions are licensed based on the sockets with restriction of 2 and 4 sockets respectively, for such editions a processor is counted equivalent to a socket; however, in the case of multicore-chip modules, each core in the multi-chip module is counted as one occupied socket. It means 2-socket server each having one dual-core CPU, will be considered as 4 sockets server and is not eligible for Standard One edition installation.</p>
<p>Let&#8217;s take another example of a multi-core chip based server with total 6 cores and an Oracle Processor Core Factor of 0.25, which would require 2 processor licenses (6 multiplied by 0.25 equals 1.50, which is then rounded up  to the next whole number, which is 2).<br />
Also a multicore hardware platform not specified in the Oracle Processor Core Factor Table, will have a core processor licensing factor of 1.0, means all the cores will be equivalent to a processor.</p>
<p>Now, let&#8217;s discuss licensing for virtualized environments. There can be two types of virtualized environments: soft-partitioning and hard-partitioning. In soft-partitioning, CPU capacity can be changed on runtime as additional resource is needed. This is a flexible way of managing resources. In hard-partitioning, a physical server is separated into distinct smaller systems, each with its own CPUs. Oracle licensing is straightforward. One has to license for all the CPUs configured on the system in case of soft partitioning and only for number of CPUs configured to that partition in case of hard partitioning. Here are few illustrations:</p>
<ul>
<li>A server has 32 CPUs installed, but it is hard partitioned and only 16 CPUs are made available to run Oracle.  The customer is required to license Oracle for only 16 CPUs.</li>
<li>A server comes with 30 CPUs and Oracle is installed on this server.  If this server cannot be hard partitioned, the customer must obtain licenses for all 30 CPUs.</li>
</ul>
<p>On cloud computing environment, Amazon Web Services (AWS) is the only cloud service vendor licensed to run Oracle database. AWS offering is termed as Amazon Elastic Compute Cloud (EC2). In the cloud environment, licensing is based on the number of virtual cores and each virtual core should be considered equivalent to a physical core.<br />
It means for Oracle Standard Edition One or Standard Edition, EC2 instances with 4 or less virtual cores are counted as 1 socket, which is considered equivalent to a processor license. For EC2 instances with more than 4 virtual cores, every 4 virtual cores used (rounded up to the closest multiple of 4) equate to a licensing requirement of 1 socket. It means, under cloud computing, Standard Edition can only be licensed on EC2 instances up to 16 virtual cores and Standard Edition One can only be licensed on EC2 instances up to 8 virtual cores.</p>
<p>For Enterprise editions, virtual cores should be converted to number of processors using standard core processor licensing factor. For example, licensing Enterprise Edition on a single EC2 instance of 8 virtual cores (platform with core processor licensing factor of 0.5) would require 8 * 0.5 = 4 processor licenses.<br />
Standard named user plus licensing policies are also applicable in cloud environment.</p>
<p>That&#8217;s the end of the story. Please feel free to post comments if you have questions or feedback to share.</p>
<p>References (Further Reading) &#8230;<br />
1) <a href="http://www.oracle.com/technetwork/licenses/standard-license-152015.htm" target="_blank">Oracle Technology Network Developer License Terms</a></p>
<p>2) <a href="http://www.oracle.com/us/corporate/pricing/specialty-topics/index.html" target="_blank">Different Oracle Database Licensing Policies </a></p>
<p>3) <a href="http://www.oracle.com/us/corporate/pricing/software-investment-guide/index.html" target="_blank">Oracle&#8217;s Software Investment Guide</a></p>
<p>4) <a href="http://www.oracle.com/us/corporate/pricing/price-lists/index.html" target="_blank">Oracle Price List</a></p>
<p>5) <a href="http://www.oracle.com/us/corporate/contracts/license-service-agreement/index.html" target="_blank">Oracle Processor Core Factor Table</a></p>
<p>6) <a href="https://shop.oracle.com" target="_blank">Online Purchase of Oracle Products</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/277/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=277&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/01/17/understanding-oracle-database-licensing-policies/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>

		<media:content url="http://neerajbhatia.files.wordpress.com/2011/01/picture.jpg" medium="image">
			<media:title type="html">Socket CPU and Cores</media:title>
		</media:content>
	</item>
		<item>
		<title>Edition-Based Redefinition: My wish once again comes true</title>
		<link>http://neerajbhatia.wordpress.com/2011/01/14/edition-based-redefinition-my-wish-comes-true-once-again/</link>
		<comments>http://neerajbhatia.wordpress.com/2011/01/14/edition-based-redefinition-my-wish-comes-true-once-again/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 10:49:03 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Oracle - General]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=267</guid>
		<description><![CDATA[Today I did random browsing of Oracle blogs and I found an interesting post about database 11gR2 new feature called Edition-Based Redefinition by Christian Antognini. Here is a link to the blog post. I recommend you to read the paper and browse documentation library for the further details. Edition-based Redefinition Just after I started reading the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=267&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I did random browsing of Oracle blogs and I found an interesting post about database 11gR2 new feature called Edition-Based Redefinition by Christian Antognini. Here is a link to the blog post. I recommend you to read the paper and browse documentation library for the further details.</p>
<p><a href="http://antognini.ch/2010/12/edition-based-redefinition-update/" target="_blank">Edition-based Redefinition</a></p>
<p>Just after I started reading the post, I realized that my one more wish came true. With this new functionality, you can have various versions of a database object in the same database and Oracle will manage the versions based on its edition.</p>
<p>Now If I go back into the past and recall my experience with the version 9i, developers used to create different versions of their piece of work (PL/SQL code) and save in the same production database. As you can expect, It resulted in so many packages and procedures with dates (or change request number) appended with the names in the production schema. This sometimes resulted in delay in packages compilation times and wrong packages become live etc.<br />
Previously we could keep different versions of a same object by saving them in different schemas, but with this new functionality you can have a hierarchy of versions V1, V2 etc.</p>
<p>Once again, Oracle has surprised me with their development. It seems someone in the Oracle development team is hearing my wishes. This is the second instance, when one of my desired feature had lately added to the kernel. First I wished to have a OS-like recycle bin in the database itself and Oracle had introduced in the version 10g onwards.<br />
Now I think I should better document my desired features and wait for them to become true  :-)</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=267&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2011/01/14/edition-based-redefinition-my-wish-comes-true-once-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>How to Generate Random Data for Test Cases using DBMS_RANDOM in Oracle</title>
		<link>http://neerajbhatia.wordpress.com/2010/11/20/how-to-generate-random-data-for-test-cases-using-dbms_random-in-oracle/</link>
		<comments>http://neerajbhatia.wordpress.com/2010/11/20/how-to-generate-random-data-for-test-cases-using-dbms_random-in-oracle/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 03:12:38 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Oracle - General]]></category>
		<category><![CDATA[DBMS_RANDOM]]></category>
		<category><![CDATA[Random Numbers]]></category>
		<category><![CDATA[Testcase]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=208</guid>
		<description><![CDATA[Generating random numbers is a capability of any application software system, and so of Oracle database. And that&#8217;s my today&#8217;s point of discussion. I am sure most of the readers must be already aware about the Oracle-supplied DBMS_RANDOM package and its capabilities. So this post is more for me to document my learning for future references and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=208&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Generating random numbers is a capability of any application software system, and so of Oracle database. And that&#8217;s my today&#8217;s point of discussion. I am sure most of the readers must be already aware about the Oracle-supplied DBMS_RANDOM package and its capabilities. So this post is more for me to document my learning for future references and for the novice members of our Oracle community.</p>
<p>There are various applications of random numbers, one of them is to prepare data set for testing purposes. As Jonathan Lewis discussed in <a href="http://jonathanlewis.wordpress.com/2007/01/17/philosophy" target="_blank">philosophy post</a>, one doesn&#8217;t has to wait for the various scenarios to come, he can always construct relevant test cases and develop his knowledge. Obviously first step is to build relevant and appropriate testcases where underlying data is simulated to the actual scenario. This is where random number generation comes into the picture. In another example web-based application developers may want to generate random password strings for the new registered users and later, on first login ask for password reset.</p>
<p>Regular blog readers must have noticed several &#8220;innovative&#8221; ways of generating random numbers through dbms_random. dbms_random package is one of the package available in Oracle to generate random numbers, I said &#8220;one of the package&#8221; as in release 10g, much-better dbms_crypto package was introduced which can also generate random numbers. Although you can write PL/SQL code to generate random numbers but Oracle suggests that because DBMS_RANDOM calls Oracle&#8217;s internal random number generator so it&#8217;s always faster and efficient.</p>
<p>The dbms_random package is created as part of Oracle database installation. The script dbmsrand.sql which can be found in the built-in packages source code directory ($Oracle_Home/rdbms/admin) contains the source code for this package&#8217;s specification. This script creates sys.dbms_random and its public synonym with the same name and grant execution privilege to public.</p>
<p>There can be two areas of discussion w.r.t. dbms_random: Oracle&#8217;s logic of random number generation and second how to use procedures to generate random numbers in various practical scenarios. The second area recently come to my attention and I think it&#8217;s worth to discuss it. Readers are welcome to read dbmsrand.sql script for understanding of Oracle&#8217;s algorithm of random number generation; I may discuss it later.</p>
<p><strong>Concept</strong></p>
<p>In software application terms random number generator is a computer program designed to generate a sequence of numbers or character strings that lack any pattern, i.e. appear random. There are two principal methods used to generate random numbers. One measures some physical phenomenon that is expected to be random and then compensates for possible biases in the measurement process. The other uses computational algorithms that produce long sequences of apparently random results, which are in fact completely determined by a shorter initial value, known as a seed. The latter type is often called pseudorandom number generators. A &#8220;random number generator&#8221; based solely on this way cannot be regarded as a &#8220;true&#8221; random number generator, since its output is inherently predictable.</p>
<p>So any pseudo-random number formula depends on the seed value to start the sequence. If you start with the same seed, you will get the same sequence of values from the formula. To create a random and unpredictable sequence, the seed must be a truly random number. To get this truly random number for the seed, most programs use the current date and time, converted to an integer value (for example, converted to the number of seconds that have elapsed since January 1, 1970). Since this is a different number every time you start the program, it makes a good seed. Some programs generate multiple seed values through some logic and then take the average of these to generate sequence of random numbers.</p>
<p><strong>Getting started with dbms_random</strong></p>
<p>As discussed, there are two steps to generate the random numbers: first initialize the package and second generate the actual data. By initializing we mean providing a seed value. By default, the package is initialized with the current user name, current time down to the second, and the current session. Following is an excerpt from the &#8220;dbmsrand.sql&#8221; script, which do implicit initialization.</p>
<p><pre class="brush: sql; gutter: false;">
-- initialize if needed

IF (need_init = TRUE) THEN

seed(TO_CHAR(SYSDATE,'MM-DD-YYYY HH24:MI:SS') || USER || USERENV('SESSIONID'));

</pre></p>
<p>If the package is seeded with the same seed and then accessed in the same way, it will produce the same results in both cases. This is important in cases when one wants to generate re-producible test case. In such a case, same seed is recommended.</p>
<p><strong>Summary of dbms_random Subprograms</strong></p>
<p style="text-align:left;">Following chart displaying the subprograms of DBMS_RANDOM package. The names in the ovals are procedure, while names in the rectangles are functions. Also, subprograms with shaded-boxes (i.e. Initialize, Random and Terminate) are obsolete now.</p>
<p style="text-align:left;">&nbsp;</p>
<div id="attachment_214" class="wp-caption aligncenter" style="width: 653px"><a href="http://neerajbhatia.files.wordpress.com/2010/11/dbms_random_subprograms.jpg"><img class="size-full wp-image-214" title="dbms_random_subprograms" src="http://neerajbhatia.files.wordpress.com/2010/11/dbms_random_subprograms.jpg" alt="" width="643" height="291" /></a><p class="wp-caption-text">dbms_random_subprograms</p></div>
<p>1)   Initialize Procedure: The syntax of Initialize procedure is dbms_random.initialize(val in binary_integer). It initializes the package with a specified seed value. In 10g this procedure is obsolete as it simply calls the SEED Procedure.</p>
<p>2)   Seed Procedure: This procedure resets the seed that is automatically set by Oracle. This is an overloaded procedure and accepts number or character string as an input.</p>
<p>3)   Normal Function: Returns random numbers in a normal distribution. This function returns random numbers in a standard normal distribution.</p>
<p>4)   Random Function: Generates a random number greater or equal to -power(2,31) and less than power(2,31). This procedure is obsolete in 10g and replaced by Value function.</p>
<p>5)   Value Function: Again this function is overloaded and without any arguments it returns a random number, greater than or equal to 0 and less than 1 with 38-digit precision means 38 digit to the right of the decimal . Alternatively, this function returns a random number which is greater than or equal to low and less than high values passed as arguments.</p>
<p>6)   String Function: This function generates a random string. It takes two parameter opt and len which are for string type to be generated and the length of the string. Following are some pre-assigned values to the opt parameter, providing any other character as an argument will result in uppercase alpha characters.</p>
<ul>
<li> &#8216;u&#8217; OR &#8216;U&#8217; &#8211; Returns string in uppercase alphabetic characters</li>
<li>&#8216;l&#8217; OR &#8216;L&#8217; &#8211; Returns string in lowercase alphabetic characters</li>
<li>&#8216;a&#8217; OR &#8216;A&#8217; &#8211; Returns string in mixed case alphabetic characters</li>
<li>&#8216;x&#8217; OR &#8216;X&#8217; &#8211; Returns string in uppercase alpha-numeric characters</li>
<li>&#8216;p&#8217; OR &#8216;P&#8217; &#8211; Returns string in any printable characters.</li>
</ul>
<p>7)   Terminate Procedure: When we are finished with the package we can call Terminate procedure to close the package. However, this procedure is obsolete now so it does nothing.</p>
<p><strong>Examples</strong></p>
<p>So far we have covered the theoritical aspects of dbms_random package. It&#8217;s time to see some examples. Let&#8217;s start our discussion with normal() function to generate random numbers which are in normal distribution. The following code will generate 100,000 numbers which are in the normal distribution.</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; exec dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select trunc(dbms_random.normal * 1000) from dual connect by level &lt;=1e5;
</pre></p>
<p>It&#8217;s worth to note that I&#8217;ve called seed() procedure, thus making this code reproducible. Following graph is generated after applying the truncate function on the data. This is a famous bell-curve showing that data is following normal distribution.</p>
<p><a href="http://neerajbhatia.files.wordpress.com/2010/11/bell_curve.jpg"><img class="aligncenter size-full wp-image-223" title="Bell_Curve" src="http://neerajbhatia.files.wordpress.com/2010/11/bell_curve.jpg" alt="" width="491" height="229" /></a></p>
<p><strong>Numeric Data:</strong> Let&#8217;s suppose we want to generate 5 random numbers between 1 and 10,000 with 2-digits precision.</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; exec dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select trunc(dbms_random.value(1,10000),2) rand_num from dual connect by level &lt;=5;
RAND_NUM
----------
634.58
8284.76
2318.97
2183.62
3702.22
</pre></p>
<p>If we want to generate random numbers less than 10,000 and divisible by 100 or in other words only numbers in hundreds. Here is the code to achieve this:</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; execute dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select trunc(dbms_random.value(1,10001),-2) Rand_Hundreds from dual connect by level &lt;=5;
RAND_HUNDREDS
-------------
600
8200
2300
2100
3700
</pre></p>
<p><strong>Character String:</strong> Let&#8217;s suppose we want to generate dummy names in the form of first name space last name where both fist name and last name are 4-10 characters variable-length string in proper case (the first letter of each word in uppercase, all other letters in lowercase).</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; exec dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select initcap(dbms_random.string('L',dbms_random.value(4,10)))
        || ' ' || initcap(dbms_random.string('L',dbms_random.value(4,10))) Rand_Names from dual connect by level &lt;=5;

RAND_NAMES
-------------------------
Vgfj Lyyv
Hmtvmie Etsdpdajyg
Awzadckd Fvjji
Cridnrykc Ewpe
Umvyvpjx Xreohmnvu
</pre></p>
<p>Seems the names of aliens <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Random Dates:</strong> Generating random values are tricky and needs understanding of Julian date formats. Oracle can store dates in the Julian formats. In this format integer offsets from January 1, 4712 B.C. in the past are stored. The format mask &#8216;J&#8217; can be used with date functions (TO_DATE or TO_CHAR) to convert date data into Julian dates and similarly TO_NUMBER function can be used to use Julian dates in calculations.</p>
<p>Having said this, you can generate random dates in a given range by finding the integer that corresponds to your desired start date, and then adding a random integer to it. For example, suppose you want to generate random dates between 1-Jan-1980 and today (i.e., 19th Nov, 2010). Here is a sample code you can use:</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; execute dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select to_date(to_char(to_date('01/01/1980','dd/mm/yyyy'),'J') + trunc(dbms_random.value(1,11280)),'J') Rand_dates from dual connect by level &lt;=5;
RAND_DATES
----------
16-DEC-81
02-AUG-05
28-FEB-87
29-SEP-86
08-JUN-91
</pre></p>
<p>This code is adding random numbers in the range 1-11280 to the base date (1/1/80). The maxinum value 11280 is number of days between the base date and today.</p>
<p>Take another example where we want to generate random dates in last one year, in other words after 19th Nov 2009.</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; execute dbms_random.seed(0);
PL/SQL procedure successfully completed.

test@ORADB10G&gt; select sysdate- trunc(dbms_random.value(1,365)) Rand_dates from dual connect by level &lt;=5;
RAND_DATE
---------
26-OCT-10
21-JAN-10
26-AUG-10
31-AUG-10
07-JUL-10
</pre></p>
<p>So far we&#8217;ve discussed to generate totally random data, however if want to have some control on the data being generated, means repeation based on some logic, that&#8217;s where modulus functions comes handy. Following code can be used if you want to generate numbers between 1 to 10. Please note that data generated in this fashion is not random, but mod() function is very useful in some cases.</p>
<p><pre class="brush: sql; gutter: false;">
test@ORADB10G&gt; select mod(rownum,5)+1 Mod_10 from dual connect by level &lt;=10;
 MOD_10
----------
2
3
4
5
1
2
3
4
5
1

</pre></p>
<p>That&#8217;s really it. I&#8217;ve tried to cover different scenarios to generate random numbers, however one can write complex code that suits his scenario. I hope this makes your purpose.</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/208/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/208/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/208/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=208&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2010/11/20/how-to-generate-random-data-for-test-cases-using-dbms_random-in-oracle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>

		<media:content url="http://neerajbhatia.files.wordpress.com/2010/11/dbms_random_subprograms.jpg" medium="image">
			<media:title type="html">dbms_random_subprograms</media:title>
		</media:content>

		<media:content url="http://neerajbhatia.files.wordpress.com/2010/11/bell_curve.jpg" medium="image">
			<media:title type="html">Bell_Curve</media:title>
		</media:content>
	</item>
		<item>
		<title>Everything You Want to Know About Oracle Histograms Part-1</title>
		<link>http://neerajbhatia.wordpress.com/2010/11/12/everything-you-want-to-know-about-oracle-histograms-part-1/</link>
		<comments>http://neerajbhatia.wordpress.com/2010/11/12/everything-you-want-to-know-about-oracle-histograms-part-1/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 17:55:58 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[SQL Tuning]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=193</guid>
		<description><![CDATA[In the first part of Oracle Histograms series, I am discussing basic concepts like what is a histogram in general, why histograms are required in Oracle and how they are implemented etc. Link to Part-1 This series may have two more parts about practical details and case studies. Enjoy!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=193&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In the first part of Oracle Histograms series, I am discussing basic concepts like what is a histogram in general, why histograms are required in Oracle and how they are implemented etc.</p>
<p><a title="Everything you want to know about Oracle Histograms Part-1" href="http://neerajbhatia.files.wordpress.com/2010/11/everything-you-want-to-know-about-oracle-histograms-part-1.pdf" target="_blank">Link to Part-1</a></p>
<p>This series may have two more parts about practical details and case studies.</p>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=193&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2010/11/12/everything-you-want-to-know-about-oracle-histograms-part-1/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux Memory Utilization</title>
		<link>http://neerajbhatia.wordpress.com/2010/10/25/linux-memory-utilization/</link>
		<comments>http://neerajbhatia.wordpress.com/2010/10/25/linux-memory-utilization/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 03:38:45 +0000</pubDate>
		<dc:creator>neerajbhatia</dc:creator>
				<category><![CDATA[Linux OS]]></category>

		<guid isPermaLink="false">http://neerajbhatia.wordpress.com/?p=122</guid>
		<description><![CDATA[Many times I observed that novice database/system administrators on Linux platform confuse with the actual memory utilization and utilization presented by Linux native utilities like sar, top etc. The reason behind this is, the way Linux presents memory utilization. While performance diagnosis most of the times you&#8217;ll find 90-100% memory utilization, however that may not be the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=122&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Many times I observed that novice database/system administrators on Linux platform confuse with the actual memory utilization and utilization presented by Linux native utilities like sar, top etc. The reason behind this is, the way Linux presents memory utilization.</p>
<p>While performance diagnosis most of the times you&#8217;ll find 90-100% memory utilization, however that may not be the case and you can calculate &#8220;actual&#8221; memory utilization in following fashion.</p>
<p>Fetch memory utilization data from sar files using -r switch.<br />
sar -r -f &lt;filename&gt;</p>
<p>It will display data in this format</p>
<p><code><br />
04:40:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad<br />
04:50:01 PM    258788  16372260     98.44     12696  13912224  12484624     94144      0.75       420<br />
</code></p>
<p>Information being displayed here, is somewhat misleading. According to it, at 04:50PM, 98.44% memory was utilized (As its merely calculated by the formula kbmemused/sum(kbmemused, kbmemfree)).</p>
<p>But in actual that was not the case. In order to get actual memory utilization, subtract kbbuffers and kbcached from kbmemused, and then used the above formula. In this case, Memory utilization = (16372260-12696-13912224)/(258788+16372260) = 14.71%</p>
<p>The reason behind this is Linux treats unused memory as a wasted resource and so uses as much RAM as it can to cache process/kernel information.</p>
<p>Here Buffers= amount of physical memory used as buffers for disk writes Cached = amount of physical memory used as cache for disk reads</p>
<p>Even if you use top utility to check the memory utilization, situation seems dreadful. It appears that almost all memory is being used. This is because of the way top display memory utilization information.</p>
<p>Here is an example:</p>
<p><code><br />
top - 09:43:51 up 29 min,  2 users,  load average: 0.10, 0.27, 0.22</code></p>
<p><code>Tasks: 166 total,   2 running, 164 sleeping,   0 stopped,   0 zombie</code></p>
<p><code>Cpu(s):  5.9%us,  0.8%sy,  0.0%ni, 93.1%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st</code></p>
<p><code>Mem:   2065628k total,  1195636k used,   869992k free,    59540k buffers</code></p>
<p><code>Swap:  2104472k total,        0k used,  2104472k free,   695492k cached<br />
</code></p>
<p>The top command reports that total 2065628k bytes (2017MB) of memory is configured on the system, 1195636k (1167MB) is used and 869992k (849MB) is free. Some of the used memory that the top command reports is actually being used for cache. In other words, it is available to be reassigned if another process requires it. To get a better picture of memory utilization, you should use free command. free is basically a c-program that reads output from /proc virtual file system.</p>
<p>Here is an example:</p>
<p><code><br />
total       used       free     shared    buffers     cached</code></p>
<p><code>Mem:          2017       1180        836          0         59        690</code></p>
<p><code>-/+ buffers/cache:        430       1586</code></p>
<p><code>Swap:         2055          0       2055<br />
</code></p>
<p>The free command reports output in 1024-byte blocks. I used -m switch to report memory utilization in megabytes.</p>
<p>We can interpret free command output as follows. In the first line, it reports that this system has 2017MB memory configured, out of which 1180MB is used and 836 is free. The shared memory column is obsolete and should be ignored. 59MB reported under buffers column, being used as buffers for disk writes and 690MB used as cache for disk read operations. It should be note that memory reported under buffers and cached, is available for use. Hence in second line, they are added to free memory. Thus in actual, system has 1586MB free for use (~ =836+59+690 MB).<br />
<span style="text-decoration:&lt;">Thus it is important to note that, we should concentrate on second line “-/+ buffers/cache:” to get free memory in the system.</span><br />
The third line reports swap utilization information. Here system has 2055MB of swap configured, swap is not being used and total swap is free for use. We can also get current memory utilization using vmstat (virtual memory statistics tool).</p>
<p>I hope it will help you to get better picture of memory utilization.</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/neerajbhatia.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/neerajbhatia.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/neerajbhatia.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=neerajbhatia.wordpress.com&amp;blog=3473058&amp;post=122&amp;subd=neerajbhatia&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://neerajbhatia.wordpress.com/2010/10/25/linux-memory-utilization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42daeb6957c86869dd37bbdeb2c842d8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">DBA</media:title>
		</media:content>
	</item>
	</channel>
</rss>
