sql-sats - 20 sekunder?

Databaser & SQL

3 svar · 247 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.

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)