Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


optimering av SQL-fråga

Postades av 2007-10-26 10:39:54 - Kalle Karlsson, i forum sql-server/msde, Tråden har 4 Kommentarer och lästs av 836 personer

Hej,

Jag ska göra en select från en tabell med anställda i ett företag med urval på fälten ftgnr och anstnr. Som det är gjort nu så sätts en sträng ihop i programkoden som tar varje anstnr och lägger till OR. Så om t ex företagsnr är 20 och jag vill ha anstnr 10,11 och 12 så blir frågan
SELECT * FROM tabell WHERE ftgnr = '20' AND (anstnr = '10' OR anstnr = '11' OR anstnr = '12'). Detta funkar ju bra med några stycken anstnr, men om det t ex är 500 anstnr så blir ju frågan extremt stor. Finns det nån smartare lösning? Är det snabbare att använda anstnr IN (....) istället för alla OR?
Använder SQL Server 2000 / 2005.


Svara

Sv: optimering av SQL-fråga

Postades av 2007-10-26 10:51:03 - Thomas Vanhaniemi

Vet inte om det blir snabbare med IN, men det blir definitivt snyggare SQL att läsa. Troligen kan det också bli snabbare eftersom SQL servern då får hantera allt inom IN som en array.

Men det blir ju också lättare för programmet att sätta ihop SQL frågan, så jag rekommenderar att du använder dig av IN istället för en stor mängd OR.


Svara

Sv:optimering av SQL-fråga

Postades av 2007-10-26 11:06:39 - Pelle Johansson

Som Thomas säger, en variant är att om du vet hur intervallet skall se ut så kan du skapa en sub-query:

SELECT * FROM tabell WHERE ftgnr = '20' AND anstnr IN(10,11,12)

eller

SELECT * FROM tabell WHERE ftgnr = '20' AND anstnr IN(select anstnr from tabellanst where anstnr between 10 and 20)

eller

SELECT * FROM tabell WHERE ftgnr = '20' AND anstnr IN(select anstnr from tabellanst where anstnr < 30)


Så länge inte datat som returneras är strängar i subfrågan fungerar detta..


Svara

Sv: optimering av SQL-fråga

Postades av 2007-10-27 12:01:15 - Niklas Jansson

Eller så kan du, beroende på databas, använda en temporär tabell som du använder dig av.


Svara

Sv: optimering av SQL-fråga

Postades av 2007-11-03 09:40:28 - Andreas Hillqvist

Vad finns det för något som är gemensamt för användarna?
Är det troligt att ett urval vill återanvändas?

Då borde du ha en tabell som du sparar dem i och istället göra en join.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 477
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies