<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: MySQL Query Profiling Tools &#8212; part 0, Ma&#8217;atkit Query Profiler</title>
	<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler</link>
	<description>News and views from Pythian DBAs</description>
	<pubDate>Sat, 22 Nov 2008 06:35:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>By: Pythian Group Blog &#187; Blog Archive &#187; Query Profiling Tools &#8212; part 1, mysqlsla</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142183</link>
		<dc:creator>Pythian Group Blog &#187; Blog Archive &#187; Query Profiling Tools &#8212; part 1, mysqlsla</dc:creator>
		<pubDate>Wed, 19 Dec 2007 21:12:40 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142183</guid>
		<description>[...] in the sense that if they exist they are not slow. But given that this is the same client as in the previous installment of this series, I can surmise that there are not a lot of joins, period, and I can work with the [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] in the sense that if they exist they are not slow. But given that this is the same client as in the previous installment of this series, I can surmise that there are not a lot of joins, period, and I can work with the [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142131</link>
		<dc:creator>Alex Gorbachev</dc:creator>
		<pubDate>Wed, 19 Dec 2007 15:43:52 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142131</guid>
		<description>Not sure about short learning curve to the performance tuning based on counters - one should really understand how MySQL works and nature of the application to make sensible conclusions bases on number of various counters.

If that would be bases on time profile than even novice DBA could conclude where the time is spent and what part requires attention.

In the meantime, one of my clients came back to me on IM and pointed out standard MySQL profiling coming with 5.0.37 (thanks Gennady) - &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html" rel="nofollow"&gt;SHOW PROFILES and SHOW PROFILE&lt;/a&gt;. Still not exactly full response time profile but it looks promising as its main statistics is &lt;i&gt;time-based&lt;/i&gt; -- duration.

Now, I'd love to play with that a bit more and see how it actually works in real life.</description>
		<content:encoded><![CDATA[<p>Not sure about short learning curve to the performance tuning based on counters - one should really understand how MySQL works and nature of the application to make sensible conclusions bases on number of various counters.</p>
<p>If that would be bases on time profile than even novice DBA could conclude where the time is spent and what part requires attention.</p>
<p>In the meantime, one of my clients came back to me on IM and pointed out standard MySQL profiling coming with 5.0.37 (thanks Gennady) - <a href="http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html" rel="nofollow">SHOW PROFILES and SHOW PROFILE</a>. Still not exactly full response time profile but it looks promising as its main statistics is <i>time-based</i> &#8212; duration.</p>
<p>Now, I&#8217;d love to play with that a bit more and see how it actually works in real life.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sheeri Cabral</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142099</link>
		<dc:creator>Sheeri Cabral</dc:creator>
		<pubDate>Wed, 19 Dec 2007 13:09:21 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142099</guid>
		<description>Alex F. -- you're right, of course -- but for the first pass getting into things, it's not a bad start.  It is a guess, but you need to start with a "sense" of things, and that's what this does.</description>
		<content:encoded><![CDATA[<p>Alex F. &#8212; you&#8217;re right, of course &#8212; but for the first pass getting into things, it&#8217;s not a bad start.  It is a guess, but you need to start with a &#8220;sense&#8221; of things, and that&#8217;s what this does.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sheeri Cabral</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142098</link>
		<dc:creator>Sheeri Cabral</dc:creator>
		<pubDate>Wed, 19 Dec 2007 13:04:46 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142098</guid>
		<description>Alex G -- The Query Profiler also allows using a file instead of --external, so you can actually run a batch of queries and see how that batch performs.  I used the Query Profiler for my specific needs -- that is, seeing a server cold and how it performs overall "in general'.  Certainly from a development perspective I want to be able to run a batch of queries to see how it performs, and the Query Profiler does indeed allow that to be done.

As well, the MySQL Proxy can be scripted to do response time profiling.  I'd love to hear more about what kinds of performance tuning are available with Oracle.

The fact is that the low learning curve for MySQL is a blessing and a curse -- it means that it's easy to adopt, which is how it got to be the most popular open source database, but it also means that there are some awfully written queries out there, so performance tuning is usually a matter of fixing a few bad queries, which are easily found in a slow query log.

Keep in mind, too, that this is a 3rd party tool, and the mysqldumpslow that comes with mysql has even fewer features.</description>
		<content:encoded><![CDATA[<p>Alex G &#8212; The Query Profiler also allows using a file instead of &#8211;external, so you can actually run a batch of queries and see how that batch performs.  I used the Query Profiler for my specific needs &#8212; that is, seeing a server cold and how it performs overall &#8220;in general&#8217;.  Certainly from a development perspective I want to be able to run a batch of queries to see how it performs, and the Query Profiler does indeed allow that to be done.</p>
<p>As well, the MySQL Proxy can be scripted to do response time profiling.  I&#8217;d love to hear more about what kinds of performance tuning are available with Oracle.</p>
<p>The fact is that the low learning curve for MySQL is a blessing and a curse &#8212; it means that it&#8217;s easy to adopt, which is how it got to be the most popular open source database, but it also means that there are some awfully written queries out there, so performance tuning is usually a matter of fixing a few bad queries, which are easily found in a slow query log.</p>
<p>Keep in mind, too, that this is a 3rd party tool, and the mysqldumpslow that comes with mysql has even fewer features.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Fatkulin</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142036</link>
		<dc:creator>Alex Fatkulin</dc:creator>
		<pubDate>Wed, 19 Dec 2007 06:11:39 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142036</guid>
		<description>Sheri, the "driving force" behind any tuning is (or at least should be) Amdahl's Law which just can't be applied based on a numbers above (unless you have a crystal ball next to you).

While someone could tell what I'm too idealistic regarding instrumentation degree what I'm willing to expect in software (I'm not making this up!), proper instrumentation is a key to any tuning. But, perhaps, I've spent too much time dealing with extremely large system where guess-based tuning based on incomplete and/or irrelevant stats lead to anything but problem solving.</description>
		<content:encoded><![CDATA[<p>Sheri, the &#8220;driving force&#8221; behind any tuning is (or at least should be) Amdahl&#8217;s Law which just can&#8217;t be applied based on a numbers above (unless you have a crystal ball next to you).</p>
<p>While someone could tell what I&#8217;m too idealistic regarding instrumentation degree what I&#8217;m willing to expect in software (I&#8217;m not making this up!), proper instrumentation is a key to any tuning. But, perhaps, I&#8217;ve spent too much time dealing with extremely large system where guess-based tuning based on incomplete and/or irrelevant stats lead to anything but problem solving.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142011</link>
		<dc:creator>Alex Gorbachev</dc:creator>
		<pubDate>Wed, 19 Dec 2007 03:41:15 +0000</pubDate>
		<guid>http://www.pythian.com/blogs/748/mysql-query-profiling-tools-part-0-maatkit-query-profiler#comment-142011</guid>
		<description>Nice post Sheeri - I'm interested to see what MySQL DBA's have in their tools arsenal and compare it to Oracle.

This particular tool (at least, the part described here) brought to the surface the memory of excitement that I had first running UTLBSTAT/UTLESTAT in Oracle 7 and 8. Cool ratios and number of statistics I could manipulate to produce even "cooler" ratios.

But that was a while ago... and then later I read several papers and books that introduced performance tuning based on response time profiling. This basically revolutionized my understanding of performance tuning, quickly put things into the right perspective and cleaned up lots of confusion.

So what I see in MySQL performance tools now? Oracle tools and methods used 10 years ago! Why would MySQL go this long way and not take a shortcut?

Is there anyone working on instrumentation of MySQL so that a DBA would be able to profile selected activities and see where the time is spent instead of guessing what's worse - 100 table scans or 42 joins? Maybe there are such tools but I'm just not aware.

I think there won't be any "external" tools without proper support from MySQL engine.  On the other hand, MySQL source is available and one can compile it with some code profiler or whatever suitable debugging options but I bet one should be a MySQL developer to be able to utilize such capabilities.</description>
		<content:encoded><![CDATA[<p>Nice post Sheeri - I&#8217;m interested to see what MySQL DBA&#8217;s have in their tools arsenal and compare it to Oracle.</p>
<p>This particular tool (at least, the part described here) brought to the surface the memory of excitement that I had first running UTLBSTAT/UTLESTAT in Oracle 7 and 8. Cool ratios and number of statistics I could manipulate to produce even &#8220;cooler&#8221; ratios.</p>
<p>But that was a while ago&#8230; and then later I read several papers and books that introduced performance tuning based on response time profiling. This basically revolutionized my understanding of performance tuning, quickly put things into the right perspective and cleaned up lots of confusion.</p>
<p>So what I see in MySQL performance tools now? Oracle tools and methods used 10 years ago! Why would MySQL go this long way and not take a shortcut?</p>
<p>Is there anyone working on instrumentation of MySQL so that a DBA would be able to profile selected activities and see where the time is spent instead of guessing what&#8217;s worse - 100 table scans or 42 joins? Maybe there are such tools but I&#8217;m just not aware.</p>
<p>I think there won&#8217;t be any &#8220;external&#8221; tools without proper support from MySQL engine.  On the other hand, MySQL source is available and one can compile it with some code profiler or whatever suitable debugging options but I bet one should be a MySQL developer to be able to utilize such capabilities.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
