Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2017 January MySQL: Script to find Long Running Queries and Transactions

MySQL: Script to find Long Running Queries and Transactions

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

Don’t you think so that finding Long Running Queries are a very common requirement for a Database Administrator? ‘

Yes, Database Administrators are always looking for a list of Long Running Queries.

In this post, I am sharing scripts to find Long Running Queries or Transactions of MySQL Database Server.

MySQL DBA can use this script to take necessary steps against the bad and long running queries which increase the overall performance of MySQL Database Server.

In below script, I set 59 seconds internal to find long running query since last 59 seconds.
As per your requirement, you can change this value.

Here, You can also visit few related articles.

MySQL: How to Log General and Long Running Queries into Log Table

MySQL: Using SQL Query Profiler finds total execution time and CPU information of the Queries

Script without using Performance_schema:

1
2
3
4
5
6
7
8
9
SELECT
trx.trx_id
,trx.trx_started
,trx.trx_mysql_thread_id
FROM INFORMATION_SCHEMA.INNODB_TRX AS trx
INNER JOIN INFORMATION_SCHEMA.PROCESSLIST AS pl
ON trx.trx_mysql_thread_id = pl.id
WHERE trx.trx_started < CURRENT_TIMESTAMP - INTERVAL 59 SECOND
AND pl.user <> 'system_user';

Script using Performance_schema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
pl.id 'PROCESS ID'
,trx.trx_started
,esh.event_name 'EVENT NAME'
,esh.sql_text 'SQL'
FROM information_schema.innodb_trx AS trx
INNER JOIN information_schema.processlist pl
ON trx.trx_mysql_thread_id = pl.id
INNER JOIN performance_schema.threads th
ON th.processlist_id = trx.trx_mysql_thread_id
INNER JOIN performance_schema.events_statements_history esh
ON esh.thread_id = th.thread_id
WHERE trx.trx_started < CURRENT_TIME - INTERVAL 59 SECOND
AND pl.user <> 'system_user'
ORDER BY esh.EVENT_ID;

Jan 25, 2017Anvesh Patel
PostgreSQL: How to apply ACCESS EXCLUSIVE LOCK MODE on Table?PostgreSQL: Must know about pg_terminate_backend and pg_cancel_backend before killing to any session
Comments: 1
  1. Singh
    August 19, 2019 at 7:20 am

    Is there a way to find procedure name, slow query belongs to?

Anvesh Patel
Anvesh Patel

Database Engineer

January 25, 2017 MySQL, MySQL DBA ScriptAnvesh Patel, database, database research and development, dbrnd, information_schema.innodb_trx, INFORMATION_SCHEMA.PROCESSLIST, long running query, MySQL, MySQL Command, MySQL Database Administrator, MySQL Database Designing, MySQL Database Programming, MySQL Error, MySQL Performance Tunning, MySQL Query, MySQL Tips and Tricks, performance schema, performance_schema.events_statements_history, processlist
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....