I am working on a project right now and I just noticed something, that makes sense, but I did not realize it. <br /><br /> The Visualforce page and the Visualforce component both use the same controller. Now correct me if I am wrong, but when the Visualforce component is called from the Visualforce page, the component will then instantiate the controller again and have its own instance of the controller. <br /><br />This is essentially doubling the amount of SOQL depending on the code used (if you have many SOQL in the constructor). If what I am saying is correct, could you see a way to pass in a pointer to the component, from the page, that will indicate to use the already instantiated controller? I do not believe something like this is possible currently, but that is my thought on how it could be done in future instances if they were to make this possible. <br /><br /> I noticed this when I called a component from repeat in the visualforce page, and then I called a component from repeat in the previously created component. I had 5 SOQLs in my constructor, and this led to me hitting the SOQL limit on page load. I believe this was due to the 2nd component being called so much and doing the 5 SOQLs over and over again. <br /><br /> I'm looking for clarification to see if what I am saying is correct in this matter.