{"id":243,"date":"2012-12-01T11:17:32","date_gmt":"2012-12-01T10:17:32","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=243"},"modified":"2014-01-31T08:03:09","modified_gmt":"2014-01-31T07:03:09","slug":"en-temmelig-overvaegtig-c5-database-tager-tid","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=243","title":{"rendered":"Overv\u00e6gtige C5 databaser tager tid"},"content":{"rendered":"<p>En temmelig overv\u00e6gtig C5 database kan tage lang tid at beregning &#8211; is\u00e6r hvis du k\u00f8rer den p\u00e5 SQL og p\u00e5 en Dynamics C5 f\u00f8r version 2012.<\/p>\n<p>Indtil version 2012 af Dynamics C5 var databaseberegningen forskellig\u00a0p\u00e5 Native og SQL. Det har den &#8220;sjove&#8221; sideeffekt at data ikke fylder det samme p\u00e5 Native og SQL, hvilket man kan opleve hvis en kunde skifter fra Native til SQL. Generet er SQL lidt &#8220;billigere&#8221; i databaseplads (men det kan afh\u00e6nge af m\u00e6ngden af indexer i de forskellige tabeller).<\/p>\n<p>P\u00e5 Native f\u00f8r C5 version 2012 tager systemet ganske simpelt den fysiske st\u00f8rrelse af C5DATA.xxx-filen. Dvs. inkl. evt. index&#8217;er og \u00f8vrige ting, samt (hvad v\u00e6rre er) slettede poster. P\u00e5 Native bliver slettede poster liggende i databasen og kan kun genbruges, hvis der siden hen inds\u00e6ttes en post af samme type (fx. kan en slettet ordrelinje erstattes af en ny ordrelinje).<\/p>\n<p>Den eneste m\u00e5de man kan &#8220;frigive&#8221; pladsen p\u00e5 i Native er ved at k\u00f8re en multi-export, oprette en ny database og k\u00f8re en multi-import af alle data igen. I nogle version af C5 f\u00f8lger der s\u00e5gar et Databasekomprimerings-v\u00e6rkt\u00f8j med (et program), der g\u00f8r netop det. Har man tilretninger der ikke er lavet ordenligt (mht. RecID referencer eller bruger l\u00f8benummer-referencer\u00a0mv.), s\u00e5 er det en RIGTIG d\u00e5rlig id\u00e9 &#8211; hvad enten v\u00e6rkt\u00f8jet bruges eller det g\u00f8res manuelt&#8230;\u00a0Det vil ganske simpelt \u00f8del\u00e6gge referencerne i databasen.<\/p>\n<p>P\u00e5 SQL f\u00f8r C5 version 2012\u00a0(og efter version 3.0 hvor SQL-kernerne blev indf\u00f8rt) skal der periodisk gennemf\u00f8res en beregning, der t\u00e6ller antallet af poster i hver enkelt tabel. Dette antal, ganges s\u00e5 med records-st\u00f8rrelsen (dvs. hvor meget postens felter fylder) og derefter ganges der med 1,1 (for at tage h\u00f8jde for at indexer mv. ogs\u00e5 fylder).<\/p>\n<p>P\u00e5 SQL har det heldigvis altid v\u00e6ret s\u00e5dan at pladsen bliver frigivet &#8211; i hvert fald set fra C5s side. P\u00e5 selve SQL-serveren kan man stadig med fordel omorganisere og komprimere databasen for at frig\u00f8re plads fra slettede poster &#8211; men det er noget SQL-serveren kan g\u00f8re for dig.<\/p>\n<p>Da genberegningen p\u00e5 SQL f\u00f8r version 2012\u00a0tager noget tid, gemmes resultatet i XALUtil tabellen i krypteret form. Her gemmes det sammen med en dato, s\u00e5 systemet automatisk kan holde \u00f8je med at tallet bliver genberegnet hver 90. dag. Systemet advarer (ved login) n\u00e5r det er ved at v\u00e6re p\u00e5 tide at k\u00f8rslen skal k\u00f8res, men da den tager noget tid p\u00e5 store databaser, er det bedst at en administrator g\u00f8r det udenfor arbejdstid.<\/p>\n<p>Ignorerer man advarslerne, vil systemet til sidst antage at databasen er meget stor (64GB), hvorfor systemet vil arbejde ekstremt langsom og advare om at databasen er for stor ift. de indlagte koder.<\/p>\n<p>NB: Vi har f\u00e5et et par kommentarer om at der findes m\u00e5der at omg\u00e5es databasechecket p\u00e5. Det er vi skam vidende om. F\u00e6lles for de m\u00e5der vi kender til,\u00a0er at de (og andre metoder) naturligvis er i klar strid med C5\u00a0licensreglerne. Det vil derfor i praksis betyde pirateri &#8211; alts\u00e5 at du k\u00f8rer p\u00e5 en ulovlig C5 licens (og er det egentligt ikke lidt dumt at have betalt penge for din licens, hvis du alligevel er pirat?). Microsoft har ansat personale til netop at afsl\u00f8re den slags pirateri &#8211; s\u00e5 vi kan kun kraftigt opfordre til at man holder sig langt v\u00e6k fra den slags.<\/p>\n<p>Efter version 2012 er databaseberegningen lavet om p\u00e5 s\u00e5vel Native som p\u00e5 SQL. Det betyder at Native nu f\u00f8lger samme formel som SQL (s\u00e5 data set fra C5\u00a0fylder det samme p\u00e5 de to databaser), ligesom databasen automatisk genberegnes n\u00e5r C5 har brug for at vide hvad den er. Til geng\u00e6ld er beregningen blevet lynhurtig (f\u00e5 sekunder).<\/p>\n<p>Samtidigt har Microsoft sat &#8220;en prop&#8221; i deres databaseforbrug, s\u00e5 n\u00e5r de udvider databasen ifm. nye frigivelser, s\u00e5 koster det ikke ekstra (dvs. n\u00e5r de nu har udvidet adressefelterne med flere tegn, s\u00e5 koster det ikke kunden noget databasem\u00e6ssigt).<\/p>\n<p>Vores indtryk er at den nye databaseberegning fungerer rigtigt godt i praksis &#8211; dog skal man lige v\u00e6re opm\u00e6rksom p\u00e5 at C5 kan finde p\u00e5 at blokere for login af nye brugere, s\u00e5fremt en bruger har en lang k\u00f8rsel igang der holder TTSer. L\u00e6s evt. mere om det her: <a title=\"Langsom login p\u00e5 C5 version 2012 p\u00e5 SQL\" href=\"http:\/\/blog.systemconnect.dk\/?p=153\">Langsom login p\u00e5 C5 version 2012 p\u00e5 SQL<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En temmelig overv\u00e6gtig C5 database kan tage lang tid at beregning &#8211; is\u00e6r hvis du k\u00f8rer den p\u00e5 SQL og p\u00e5 en Dynamics C5 f\u00f8r version 2012. Indtil version 2012 af Dynamics C5 var databaseberegningen forskellig\u00a0p\u00e5 Native og SQL. Det &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=243\">L\u00e6s resten <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,6,4],"tags":[15,43,13,22,11,53,14,21,28,7],"class_list":["post-243","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-support","category-klassisk-c5-teknik","tag-business-solutions","tag-c5","tag-damgaard-data","tag-database","tag-dynamics","tag-klassisk-c5","tag-microsoft","tag-native","tag-sql","tag-versioner"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=243"}],"version-history":[{"count":8,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/243\/revisions"}],"predecessor-version":[{"id":381,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/243\/revisions\/381"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}