2009-04-23 15 views
1

Ich erstelle eine ASP.Net-Website, die große Datenmengen anzeigt. Die Daten werden mir über eine Datenzugriffsschicht zugestellt. Aus den Daten, die ich erhalte, baue ich große Datentabellen auf und zeige sie dann entweder mit GridViews oder dynamisch erstellten Web-Steuerelementen an.ASP.Net datengesteuerte Website-Effizienz

Das Problem, das ich finde, ist, dass die Website langsam ist, wenn viele Daten an sie übergeben werden. Ich habe gelesen, dass Datenleser der Weg zu gehen sind, aber ich kann einen Datenleser nicht direkt aus der SQL-Tabelle verwenden, weil ich die Datenzugriffsschicht verwenden muss.

Ich habe auch nicht die Möglichkeit, die Datentabelle teilweise zu füllen, da ich viele Sortiermethoden auf die Daten anwenden muss, um anzuzeigen, was ich brauche.

Haben Sie Vorschläge zur Beschleunigung von Datentabellen? oder vielleicht etwas anderes, das effizienter ist?

Antwort

0

Sind Sie absolut sicher, dass der Engpass in der Web Application ist?

Das erste, was ich tun würde wäre zu erraten, was die längste SQL-Abfrage, die Sie auf einer langsamen Seite ausführen, wäre, dann sehen, wie es im Abfrage-Browser ausgeführt wird.

Wenn es langsam ist, arbeiten Sie daran, das zu optimieren.

0

Das Ziehen 'großer' Datenmengen in eine Webanwendung und das Sortieren/Filtern wird immer langsam sein, abhängig von Ihrer Definition von 'groß'. Wenn Sie eine Sortierung/Filterung auf dem Datenbankserver anwenden können, bevor Sie die Daten in Ihre Webanwendung ziehen, sollte dies die Geschwindigkeit erhöhen. Sie sagen, Sie haben nicht die Möglichkeit, dies zu tun, aber Sortieren ist etwas, für das Datenbankserver gemacht sind, sind Sie sicher, dass Sie das nicht schaffen können?

0

Das erste, was Sie tun möchten, ist genau zu bestimmen, welcher Teil des Prozesses langsam ist. Es könnte nicht sein, wo du denkst, dass es ist. Führen Sie eine Profilerstellung oder das Timing für verschiedene Teile durch, um genau zu bestimmen, wie viel Zeit jedes Codeteil während einer Anforderung verbraucht. In unserem Fall haben wir festgestellt, dass die Datenschicht (das Ausführen von Lesern, das Auffüllen von Objektmodellen) sehr schnell war (mit ein paar Ausnahmen, die von Indizes in der Datenbank berücksichtigt wurden), während wir auf dem Client einige Javascript hatten .

Beginnen Sie also mit dem Messen und entscheiden Sie dann, wo Sie optimieren möchten.

+0

Irgendeine Idee, wo ich ein gutes Tool für die Code-Profilerstellung bekommen kann? Vorzugsweise frei :) –

+0

Ich habe CLR Profiler verwendet. Vielleicht nicht die einfachste zu verwenden, aber kommt kostenlos (Geld-weise): http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en Hier ist ein Artikel, der Ihnen den Einstieg erleichtern wird: http://msdn.microsoft.com/en-us/library/ms979205.aspx –

1

Da Sie "... große Datentabellen erstellen und diese dann entweder mit GridViews oder dynamisch erstellten Websteuerelementen anzeigen", kann das Netzwerk ein Engpass sein. Siehe die Antworten zu ähnlichen SO question, die hilfreich sein können.

Verwandte Themen