Why query execute faster after first execution
No, you cannot optimize a query to run as fast on the first run as on the second.  This is because during the first run the database caches information in the system.  The second time it is run, if the information is still in the cache, then the database will reuse that info to make the second query faster.