Here is some teaser for you, can you figure out how this works:
Some time back, my website became too slow and I started getting timeout response for quite a lot of my pages. When I analyzed things, I found the issue was with the DB queries taking a lot of time. So, I thought of getting my hands dirty and started with installing the plugin “Debug Queries”. Just in case, you don’t know about the plugin, it lists all the queries to DB along with the time taken for the query when a Admin user visits any page.
The output of the plugin is below the whole page and looks something like this:
45. Time: 0.0030910968780518
Query: SELECT * FROM <> WHERE <>
Call from: require
Note: The list contains the actual complete query and also all the calls to the query. But as I had more than 40 odd queries, looking at .00 something time was tiresome to find the highest time. So, I copied this text into a text file called “test” and wrote this one line to get me the highest time.
sed -n '/.*Time:/ s/.*://p' test |sort -n
Once you have the time, simply search or grep for this values and you know the highest time taking query.