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


Är denna SQL effektiv??

Postades av 2002-10-28 18:18:36 - Benni Svensson, i forum sql-server/msde, Tråden har 6 Kommentarer och lästs av 795 personer

Efter en del tips, så har jag ändrat i min databas och kommit fram till följande SQL.
Verkar den bra uppbyggd?
<code>
use melodistatestikSQL

SELECT t_SongTitlar.ArrNo,
t_SongTitlar.songtitel,
t_Kategori.Kategori,
t_Album.Album,
t_forfattare.namn,
t_SongTitlar.Stim,
t_SongTitlar.Hide,
t_SongTitlar.Anteck
FROM t_Kategori INNER JOIN
(t_Album INNER JOIN
((t_songtitlar LEFT JOIN t_songforfattare
ON t_songtitlar.ArrNo = t_songforfattare.ArrNo)
LEFT JOIN t_Forfattare
ON t_songforfattare.for_id = t_forfattare.for_id)
ON t_Album.CD_ID = t_SongTitlar.Album)
ON t_Kategori.Kat_ID = t_SongTitlar.Kategori
</code>
Den fungerar i QA.


Svara

Sv: Är denna SQL effektiv??

Postades av 2002-10-28 18:42:56 - Benny Olsson

Strängen ser riktigt bra ut.. Tvivlar på att du kan få den mycket effektivare än så.


Svara

Sv: Är denna SQL effektiv??

Postades av 2002-10-28 19:04:47 - Andreas Hillqvist

Du påverkar hur effektiv frågan är med vilka fälttyper och index du har. Tycker jag du ska sätta dig in i.


Svara

Sv: Är denna SQL effektiv??

Postades av 2002-10-29 08:48:45 - Christoffer Hedgate

Den ser väl korrekt ut ja, som Andreas sa så påverkar du prestandan genom att skapa och utnyttja rätt index. Men varför skriver du joinarna så oläsligt? Jämför din SQL-sats med nedanstående, som är exakt samma, bara snyggat till ordningen av joinarna lite samt tagit bort alla förvirrande parenteser.

<code>
SELECT t_SongTitlar.ArrNo,
t_SongTitlar.songtitel,
t_Kategori.Kategori,
t_Album.Album,
t_forfattare.namn,
t_SongTitlar.Stim,
t_SongTitlar.Hide,
t_SongTitlar.Anteck
FROM t_Kategori
INNER JOIN t_songtitlar
ON t_Kategori.Kat_ID = t_SongTitlar.Kategori
INNER JOIN t_Album
ON t_Album.CD_ID = t_SongTitlar.Album
LEFT JOIN t_songforfattare
ON t_songtitlar.ArrNo = t_songforfattare.ArrNo
LEFT JOIN t_Forfattare
ON t_songforfattare.for_id = t_forfattare.for_id
</code>

Den går från tabell till tabell, kategori joinas med songtitlar (och så villkoret för det), songtitlar joinas med album (och villkoret för det), osv. Mycket lättare att läsa, imho.


Svara

Sv: Är denna SQL effektiv??

Postades av 2002-10-29 09:15:18 - Benni Svensson

OK, ser betydligt bättre ut,
Den här typ av SQL är ju väldigt svåra, så jag var bara glad att jag fick den att fungera...

När det gäller indexering, så har jag inte lagt in det i något fält, jag antar att det är som i Access, primärnycklarna blir indexerade. Finns det någon anledning att indexera mer?
Datatyperna i SQL-Server har jag fortfarande väldigt svårt för, hade det varit i Acces(forfarande) så tror jag nog att jag har det på mina fem, men...
Några förslag?


Svara

Sv: Är denna SQL effektiv??

Postades av 2002-10-29 12:18:45 - Andreas Hillqvist

Parantesr är obligatoriska för JET motorn. Kan inte parsa frågan utan dem. Så tyvär måste man leva med dem.


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 619
27 953
271 709
5 770
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