MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Visual Studio /.NET > Visual Basic für Windows (alle Versionen bis 6.0)
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 27.03.2003, 12:22   #1
StehtimSchilf
MOF Profi
MOF Profi
Standard select case oder if - was ist schneller ?

Hallo Forum,

Bei uns wird in einer Abfrage eine Funktion aufgerufen!
Und diese dauert, da die Funktion für jeden DS 1x augerufen wird!

Der üble Teil in der Funktion sieht so aus:

Code:

if a = 2342 then b = asdfasd 
if a = 23423 then b = 23asdf
if a = 8234 then b = 238492
usw über 50 Zeilen!!!

Frage, was ist jetzt in der Ausführung schneller?
diese 50 Ifs oder
Code:

select case a
   case 23423 : b = sdafsdf
   case 23422 : b = kadlfs
   case 2342 : b =a sdk
end select
Bei der if-Variante muss er 50x eine Bedingung prüfen
aber wie sieht es aus beim Select-Statment?
Muss er da nicht auch 50x die einzelnen cases prüfen, damit er weiss welcher case zutrifft?

cheerioh
SiS

__________________

Win, Off, SQL-Server - alles MS 2000
StehtimSchilf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2003, 12:38   #2
Sascha Trowitzsch
MS-Office-Forum Team MS-Office-Forum Team
Standard

Select Case ist zumindest übersichtlicher und leichter zu pflegen.
Von der Geschwindigkeit her dürfte sich das beides nicht viel nehmen. Select ist wahrscheinlich geringfügig schneller.

Dass die Funktion aber überhaupt eine nennenswerte Zeit in Anspruch nimmt würde ich bestreiten. Auf einem 1GHz-Rechner würde ich eine Ausführungszeit von so etwa 0,01 ms schätzen.

Ciao, Sascha

__________________

Microsoft Access MVP
O2k bis O2010, VB6, VS2008, Delphi7, ...
Bitte keine ungefragten E-Mails. Probleme werden hier gelöst.
Bitte beachten: Grundlegendes zum Access-Forum

Knowhow auf Access-im-Unternehmen | Das Access 2007 Praxisbuch für Entwickler | www.mossTOOLs.de
Sascha Trowitzsch ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2003, 12:46   #3
MarioR
MOF Meister
MOF Meister
Nachricht

Hallo,

ich könnte mir auch vorstellen, dass bei Select Case nur solange geprüft wird, bis eine Bedingung zutrifft und dann die Verzweigung beendet wird. Bei den If's muss dagegen ja immer alles geprüft werden. Das könnte sich bei so vielen Bedingungen u.U. schon bemerkbar machen.


Übersichtlicher ist Select Case aber auf jeden Fall.

__________________

Mario

Fluchen ist die einzige Sprache, die alle Programmierer perfekt beherrschen.
MarioR ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 27.03.2003, 22:47   #4
Steinadler
MOF User
MOF User
Standard Case ist schneller

Hallo
Select Case ist schneller, da die Vergleiche anders gemacht werden und nicht alle vergleiche durchgeführt werden müssen. Es werden im Durchschnitt weniger Takte verwendet.
Es ist schon die else if Anweisung schneller.

Aber in Deinem Fall, wenn ich Dich richtig verstehe, ist eine weitere Tabelle in deiner Abfrage das Beste. Feld a verknüpfen mit der derzeitigen DS-Abfrage, den Wert b in ein Feld. Dadurch hast Du auch die Möglichkeit die "If-Zeilen" ohne Programmänderung zu erweitern.

Liebe Grüße aus Kufstein
Steinadler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.03.2003, 15:02   #5
StehtimSchilf
Threadstarter Threadstarter
MOF Profi
MOF Profi
Standard

Hallo

ich danke Euch für die prompten Antworten!

Da ihr alle der Meinung sind, dass der select case schneller ist (was auch ich vermutete) wirds wohl schon so sein....

Danke!

@ Steinadler: leider besteht diese Function nicht nur aus diesen ifs... und zudem weiss ich nicht wo überall in den 1300 Qrys diese Funktion vorkommt! Aber ja... eine Tabelle sicher ne beste alternative!

@sascha: ich weiss jetzt nicht ob Du Dich noch an die Zeiten erinnerst, als man noch auf AT / 4MHz Kisten programmierte - aber damals kam es noch darauf an, wie man eine Struktur wählte... schade machen sich heute viele keine Gedanken mehr drum... (nicht als Angriff werten, gelle! )

__________________

Win, Off, SQL-Server - alles MS 2000
StehtimSchilf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 28.03.2003, 17:28   #6
Sascha Trowitzsch
MS-Office-Forum Team MS-Office-Forum Team
Standard

Da macht man sich schon noch Gedanken drüber, wie z.B. auf

[Edit] Mof-Team AD: Link entfernt, da dieser im Jahre 2017 pornografischen Inhalt enthält [/Edit]


Eine Seite, die ich von vorn bis hinten durchgekaut habe und die mir einiges gebracht hat.

Die Zeiten, wo es auf solche minimalen Performance-Unterschiede ankam und man die einzelnen Taktzahlen einzelner Assembler-Anweisungen zusammenzählte, um das Maximum herauszuholen, waren bereits mit meinem ersten Computer (ZX81) vorüber gewesen - vor 25 Jahren.

Ich hab mal auf die Schnelle ermittelt:

Auf meinem 900Mhzer werden etwa 18.000.000 solcher If-Bedingungen pro Sekunde durchlaufen. Bei den Select-Zeilen sind es exakt gleich viel, außer, dass das Select-Statement nach Erfüllung der Bedingung abgebrochen wird und deshalb etwas schneller ist. (Da lag ich mit meiner Schätzung oben ja ganz richtig.)

Warum sollte es also schade sein, ob man sich (nicht) Gedanken darüber macht, ob eine Routine eine Millionstel Sekunde dauert oder nur eine 500000tel? Sehen tut man es jedenfalls nicht, wenn man nicht gigantische Datenmengen hat.

Ciao, Sascha

__________________

Microsoft Access MVP
O2k bis O2010, VB6, VS2008, Delphi7, ...
Bitte keine ungefragten E-Mails. Probleme werden hier gelöst.
Bitte beachten: Grundlegendes zum Access-Forum

Knowhow auf Access-im-Unternehmen | Das Access 2007 Praxisbuch für Entwickler | www.mossTOOLs.de

Geändert von Arne Dieckmann (21.06.2017 um 11:50 Uhr).
Sascha Trowitzsch ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.06.2017, 07:25   #7
PawelPopolski
MOF Profi
MOF Profi
Standard

Uralter Thread, aber ich habe mal den von Sascha angegebenen Link angeklickt.
Interessant, dass dir die Seite einiges gebracht hat. Ich habe mir allerdings nicht die Zeit genommen, sie von vorne bis hinten durchzukauen. :-)

Es wäre angeraten den Link zu entfernen.

__________________

Gruß,
Pawel Popolski


Logik hat immer ein eindeutiges Ergebnis, folgt aber nicht zwingend einem eindeutigen Weg.

Geändert von PawelPopolski (12.06.2017 um 07:31 Uhr).
PawelPopolski ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 21.06.2017, 12:23   #8
haklesoft
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Pawel,

dank unserem Super Moderator Arne ist der ungehörige Link nun entfernt.

__________________

Hang loose, haklesoft
haklesoft ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.