Entwickler-Ecke
Datenbanken - Performance- Frage: sortieren
lkz633 - So 23.06.02 15:20
Titel: Performance- Frage: sortieren
Hi,
ich fuelle eine normale combobox mit Daten aus einer Tabelle. Was ist nun schneller ?
1) wenn ich die sql abfrage um ein order by erweitere
2) oder wenn ich bei der cb sorted auf true setze
Danke fuer eure antworten
Gruss lkz633
Marc - So 23.06.02 15:24
Hi lkz633,
ich gehöre zu den Leute die am liebsten alles in der SQL-Abfrage stecken. Was aber wirklich schneller ist kann ich Dir nicht sagen. Wie wäre es, wenn Du Dich mal mit einer Stoppuhr am PC setzt und es testest?
Gruß Marc
Torsten - So 23.06.02 15:30
Hui, schwierige Frage.
Da kommen aber mehere Faktoren zum Zuge.
Zunächst würde ich sagen, dass Sorted schneller ist.
Doch es kommt auf die Anzahl der Einträge an und von wo die abgerufen werden.
Handelt es sich dabei um ein paar Hundertausend, so ist wohl SQL schneller. Wird die Abfrage dazu noch auf einem DB-Server ausgeführt, so ist SQL wohl auch schneller.
Aber wozu so viele Einträge in einer CB?
Ich denke mal, dass Sorted dicke ausreicht.
Grüße
Torsten
Klabautermann - So 23.06.02 17:49
Hallo,
die Frage nach der Performance kann ich auch nicht beantworten. Dazu musst du wie Marc vorgeschlagen hat mal "mitstoppen" (aber besser im Programm als mit der Stopuhr ;)).
Alledings beforzuge ich auch die Sortierung im Query, denn so kann ich auch bequem den Sonderfall XYZ verwirklichen, bei dem Zwar die Namen in der Combobox angezeigt werden sollen aber Sortiert nach der Postleitzahl.
Mit dem Query habe ich also mehr freiheiten.
Gruß
Klabautermann
Alfons-G - Mo 24.06.02 12:57
Hi,
bei einer lokalen Datenbank ist vermutlich sorted schneller. Die Arbeit wird ohnehin auf dem Rechner gemacht. Es hängt natürlich auf von der SQL-Engine ab, wie schnell ein order by verarbeitet wird.
Sobald Du eine Client/Server-Datrenbank verwendest, ist das Sortieren in der SQL-Abfrage vorzuziehen, ausgenommen, der Server pfeift aus dem letzten Loch.
Ein nennenswerter Zeitunterschied darf eigentlich bei den Datenmengen, mit denen man normalerweise eine Combobox füllt, ohnehin nicht auftreten.
Ansonsten bleibt der Tipp von Marc, die Zeit zu stoppen.
Dazu musst Du Dich allerdings nicht mit der Stoppuhr davor setzen :)
Du fragst im Programm die Zeit ab und speicherst sie in einer Variable. Dann öffnest Du die Abfrage, zeigst die Werte in der Combobox an und holst Dir nochmal die Zeit.
Entweder lässt Du Anfangs- und Endwert einfach anzeigen oder Du schreibst eine kleine Routine, welche mit DecodeTime und etwas Arithmetik die Laufzeit berechnet.
:D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!