Regarding that STSdb is loaded into LOH, I've noticed a high level of fragmentation during both insert and loading of information. The fragmentation was misguiding me about my benchmarks. After lots of snapshots and memory profiling finally I catch it.

The trick is to use GCLargeObjectHeapCompactionMode.CompactOnce introduced in .NET 4.5.1.

GCLargeObjectHeapCompactionMode Enumeration (System.Runtime) says:
"The large object heap (LOH) will be compacted during the next blocking generation 2 garbage collection."
Here is a sample :

            table = engine.OpenXTable<int, int[]>("index");


            Console.WriteLine(String.Format("Before reading table : \t{0} MB\t{1} MB", GC.GetTotalMemory(true) / MBYTES, System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / MBYTES));


            int total = table.Sum(x => x.Value.Length);


            Console.WriteLine(String.Format("After reading table : \t{0} MB\t{1} MB", GC.GetTotalMemory(true) / MBYTES, System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / MBYTES));


            GC.Collect();


            Console.WriteLine(String.Format("After Peforming GC : \t{0} MB\t{1} MB", GC.GetTotalMemory(true) / MBYTES, System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / MBYTES));


            GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
            GC.Collect();


            Console.WriteLine(String.Format("After Compacting LOH : \t{0} MB\t{1} MB", GC.GetTotalMemory(true) / MBYTES, System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / MBYTES));


            int total2 = table.Sum(x => x.Value.Count());          


            Console.WriteLine(String.Format("After reading table : \t{0} MB\t{1} MB", GC.GetTotalMemory(true) / MBYTES, System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / MBYTES));


            Console.WriteLine("Total1 == Total2 ? {0}", total == total2);


            Console.ReadKey();
Output:

Before reading table :     0 MB    19 MB
After reading table :     140 MB    249 MB
After Peforming GC :     140 MB    249 MB
After Compacting LOH :     140 MB    164 MB
After reading table :     140 MB    164 MB
Total1 == Total2 ? True