Avatar billede d797fni Nybegynder
09. november 2001 - 12:59 Der er 5 kommentarer og
1 løsning

Stor database

Hej jeg sidder med en database med ca. 15000 linier og med 15-17 kolonner.

Hver gang en bruger logger ind, registreres hans afdelingsnummer (udfra hans login navn og password), og det er kun dem med netop dette afdnr. som skal vises.

Ideen er så at brugeren kan vælge kun at se en eller flere af de forskellige medlemstyper (pensionist, personlig, husstand m.fl.) efter en række checkbokse.

Hvis jeg hver gang benytter \"Where afdnr=1004\" så skal der ved hver valg søges igennem hele databasen, hvilket er langsommeligt.

Hvordan kan man løse det, og er der en som har ideer til hvordan man nemmest lave en sådan liste af checkbokse, hvor man kan vælge hvilke type medlemmer man ønsker at se.

Jeg tænker noget med et array (eller getrows), men ved ellers ikke hvordan jeg griber det an.
Avatar billede zeptic Nybegynder
09. november 2001 - 13:04 #1
Du kan evt. lave et index på afd.nummer, men det kan have uønskelige sideeffekter for andre forespørgelser.
Avatar billede d797fni Nybegynder
09. november 2001 - 13:26 #2
sideeffekter ???

og hvordan laves et index ?
Avatar billede horsmark Nybegynder
09. november 2001 - 13:31 #3
Her er en ok guide til SQL (index) :-)

http://w3.one.net/~jhoffman/sqltut.htm#Indexes
Avatar billede horsmark Nybegynder
09. november 2001 - 13:36 #4
en anden metode er også at bygge et view..

http://w3.one.net/~jhoffman/sqltut.htm#Views

Views :
What a view does is to allow you to assign the results of a query to a new, personal table, that you can use in other queries, where this new table is given the view name in your FROM clause. When you access a view, the query that is defined in your view creation statement is performed (generally), and the results of that query look just like another table in the query that you wrote invoking the view. For example, to create a view:

CREATE VIEW ANTVIEW AS SELECT ITEMDESIRED FROM ORDERS;

Now, write a query using this view as a table, where the table is just a listing of all Items Desired from the Orders table:

SELECT SELLERID
FROM ANTIQUES, ANTVIEW
WHERE ITEMDESIRED = ITEM;

Mvh
HorsMark
Avatar billede zeptic Nybegynder
09. november 2001 - 13:37 #5
ja, det er jo ikke så fedt at optimere en forespørgsel, hvis det gør andre forespørgsler langsommere... du skal derfor se på alle forespørgsler når du optimerer og derefter vælge den metode der er bedst.
det er lidt af en kunst at optimere godt, men det er også derfor der er nogen der tjener kassen på at gøre det.
Avatar billede d797fni Nybegynder
09. november 2001 - 14:40 #6
Hvordan er det med Views og hurtighed ?
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