[VBScript] ODBC connectie trager dan Excel?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 06-10 14:49
Voor het bedrijf waar ik momenteel werk ben ik bezig met een product configurator, waarmee ze machines kunnen samenstellen uit meerdere diversen onderdelen.

De test versie is nu af en werkt, echter alle vragen, mogelijke antwoorden en daarbij behorende onderdelen worden uit een excelsheet gelezen. Bij iedere vraag duikt hij dan weer opnieuw excel in om de juiste gegevens op te zoeken, regel voor regel wel te verstaan.

Voor de test versie staat er maar 1 machine in excel, maar dat moeten er straks een stuk of 50 worden.

De excel sheet ziet er ongeveer zo uit:
SerieTypePompArtikelnummerDekselArtikelnummer
AA230V01001Hoog02001
110V01002Laag02002
AB230V01001Hoog02001
110V01002n.v.t.0
BA230V010012-Hoog02003
110V01001Hoog02001
Laag02002


Om te voorkomen dat de verkoop afdeling straks elke keer een half minuut of langer moet wachten, voordat de product configurator is opgestart (want met name het uitlezen van de mogelijke series en bijbehorende types kost nogal wat tijd, aangezien hij door een 350 regels in excel moet wandelen), wilde ik gebruik maken van een database.

Nu draait hier op dit moment al Pervavise SQL 8.5 op de server, aangezien het ERP pakket waarin de Product Configurator zit, deze database gebruikt. Ik heb dus gewoon een nieuwe database aangemaakt met een paar test tabellen en maak vanuit VBScript een ODBC connectie met de database.

Het valt me echter nu al direct op dat het uitlezen via de database dus significant trager is dan het uitlezen van Excel.

Mijn vraag is of dit gebruikelijk is en waar dit aan kan liggen, aangezien ik zelf in de veronderstelling was (en stiekem nog altijd ben) dat het via een database vele malen sneller zou moeten zijn.

Misschien moet ik een andere database (MySQL) gebruiken of kan ik op één of andere manier de verbinding optimaliseren?

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb geen ervaring met VBscript, heb ODBC alleen voor database conversies/imports gebruikt, en Pervasive ken ik alleen van naam, maar toch my 2 cents...

- Gooit je applicatie na iedere database access de connection weg en moet 'ie die daarna weer opbouwen (incl. login validatie)? Scripttalen doen dat wel vaak op die manier, en dat kost je een hoop performance.
- Optimaliseren van database indexen is ook iets wat belangrijk kan gaan worden, maar dat is nu nog niet echt aan de orde. En ik neem aan dat je goed hebt nagedacht over je datamodel? Een RDBMS is geen spreadsheet...
- Als je een andere DB overweegt, kijk dan 's naar MSSQL 2005. Op een Microsoft platform mag je verwachten dat VBscript en ODBC daar prima mee zouden moeten kunnen werken. En de Express versie is gratis en kent vrij weinig beperkingen (max. 2GB database, en geen management tools meegeleverd).

Acties:
  • 0 Henk 'm!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 06-10 14:49
Verwijderd schreef op donderdag 26 juli 2007 @ 22:50:
- Gooit je applicatie na iedere database access de connection weg en moet 'ie die daarna weer opbouwen (incl. login validatie)? Scripttalen doen dat wel vaak op die manier, en dat kost je een hoop performance.
Nee, ik initialiseer de connectie met de database tijdens het starten van het programma en sluit deze pas op het moment dat ik het programma sluit.
Hij opent voor iedere vraag wel een recordset en sluit deze zodra hij klaar is met de vraag, bij de volgende opent ie dan weer een nieuwe, maar volgens mij is dat ook de juist manier.
Verwijderd schreef op donderdag 26 juli 2007 @ 22:50:- Optimaliseren van database indexen is ook iets wat belangrijk kan gaan worden, maar dat is nu nog niet echt aan de orde. En ik neem aan dat je goed hebt nagedacht over je datamodel? Een RDBMS is geen spreadsheet...
Aangezien het een simpele test is, gaat het slechts om 2 tabellen op dit moment.
- Eentje met de serienamen
- Eentje met de typenamen
Beide hebben indexen, dus dat zou het probleem niet mogen zijn.
Verwijderd schreef op donderdag 26 juli 2007 @ 22:50:- Als je een andere DB overweegt, kijk dan 's naar MSSQL 2005. Op een Microsoft platform mag je verwachten dat VBscript en ODBC daar prima mee zouden moeten kunnen werken. En de Express versie is gratis en kent vrij weinig beperkingen (max. 2GB database, en geen management tools meegeleverd).
Ik zat te denken aan MySQL, omdat de product configurator geintregreerd zit in het ERP pakket dat men hier gebruikt. Terwijl de database van de product configurator niet via dat pakket aangepast kan worden. Daar wil ik dan ook een externe applicatie (website waarschijnlijk) voor maken, zodat men die kan bijhouden, zoals ze het eigenlijk in Excel zouden doen.