Ich verwende in meiner Webanwendung die Klasse PagedList, die vielen von Ihnen bekannt sein dürfte, wenn Sie sich mit ASP.NET MVC und LINQ to SQL beschäftigt haben. Sie wurde in einem Blog beschrieben von Rob Conery und eine ähnliche Inkarnation war in Dingen wie Nerd-Dinner , usw. Es funktioniert hervorragend, aber mein DBA hat Bedenken wegen möglicher künftiger Leistungsprobleme geäußert.
Sein Problem betrifft das SELECT COUNT(*), das als Ergebnis dieser Zeile ausgegeben wird:
TotalCount = source.Count();
Bei jeder Aktion, bei der Daten ausgelagert werden, wird eine zusätzliche Abfrage (wie unten) als Ergebnis des Aufrufs der Methode IQueryable.Count() ausgelöst:
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
Gibt es eine bessere Möglichkeit, dies zu handhaben? Ich erwog, die Count-Eigenschaft der PagedList-Klasse zu verwenden, um die Elementanzahl zu erhalten, aber erkannte, dass dies nicht funktionieren wird, weil es nur die Anzahl der Elemente zählt, die derzeit angezeigt werden (nicht die Gesamtzahl).
Wie stark wird die Leistung meiner Anwendung beeinträchtigt, wenn sich viele Daten in der Datenbank befinden?