22. maj 2003 - 12:42Der 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.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
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)
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*
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
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
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.
Å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.
Ø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.
Synes godt om
Ny brugerNybegynder
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.