Har en tabell i en Access-DB med ca 1500 poster och en sökfunktion i ASP på min webbplats som söker efter ord i två av tabellkolumnerna. Just nu ser sökningen ut typ så här:
SELECT * FROM tabell WHERE tblOne LIKE '%" & varSokord & "%' OR tblTwo LIKE '%" & varSokord & "%'
Det funkar väl ok just nu, är lite småsegt bara. Men om det blir fler poster i framtiden, vilket det kommer bli, så är jag orolig för att det kommer gå väldigt segt. Så:
Hur kan jag göra för att snabba upp sökningen? Asså, det går ju att välja i Access tabelldesign-gränssnitt att kolumnen ska indexeras, men hur använder jag indexeringen sen?
Med den frågan så spelar det ingen roll om du har index eller inte, den kommer alltid att vara långsam och svarstiden är direkt proportionell mot antalet poster.
1. Så att köra med wildcard mot en Access-DB är, om man inte är nöjd med att det går sjukt segt, enligt er bara dumt? Eller går det att lösa på nåt sätt?
2. I det här fallet är det en webbshop det handlar om, man ska kunna söka på produkter. Vet inte hur jag ska formulera mig riktigt men är det vanligt att man inte kan söka på wildcards? Vad tycker ni, kan jag bygga sökfunktionen utan wildcards?
Alternativet vore som jag förstått det att helt enkelt byta DB till MySQL eller så. Men det blir ett jättejobb så det undviker jag gärna.
En sista fråga: I den tråden som du länkade till finns bl a den här länken, men där beskrivs indexering för SQL-Server, är det samma principer för SQL-Server som för MS Access?
1. Så att köra med wildcard mot en Access-DB är, om man inte är nöjd med att det går sjukt segt, enligt er bara dumt? Eller går det att lösa på nåt sätt?
Det är inte dumt, men man ska vara medveten om vad som händer.
web00132 skrev:
2. I det här fallet är det en webbshop det handlar om, man ska kunna söka på produkter. Vet inte hur jag ska formulera mig riktigt men är det vanligt att man inte kan söka på wildcards?
Ja, det är rätt vanligt att man inte kan ha inledande wildcard.
web00132 skrev:
Vad tycker ni, kan jag bygga sökfunktionen utan wildcards?
Utan inledande wildcard, definitivt.
web00132 skrev:
Alternativet vore som jag förstått det att helt enkelt byta DB till MySQL eller så. Men det blir ett jättejobb så det undviker jag gärna.
MySQL är möjligen något snabbare än Access/JET, men själva grundproblemet består, oavsett vilken DBMS du väljer. Ett index hjälper inte om du har inledande wildcard.
web00132 skrev:
En sista fråga: I den tråden som du länkade till finns bl a den här länken, men där beskrivs indexering för SQL-Server, är det samma principer för SQL-Server som för MS Access?
Ja, i princip. SQL Server erbjuder dock lite större kontroll över hur indexen ska fungera.
255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2