title: SQL Guid Primary Key Join Performance
body: <p>I'm currently using GUIDs as a <code>NONCLUSTERED PRIMARY KEY</code> alongside an <code>INT IDENTITY</code> column.</p>
  
  <p>The GUIDs are required to allow offline creation of data and synchronisation - which is how the entire database is populated.</p>
  
  <p>I'm aware of the implications of using a GUID as a clustered primary key, hence the integer clustered index but does using a GUID as a primary key and therefore foreign keys on other tables have significant performance implications?</p>
  
  <p>Would a better option to use an integer primary/foreign key, and use the GUID as a client ID which has a <code>UNIQUE INDEX</code> on each table? - My concern there is that entity framework would require loading the navigation properties in order to get the GUID of the related entity without significant alteration to the existing code.</p>
  
  <p>The database/hardware in question is SQL Azure.</p>