Unity suggests to have static Canvas and active (dynamic) Canvas

It is due to canvas dirty, it is, when you update the canvas, Unity needs to re draw each UI element
If you separate them, you can have static images and text to avoid re drawing them

Also it is very important to check Raycast only if the image will be a target

For deactivating Canvas, it is better to disable the Canvas component instead of disabling the entire gameobject, it seems to be more efficient

--

--