webForumDet fria alternativet
Logga in / Bli medlem

sql-sats - 20 sekunder?

Databaser & SQL

3 svar · 225 visningar · startad av udden

Medlem sedan mars 200174 inlägg
Trådstart#1

denna sats tar 20 sek och letar bland ca 70000 poster

strSQL = "SELECT intId, art1, art2, art3, art4, art5 FROM Artikel " &_
" WHERE art1 LIKE '%" & strSearch & "%' " &_
" OR art2 LIKE '%" & strSearch & "%' " &_
" OR art3 LIKE '%" & strSearch & "%' " &_
" ORDER BY artname ASC"

är det något fel på den, ineffektiv eller nått, eller bör man t.ex införa full-text index i databasen? (art2 och art3 innehåller ca 5-10 ord per post)

Medlem sedan dec. 200012 464 inlägg
#2

Eftersom du använder like på det sättet så kommer du aldrig att kunna utnyttja index. Det blir alltid en sekventiell genomläsning och sortering. Det kan nog vara värt att testa full-text index.

Medlem sedan mars 200174 inlägg
#3

okej.

när du säger "använder like på det sättet" - menar du då att det finns bättre sätt att genomföra en sådan här sökning?

Medlem sedan dec. 200012 464 inlägg
#4

Nej, inte utan full text index.

693 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
131 ms — deklarationer (db)
131 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)