Yes I recommend 4
And rethink why you need to build all the objects at start
Even if you do need to build them all at start then put them in a Dictionary and let SQL do what SQL does
With .NET you have size limits for a collection
I see no reason to worry about the load on SQL but you could also use LINQ against the Dictionary.
100,000 rows is not even close to big
100 million rows and you are starting to get big