I just wanted to tip my hat to the MySQL Enterprise Tools
Engineering team for another great release of the Enterprise
Monitor. Not to name names, but I want to give a special thanks
to a team that always over delivers on a collective commitment to
producing quality software. So, a mega thanks to:
Andy Bang, Sloan Childers, Darren Oldag, Eric Herman, Jan
Kneschke, Kay Roepke, Mark Matthews, Bill Weber, Diego Medina,
Marcos Palacios, Carsten "Pino" Segieth, Josh Sled, Keith
Russell, Mark Leith, Heidi Bergh-Hoff, and Gary Whizin (and also
welcome Michael Schuster!)
Yet another great job guys!
The new version, 2.1, was posted as GA early on Tuesday and it is
quite possibly the best release of the Enterprise Monitor to
date.
For those not familiar with the Enterprise Monitor, it is
included in a MySQL Enterprise …
MySQL just released their new MySQL Query Analyzer (link to a trial), and recently wrote up an interview with Mark Matthews about it. If you haven’t read that article, go ahead and do it. I have not used this software, but I fully believe its functionality is quite nice.
But there is at least [...]
From a performance standpoint, sometimes even tightly tuned
queries can cause a performance drag. The common problem here is
not one of actual query performance, rather it is a function
of:
- the velocity and frequency that a query is submiited for
execution
- the total execution time of the aggregated executions
This could be symptomatic of an application not properly
configured for caching (see Darren Oldag's blog on this!), or just overall poor design.
Regardless of why, when or how we all know it happens. The
trouble with this particular problem is that when a query is
tuned, or very simple, it is usually not suspect for being a
resource hog. Pulling aggregates for number of execs and total
exec time for specific queries is a little tricky and labor
intensive with the Slow Query Log, and not really a good …
One of the biggest problems I faced as a field DBA was defending
my production databases against poorly performing SQL code.
Talking to folks at the MySQL UC, during customer visits and
trolling the MySQL forums/blogs confirms that this is a common
problem and even more challenging when a performance problem pops
up during times when no code promotions have taken place.
Traditional/popular way of finding bad SQL code
For MySQL DBAs the challenge to identify and isolate resource
intensive SQL code is really two-fold; job #1 is to find the
offending code (after that the chore becomes fixing it so it
performs, but that is a topic for another post). Most MySQL DBAs
have used the MySQL Slow Query Log ("SQ Log") at some point to
help with job #1. For those not familiar, the SQ Log is enabled
by starting MySQL with --log-slow-queries[=file_name] option.
Once enabled the SQ Log captures queries that took longer than X
seconds (user …
I have gotten a few questions around my 7/29 blog posting on agent vs client-side
products and wanted to make it clear that our decision to go with
a distributed agent architecture was a strategic decision that
has paved the way for us to deliver on our overall "pain point"
addressing roadmap. True, building a client-side app would have
meant a faster go-to-market delivery, but that path would have
imposed serious limitations on our ability to address and
alleviate common pain points around the use and scaling of apps
on MySQL.
So what does an agent really do for us from a strategic
standpoint? Without revealing too many details (well, these
things have already been openly discussed with customers and
presented in our MySQL UC 2008 Product roadmap session), our
agent-based architecture allows us to provide:
…
We are quickly approaching opening up the MySQL Query Analyzer
for general beta and I wanted to pass along an open invite to the
following related and informational events.
On 8/13, I will be doing a micro level presentation on MySQL
Enterprise. Please attend and learn more about the database
software, monitoring and advisor services and support solutions
that make up a subscription. I plan to do a demo of the
Enterprise Monitor and the new Query Analyzer; that alone makes
attending worth the price of admission (in this case 45 minutes
of your time!). Learn more and register here.
On 8/20, I will be doing a presentation on the new Query
Analyzer. This will be a technical discussion around how DBAs
monitor for bad queries now and how the Query Analyzer makes the
job much easier. This will be a good time to learn about getting
in …
In my 14 years in development I learned that outside of poor
schema design, nothing drains the performance of an application
more than poorly performing SQL code. Even code that ran well on
day one of production would sometimes come back to bite at the
worst possible times. Even worse, as a DBA I was consistently
asked to bail out a development team that was either tuning their
code before the rush to production or that was trying to finger
code that had fallen victim to a dropped or changed index. Never
fun.
As a Product Manager with MySQL I have learned from meeting with
friends/customers that this experience hasn't really changed much
since I left the field. I hear things like:
- MySQL is not well instrumented for tracking code level
performance metrics
- Logs are OK, but not centralized and too low-level for easy
navigation
- We need help identifying "good code gone bad" and "bad code
gone worse" …