Avatar billede stigmeyer Nybegynder
29. juni 2013 - 23:31 Der er 2 kommentarer og
1 løsning

C5 4.0 SQL Performance ved kal til flere tabeller

Hej alle.

Vi kører test på flytning af vores C5 4.0 Native til MSSQL2008 - ca 1.3gb. Databasen kører ret fint og vi har en faktor 4 forbedring på hentning af data til Excel i forhold til den gamle ODBC.

Jeg har justeret alle vores tilretninger til så de er mere "sql venlige" aka #using(index) og #sqlfieldlist og det har gjort performance fin mange steder.

Jeg har dog stadig problemer med rapporter og QTX'er der bruger flere kartoteker.

Hvis jeg fx. har en rapport, der løber igennem Ordkart og filtrerer på ordrehovedet og dernæst Ordlinie for at vise udvalgte linier. I denne form tager kørslen ca 2 minutter (mod < 30 sekunder native).

Hvis jeg derimod løber alle ordrelinier igennem og så i filter angiver konditionerne for hovedet med et opslag Ordkart[NumTraIdx,Nummer].Gruppe == "xxx", så tager kørslen 12 sekunder (!)

Det virker lidt modsat for mig og jeg tror der er noget jeg ikke ved omkring optimering til SQL. Jeg har desværre ikke adgang til "Best practice" dokumentet fra partnersource og i disse ferietider heller ikke adgang til en SQL haj af en konsulent.

Kan nogen pege mig mod en "workaround" så jeg ikke skal lave alle rapporter/qtx'er helt om?
Avatar billede stigmeyer Nybegynder
26. december 2013 - 16:24 #1
Blot en "lukning" af denne tråd med et hint til andre.

Det ser ud til at C5 bare ikke er så effektiv med kaldene til C5 som native og nogen af mine opgaver simpelt hent bliver umulige at nå på SQL. Til gengæld er der mulighed for at få returneret resultater via stored procedures meget hurtigere. Så på med arbejdshandskerne og optimeret kørslerne til SQL og lad serveren gøre "arbejdet".
Avatar billede jjam Juniormester
26. december 2013 - 20:59 #2
Best practice er vel #using(index) og #sqlfieldlist.
Hvis du virkelig vil have gang I koden her jeg erfaring med at benytte direkte SQL kald.
Så vidt jeg husker så benyttes #SQLPrepare og #SQLExecute
Avatar billede stigmeyer Nybegynder
27. december 2013 - 09:24 #3
Mine erfaringer var også at #SQLFIELDLIST var det der (naturligt nok) gav det største boost i performance. Brug af index med #USING(xxxIdx) gave i mine tests næsten ingenting.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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