I’ve been tuning SQL databases for over 15 years. Since being introduced to I3, when I’m called in for a short-term performance and tuning gig, the first thing I do is ask if I can send a tool in ahead of me to monitor the database while I’m in transit, so that I’ve got information to start with when I arrive. The success rate has been phenomenal; so far, I’ve had a 100% hit rate with DBAs wanting to buy it after they’ve seen it in action on their own platforms.
It was easy to quantify day 1 vs. day 2 performance
Note: This is from a different engagement. When I went on that last engagement, I hadn’t been planning on demonstrating this technique to anybody other than the client who was looking over my shoulder at the time.
Note that the highlighted plan on the left corresponds with tables and columns on the right, and can highlight the need for index addition or changes.
When the vast majority of elapsed time is not in the database, you have evidence that it’s not your fault. In this case, it was the fault of significant requests to an SSL layer; it turned out that some of the screens were taking 5-6 seconds to encrypt due to the quantity of dynamic data displayed.
Indexing for Performance for SQL Server 2005 Single - Table Optimization Chapter Four Jeff Garbus – [email_address] Tony Cannizzo – [email_address]
Columns that are not part of the index key can be included in nonclustered indexes. Including the nonkey columns in the index can speed queries (Index covering) and can exceed the current index size limitations of a maximum of 16 key columns and a maximum index key size of 900 bytes
The new ALLOW_ROW_LOCKS and ALLOW_PAGE_LOCKS options in CREATE INDEX and ALTER INDEX can be used to control the level at which locking occurs for the index
The query optimizer can match more queries to indexed views than in previous versions, including queries that contain scalar expressions, scalar aggregate and user-defined functions, interval expressions, and equivalency conditions
Indexed view definitions can also now contain scalar aggregate and user-defined functions with certain restrictions.
When the vast majority of elapsed time is not in the database, you have evidence that it’s not your fault.
In this case, I had been brought in to tune the database, knocked all the queries down from 5-10 second range to significantly subsecond. Performance was still in the 3-6 second range for much of the application. I knew it was not a database issue, but what was it?
In this case, it was the result of significant requests to an SSL layer; it turned out that some of the screens were taking 5-6 seconds to encrypt due to the quantity of dynamic data displayed.
70% - studies have shown that 70%+ of all application performance issues are directly attributable to the source code, NOT INFRASTRUCTURE
It’s critical to monitor and track performance of the application code components
25% - studies have shown that only 25% of performance issues identified in production could have been anticipated and resolved in test/dev/QA
Monitoring production performance is critical to application availability and performance
60% of i3’s customer’s cancel or defer hardware upgrade purchases within the first year of ownership
Multi-tier web-based applications are extremely complex with great interdependency among hardware/software/application components. This makes it virtually impossible to determine root cause in a timely fashion – a typical response to the frustration is to upgrade expensive hardware. I3 streamlines your application components.
100% - i3’s customers have found that their staff can double their IT responsibility without additional workload
3 – i3 has an average payback of 3 months, 1.8 months at one large Federal agency
1-3% - i3 has an average overhead of 1-3% in production environments
24% of IT staff time is devoted to addressing application performance delays