Avatar billede grafikeren Nybegynder
10. april 2004 - 13:53 Der er 15 kommentarer og
1 løsning

Automatisk database optimering

Hej!

Hvis tabeller ikke er blevet optimeret efter nogle ændringer, så melder siden ofte fejl ved execute sætningerne og siden bliver sløv! Der sker med det samme hvor en tabel har et overhead. Skal dette løses vha. en automatisk "Sql table optimering" eller hva'?

Hvordan laver man smartest en automatisk "SQL tabel optimize"? Er der evt. andre oprydnings kommandoer, som kunne gøre min side mere stabil og hurtigere?

Hvilken løsning er mest "performance-venligst"?
Avatar billede montago Praktikant
11. april 2004 - 21:57 #1
ehm... folk herinde har ingen chance for at kunne svare, idet det du spørger om kræver at man er dig for at kunne forstå...

please post din kode, så kan vi snakke om at optimere...
Avatar billede grafikeren Nybegynder
14. april 2004 - 00:05 #2
Jeg har desværre ikke et konkret eksempel. Ville bare gerne lave et automatisk script, som optimerede sql databasen og lavede nogle oprydninger.

Hvis SQL databasen har et overhead, så laver siden mange fejl. Kan dette skyldes, at vi skal ha' sat indekses (i SQL) på alle vores where klausuler?
Avatar billede montago Praktikant
14. april 2004 - 00:49 #3
automatisk... den slags findes altså ikke når det gælder scripts...

den eneste måde at optimere et script på, er at lade en gut som er bedre end en selv, lave nogle optimeringer... andre måder er der ikke... eller må du blive bedre til at optimere koden selv...

sql/asp/scripting... kan ikke optimere sig selv, medmindre du laver et script som er 10 gange så avanceret som det du startede med...

som sagt før... den eneste måde jeg/vi kan hjælpe dig på, er ved at komme med konkrete eksempler... eller hele koden, og derefter spørge... kan dette gøres bedre ?
Avatar billede burningice Nybegynder
14. april 2004 - 09:34 #4
montago>> har du drukket for meget absint?! Manden skal jo ikke have optimeret sin script, men database. Jeg vil gå ud fra at han bruger access-db, og den har nemlig en irreterende "feauture" med at svine databasen til efter en del tilføjelser/sletninger af poster. Der er et menu-punkt i Access der hedder Tools>Database Utilites>Compact and Repair Database. Der har været et spm tidligere om hvordan man kunne automatisere denne process: http://www.eksperten.dk/spm/478125
Avatar billede montago Praktikant
14. april 2004 - 11:49 #5
igen... hvis databasen bliver rodet... må det jo være en fejl i scriptet...

men okay... jeg har måske drukket 20 liter absint for meget i går
Avatar billede burningice Nybegynder
14. april 2004 - 11:58 #6
nej... det er ikke rod med scriptet, men rod med access db. Når man sletter en record i access bliver pladsen ikke frigjort i databasen, før man laver en compact&repair. Så, selvom du laver et lille simpelt script der opretter 10000000 records og sletter dem igen (et script på 10 linjer er sq lidt svært at lave fejl i), så vil databasen ikke fylde det samme efter udførslen som før.

Men om hans applikation er konstrueret ordenligt, siden han sletter records i flæng, det er en anden sag. Det behøver ikke at betyde der er fejl i scriptet.
Avatar billede montago Praktikant
14. april 2004 - 12:14 #7
okay... så har jeg lært noget nyt i dag ;-)
Avatar billede burningice Nybegynder
14. april 2004 - 14:55 #8
og.. humlen er vel, at man skal lade være med at bruge access db :)
Avatar billede montago Praktikant
14. april 2004 - 14:57 #9
nejda... Access er super duper !...

jeg har minus problemer med access..

kan du måske med MySQL downloade databasen, og har du måske et meget nice program til at ordne basen ?...
Avatar billede burningice Nybegynder
14. april 2004 - 15:01 #10
access er fint til at designe i, derfor bruges det til at udforme en database der sidenhen køres op på en større database-server. Der findes da mange 'nice' programmer til at administrere på MySQL og MSSQL, og ang. at kopiere... ja, det kan man da godt:

Opret en database med samme navn på server du vil kopiere hen til, luk serveren ned, kopier db-filerne fra den gamle server over til den nye, og start serveren igen.
Avatar billede montago Praktikant
14. april 2004 - 15:03 #11
:-)
Avatar billede grafikeren Nybegynder
14. april 2004 - 16:05 #12
I har alle drukket for meget absint! :-)

Prøv at læse mit spørgsmål... Der står, at der er en SQL database (mySQL). Og der står også, at jeg udemærket kender "SQL tabel optimize", den skal bare foretage det automatisk. Altså fx en gang i timen.
Avatar billede montago Praktikant
14. april 2004 - 16:13 #13
HAHAHA

jamen... så lav en Self-Update side... som tikker en gang i timen...
Avatar billede grafikeren Nybegynder
15. april 2004 - 00:29 #14
... ja, det var jo det mit spørgsmål gik på fra starten af. "Hvordan laver man smartest en automatisk "SQL tabel optimize"?

HOW TO?
Avatar billede burningice Nybegynder
15. april 2004 - 16:00 #15
sql er et sprog (Structured Query Language), og en database, ja... en base for data. En SQL Database må altså være en base for data der bruger SQL til hente-gemme med, ergo går MS Acces, MS SQL, mySQL og mange mange andre ind under denne kategori.

Ved godt det var lidt forhastet at gå ud fra du bruge en MS Access database, men det gjorde jeg nu alligevel da det umiddelbart virkede som en typisk fejl i netop dette produkt og der er mange der bruger den som db i forbindelse med udvikling af asp.

Ja, lav en vbs-fil der indholder koden til at optimere dine tabeller, og sæt den til at eksekvere hver time ved hjælp af "Scheduled Tasks" under kontrolpanelet.
Avatar billede grafikeren Nybegynder
29. april 2004 - 15:05 #16
det kan jeg ikke bruge til noget, når jeg ikke har serveren hos mig...
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