10. november 2004 - 14:24Der er
10 kommentarer og 3 løsninger
Dataplacering ved extern database
Jeg har fået følgende spørgsmål ved en C5 Udvikler test:
Hvor gemmes data i SQL server (med Temp in native) i (DAT-regnskab)?
1. I en temperær fil 2. I native databasen på serveren 3. I Native databasen på klienten 4. I SQL databasen på serveren 5. I Oracle databasen på serveren
Ovenstående spørgsmål veksles så ved, at der nogen gange spørges til Oracle server istedet for SQL. Nogen gange er det uden Temp in Native istedet for med. Nogen gange er det Temp-regnskab eller Alle regnskaber istedet for DAT-regnskab. Der kan også stå Temp filer istedet for DAT-regnskab.
Jeg har sat en del point på dette spørgsmål. Hvad er de forskellige svarmuligheder?
Hvis data gemmes i et regnskab (alle eller DAT) gemmes der på SQL/Oracle på serveren. Hvis data gemmes i temp filer på SQL/Oracle med temp in native, gemmes data i en temporær fil på klienten. Hvis data gemmes i temp filer på SQL/Oracle UDEN temp in native, gemmes data på gemmes data på SQL/Oracle på serveren.
Aargh, vil det sige, at det vi snakker om i min sidste parantes, ikke er regnskaber i den forstand at de hedder (DAT, DMO osv.) men nærmere de tre muligheder man har for dataplacering på de enkelte tabeller? Er du sikker på at der ikke er forskel på SQL og Oracle i sammenhængen? Jeg synes man bruger de to udtryk i flæng... men er det ikke to helt forskellige databaser?
"Aargh, vil det sige, at det vi snakker om i min sidste parantes, ikke er regnskaber i den forstand at de hedder (DAT, DMO osv.) men nærmere de tre muligheder man har for dataplacering på de enkelte tabeller?"
Jo, DAT og DMO er regnskaber. Men det er rigtigt at man i en tabelfdefinition kan markere, hvor data skal gemmes.
Hvis man vælger I Hvert regnskab, gemmes data lagret i tabellen MEDENS man har regnskab XYZ aktivt, KUN i regnskab XYZ, og hvis man stod i ABC så lagres de KUN i ABC. ALTSÅ på databaseserveren.
Hvis man vælger KUN I DAT, gemmes data lagret i tabellen ALTID i DAT-regnskabet UANSET hvilket regnskab man har aktivt. (Det er for at man kan DELE visse data mellem alle regnskaber). ALTSÅ OGSÅ på databaseserveren.
Hvis man vælger temporær, så betragtes tabellen som værende temporær, og er underlagt det her med, om Temp er i native eller ej, og data bliver så lagret enten lokalt på klienten (temp in native), eller også på databaseserveren (temp not in native).
Hvis man kører en NATIVE-database, vil hvert regnskab svare til en C5DATA eller C_DATA fil (som man også plejer at benævne database fil). Hvis man kører en SQL-database, vil alle regnskaber faktisk blive lagret i den SAMME DATABASE, hvor der så er en kolonne med regnskabsid'et som bruges til at adskille data i de forskellige regnskaber.
Der er stor forskel på SQL-Server og Oracle, men det er jo ikke det der er spørgsmålet. Spørgsmålet er hvor XAL/C5 gemmer sine data.
Jeg forstår godt, hvad du skriver, men er vi så ikke enige om, at værdien i min sidste parantes kun kan antage tre værdier, hvis der skal være mening i spørgsmålet, nemlig: 1. DAT-regnskabet 2. ALLE regnskaber 3. I TMP fil ?
Lige et udvidet spørgsmål. Når man benytter Temp in Native, så gemmes TMP tabeller lokalt på klienten i filer udenfor databasen. Hvis man kører uden Temp in Native, så gemmes TMP tabeller på SQL serveren. Men gemmes de i databasen eller i filer udenfor databasen?
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.