MiaMedlem sedan juni 200035 inlägg Jag skulle vilja ha lite hjälp med en SQL-sats.
Har ett sökformulär i asp som ska söka i en databas.
Är lite osäker på hur sql-satserna ska skrivas för att vara effektiva och rätta. Det finns tre olika typer av sökningar som det ser ut nu.
En där man söker i en konkret kolumn typ förnamn, en variant där man kan söka på namn vilket innebär att man söker i både för och efternamnkolumnen. Och en tredje variant där man söker i alla sökbara kolumner, typ fritextsökning.
Variant ett tordeväl bli en
SELECT * FROM <tabellnamn> WHERE <kolumnnamn> = <%sökvariabel%>...
Men hur blir de andra två varianterna?
------------------
Mia
emissionMedlem sedan dec. 19996 721 inlägg Tyvärr finns det inget sätt att klämma ihop allt, utan man får köra med
SELECT * FROM <tabellnamn> WHERE kolumnnamn = sökvariabel or kolumnnamn2 = sökvariabel or kolumnnnamn3 = sökvariabel or.......
MiaMedlem sedan juni 200035 inlägg Tack!
Är det smartast att lägga sql:en som stored procedures eller är det likvärdigt att skriva dem i asp-koden?
Och hur anropar man i såfall en stored procedure från sin aspkod?
------------------
Mia
VideMedlem sedan dec. 19998 577 inlägg Du anropar den med dess namn:
databas.execute "namnet"
i SQL Server:
databas.execute "[call namnet]"
En stored procedure är nog ganska så mycket snabbare...
------------------
www.webeye.nu
emissionMedlem sedan dec. 19996 721 inlägg Jag tycker att man ska undvika stored procedures i det längsta, och bara använda dem om man har webbplatser med mycket hög trafik, och komplexa sökningar. Dels för man in en ny felkälla i sin applikation, dels blir lösningen plattformsberoende.
VideMedlem sedan dec. 19998 577 inlägg Hmm... jag blev nyfiken på hur mycket man skulle tjäna på att använda stored procedures... testade detta:
Sökte en tabell med ca 3200 poster och listade alla, använde en helt vanlig SQL-sträng i ASPkoden, Resultat hela 23 sek.
Sökte sedan samma tabell med en fråga istället och fick samma resultat???
Sedan testade jag att köra en mer koplex fråga, så där jag kollar om en viss textsträng finns med och ett tal är 3, 0,46 sek... samma resultat med en SQLsträng som en fråga...
Alltså, hur mycket mer komplicerad skall frågeuttrycket vara för att man skall märka skillnad???
------------------
www.webeye.nu
emissionMedlem sedan dec. 19996 721 inlägg Kort sagt, mycket komplicerad eller mycket ofta/hög belastning.
------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
fredrikMedlem sedan dec. 19991 072 inlägg ...sen finns det ju en del funktioner som man måste använda stored procedures för. exempel vis @@identity som ger senast inlagda identitet i databasen...eller if-satser i sql-satsen.
Sen kan det ju även vara av säkerhetsskäl. Om någon får tag på din kod så ser de ju genast hur databasen är uppbyggd mha sql-strängar, men använder du stored procedures så syns ju inte dessa.
Det är väl även ofta om man använder flera select-satser/beräkningar efter varandra med stora datamängder stored procedures är som bäst.
------------------
Fredrik Klarqvist
fredrik.klarqvist@swipnet.se
www.streetwise.se/fredrik/
emissionMedlem sedan dec. 19996 721 inlägg @@identity kräver inte stored procedures, men i övrigt fick du med de bästa anledningarna till att använda dessa. De är helt enkelt bra om man vill kapsla in "äffarslogiken" i databasen, och på så sätt säkra och snabba upp systemen.