<a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;pubs&#x2F;259290&#x2F;GraphView%20User%20Manual.pdf" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;pubs&#x2F;259290&#x2F;GraphView%20User%2...</a>:<p><pre><code>  CREATE TABLE EmployeeNode
  (
    [ColumnRole:”NodeId”] 
    WorkId varchar(32),
    [ColumnRole:”Property”]
    Name varchar(32),
    [ColumnRole:”Edge”, Reference:”EmployeeNode”]
    Colleagues VARBINARY,
    [ColumnRole:”Edge”, Reference:”ClientNode”, Attributes: {credit:”int”, note:”string”}]
    Clients VARBINARY
  )
</code></pre>
=&gt; they also appear to replace &quot;many rows each with key and a single referenced value&quot; by &quot;row for each unique key with packed values for that key&quot; (possibly with multiple rows for a key if the packed data doesn&#x27;t fit in a VARBINARY(MAX))<p>So, the database structure looks a bit like an inverse index. That could speed up some queries.<p>I have been playing with something similar in pure T-SQL, using a cross apply over a table-valued function to get from this packed format back to the normalized table, but wasn&#x27;t impressed with its performance. Using CLR was next on my list, but I haven&#x27;t come around it because I don&#x27;t have high hopes that it will perform, but I may try this.