title: Is one way of stating tables in a query more 'optimal' than another?
body: <blockquote>
    <p><strong><em>Edit:</strong> I'm aware that <a href="https://stackoverflow.com/questions/3639861/why-is-select-considered-harmful"><code>SELECT *</code> is bad practice</a>, but it's used here just to focus the example SQL on the table statement rather than the rest of the query. Mentally exchange it for some column names if you prefer.</em></p>
  </blockquote>
  
  <p>Given a database server <code>MyServer</code> (which we are presently connected to in SSMS), with several databases <code>MyDb1</code>, <code>MyDb2</code>, <code>MyDb3</code> etc and default schema <code>dbo</code>, are any of the following equivilant queries (they will all return exactly the same result set) more "optimal" than the others?</p>
  
  <pre><code>SELECT * FROM MyServer.MyDb1.dbo.MyTable
  </code></pre>
  
  <p>I was told that this method (explicitly providing the full database name including server name) treats <code>MyServer</code> as a linked server and causes the query to run slower. Is this true?</p>
  
  <hr>
  
  <pre><code>SELECT * FROM MyDb1.dbo.MyTable
  </code></pre>
  
  <p>The server name isn't required as we're already connected to it, but would this run 'faster' than the above?</p>
  
  <hr>
  
  <pre><code>USE MyDb1
  GO
  
  SELECT * FROM dbo.MyTable
  </code></pre>
  
  <p>State the database we're using initially. I can't imagine that this is any better than the previous for a single query, but would it be more optimal for subsequent queries on the same database (ie, if we had more <code>SELECT</code> statements in the same format below this)?</p>
  
  <hr>
  
  <pre><code>USE MyDb1
  GO
  
  SELECT * FROM MyTable
  </code></pre>
  
  <p>As above, but omitting the default schema. I don't think this makes any difference. Does it?</p>