How to not render unnecessary tiles?
There is no automatic way.

Cycles render engine uses path tracing to render a scene. In order to calculate whether there are additional objects that might cast light/shadow in a scene, it has to calculate the whole scene based on the camera's view. 

The only method for Cycles to get that information before the final render would be through pre-processing, which in the end would take more time than rendering empty tiles. 

However, you can restrict the render area by using the Render Border feature. 
Hit 0 on the Numpad to enter Camera View, then hit Ctrl+B and draw a box around the area you want to have in your final result. 



Now only the selected area gets rendered and the result gets resized to the final image's size.