Database Optimization Techniques #2: Identifying and tuning Slow Queries

    optimizdba Slow Queries1
    Posted January 16, 2019

    Databases make the backbone of online operations. With a shift of enterprises from offline mode to online platforms for their operations, a great need of strong and efficient databases have emerged. This has led to the demand for database optimization to ensure seamless operations without any slowdowns.

    With any database slowdown which causes a disruption in the data access, the operations of the enterprise suffer, counting to the loss in business to a varied extent depending upon the cruciality of the data requirement. The high performance of the database could be ensured by regular practice of database optimization techniques.

    Although, we have already discussed database performance tuning in a previous article and have also discovered the database optimization technique of Indexing in the prequel of the Database Optimization Techniques series, in this article we are looking forward to exploring slow queries, how to identify them, how to tune them and why they are important for the database optimization.

    What are Slow Queries?

    Slow queries are the database queries which has a large turnaround time to access the required data. These queries tend to process a lot of data as compared to the required data causing unwanted delays in access.

    These slow queries take more than the expected time as they tend to process the entire database every time a data access query is executed. Sometimes, especially in the case of nested loops there could be an issue when one of the loops block the other, causing the slowdown of query execution.

    Such queries, where due to some or the other reason the turnaround time exceeds, are slow queries. There are different ways for different databases to find out slow queries.

    How do Slow Queries affect database performance?

    These slow queries take more than the usual time to execute which results in a delay in the data access. Having multiple slow queries could automatically cause a slowdown in the database performance, especially when the database has huge data.

    Slow Queries not only cause slower data access but at the same time, the database resources also get wasted. In this way, slow queries affect database performance.

    What can cause Slow Queries?

    Queries become slow due to certain reasons. Some of the major reasons causing slow queries are:

    • Queries are overworking, this means they are processing more than the required processing of data for a given query.
    • Lack of resources. This means there could be times when a query requires to access certain resources which might not be available at that time due to some, or the other reasons.
    • Queries might be waiting for their turn to execute. Often queueing might cause unexpected delays.

    How to identify Slow Queries?

    Identifying Slow Queries is one of the initial steps to perform database optimization by tuning slow queries. Different databases have different ways to find and identify slow queries. Here are few methods to find slow queries for different databases:

    • Using SQL DMVs to find Slow Queries

    One of the key SQL query performance tuning tips is to find slow queries using DMVs. DMVs (Dynamic Management Views) is one of the greatest features of SQL server, where you can information like query stats, including the queries which used most reads, writes, processing time etc.

    These pieces of information could be very significant in finding the slow queries of a SQL database.

    • Using MySQL slow query log analyzer

    MySQL slow query log analyzer is a tool which helps in analyzing the slow query logs and points out towards the slower queries, which can be further tuned for a faster turnaround time resulting in database optimization.

    • Using Oracle slow query log analyzer

    Oracle slow query log helps you in finding the queries which take more than the set long_query_time to execute. These queries are further examined in detail by diligent Database Administrators to tune them for database optimization.

    • Enabling mariaDB slow query log

    MariaDB slow query log is disabled by default, and for query optimization of the mariaDB database, you can enable the mariaDB slow query log so as to find the slow queries. This log gives you the details of the slow queries which take longer time than the long_query_time to run.

    How to tune Slow Queries for database optimization?

    Query optimization is the process used for optimizing databases. It is done by choosing the most efficient means of executing a SQL statement. Once the slow queries are identified using a slow query log, these queries could be analyzed in detail to find an alternative efficient means to execute them faster.

    As a part of Query optimization, often the complex subqueries are written using temporary tables to improve their turnaround time so as to tune them to execute faster. While working on the joins, using inner joins instead of outer joins also helps in tuning the queries for better performance.

    It is always up to a diligent database administrator who could work on the slow queries to optimize them for better performance.

    The next step

    A diligent and expert DBA ensures not only to find the slow queries but also optimize them to execute in the best turnaround time, increasing the database performance to many folds. Constant monitoring and diligent analysis could be helpful in finding the slow queries and tuning them.

    If you are looking forward to optimizing your database by finding out the slow queries and efficiently tune them, then OptimizDBA could help you with our team of expert DBAs who are dedicated to making your database optimized.

    Feel free to contact us and we will be obliged to assist you with your database optimization.


    Tags: , , , ,