Avatar billede dakine Nybegynder
22. maj 2003 - 12:42 Der er 9 kommentarer og
1 løsning

Langsomme databasekald (Alfabetisk orden)

Hej med jer.

Jeg har en applikation som folk afvikler fra en fælles lokation. Alle kører altså samme EXE-fil. App. indeholder  mange DB-kald til en Oracle8i database.

Afvikling af applikationen kan opdeles i 2 grupper.
Problemet kan ses når en form åbnes. (Create).

Gruppe1: Formen er klar efter 2 sek.
Gruppe2: Formen er klar efter 1min40sek.

Forskellen er, at gruppe1 får listet sine data i vilkårlig rækkefølge.
Gruppe2 får alt sorteret alt i alfabetisk orden og derfor tager det meget lang tid. (27.000 rows).

Husk alle kører samme EXE-fil så der er ikke nogen 'ORDER BY... forskel i sourcekoden.
Alle har samme Oracle client/ BDE Administrator installeret. Igen med en fælles CFG-fil.

Har nogen et hint til hvorfor denne forskel?
Avatar billede pjotre Novice
22. maj 2003 - 12:57 #1
Jeg tror det vil hjælpe, hvis du laver et sekundær index, som indeholder de felter, som du sorterer i på formet i gruppe 2.
Mvh. Pjotre
Avatar billede soda Nybegynder
22. maj 2003 - 14:03 #2
Som pjotre siger...Har du prøvet at indexere databasen ? - Det ville i bedste fald hjælpe meget på svartiden.
Avatar billede dakine Nybegynder
22. maj 2003 - 14:59 #3
jeg mener der er index på. Men der er i bund og grund irelevant i denne sammenhæng.

Problemet er, at nogle brugere får vist dataene i afbetisk rækkefølge.- og dermed laaang svartid.
Andre brugere får bare kastet dataene i hovedet hvilket går hurtigt.

Jeg er ikke interesseret i den alfabetiske rækkefølge, men hvor kommer denne ordre fra, at det os nogle brugere skal være det??? Alle kører jo samme EXE-fil.

Hvor kan jeg slå fra, at INGEN skal have vist dataene i alfabetisk rækkefølge?
Alle kører W2000 med samme servicepack og samme netkort setup.

Et skud i tågen.- Kan man forstille sig, at en ny netkort-driver kan være skyld i det? Et eller andet er i hvert fald skyld i det.

Jeg ved den er vanskelig, men der er jo også 100 point på spil. :o)
Avatar billede nop Nybegynder
27. maj 2003 - 11:01 #4
Jeg tror ikke fejlen ligger i netkort (ved!), måske kunne det være odbc-driveren på clienterne der er sat forskelligt op, men jeg tror ikke at den ligger lokalt for sql-strenge sendes til serveren som de er, det er nok serveren der udfra brugeren sætter "order by" på dine sql select's ? Du skriver jo osse noget med grupper og det må vel betyde at ligemeget hvor at en bruger i grp 2 logger på så tager det minuter istedet for sekunder.
Nu må du så osse regne med at det er en oracle-server *go*
Avatar billede pjotre Novice
27. maj 2003 - 11:44 #5
Du skal være helt sikker på at der er et sekundær index på, ellers vil programmet overføre data til den enkelte PC'er og sortere dem der, og så til sidst vise dem på skærmen - og det tager tid!
Prøv evt. også at reorganisere Databasen.
Mvh Pjotre
Avatar billede pjotre Novice
27. maj 2003 - 11:53 #6
Eller, hvis der er et sekundær index på:
Så kan man skifte index ved at flytte index navnet over i databasenavn.indexname. Prøv at checke om dette ligger i dit program!
Mvh Pjotre
Avatar billede dakine Nybegynder
28. maj 2003 - 08:56 #7
Jeg er ikke sikker på der er et sekundær index på.
Hvordan kan jeg se om der er det?

MEN STADIGVÆK. Jeg er i dette tilfælde ikke interesseret i, hvordan man laver den mest optimale alfabetiske orden. Den skal slet ikke sorterer dataene, men bare vise dem rå. (Som det sker for gruppe1).

Det med opdeling i 2 grupper har i øvrigt ikke noget med Logon af gøre.
Gruppe2 består nemlig af folk der har fået en ny PC (eller en re-installeret) indenfor den seneste måned! Alle disse får data sorteret i alfabetisk rækkefølge. Noget tyder på en sammenhæng.
Avatar billede dakine Nybegynder
18. juni 2003 - 09:08 #8
Løsning fundet. :o)

Årsagen var at 'Language settings for the System' under 'Regional Options'i Control Panel'et var sat til 'Danish'. Dermed finder Oracle DB'en på, at alle data skal sorteres i alfabetisk orden plus et par andre pussige ting.

Jeg fjernede alt Oracle på clienten. (Inkl i Registry). Sæt 'Language setting for the system' til 'English (United Kingdom)'. Genstart.
Installer Oracle igen og set sætter så sproget tilbage til Danish.

Så kører det. Nu tager det igen under 2.sek at åbne en form i stedet for 1:40.
Oracle Support havde heller ikke nogen anelse om hvor årsagen skulle findes.
Avatar billede soda Nybegynder
18. juni 2003 - 09:17 #9
Hvad man ikke kan udføre af mirakler ved en geninstallation er ikke så lidt ;o)

Eftersom du nu har fundet fejlen selv, så kan du så ikke lige sende et svar og give dig selv point, så denne tråd kan lukkes ? ;o)
Avatar billede dakine Nybegynder
18. juni 2003 - 09:24 #10
Øhh jo. Jeg har faktisk fortjent 100 point for det. :o)

Men det har godtnok også taget noget tid at finde løsningen. Men endnu engang må man bare konstater, at gode gamle ÆØÅ, og IT helst skal holdes så adskildt som muligt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester