Slow running Query? Why?

There are so many ways we can find the slow running query and solve it. First we have to know why it is running slow and then once we find out the reason we can apply the solution based on the information we get. The query could be running slow as simple as it is not written properly. Other reasons are maybe there is a problem with the CPU, problem with Memory, problem with I/0, problem with Space issue. Or maybe database is poorly design, server is not configure properly, maybe there is problem with index like missing index or duplicate index, statistics is not updated, blocking issue or excessive recompilation of store procedure. And we have various tools to find out the problem. We have Task Manager, PerfMon, Resource Manager, Event Viewer, Extended Event, DBCC, DMVs, Error Log, Job Activity Monitor, Trace Flag and Execution Plan. I personally look at the slow running query is like that…. The query is waiting somewhere in someplace for the resources. So I use Execution Pl...