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


intern hantering av join:ar

Postades av 2008-09-01 08:55:31 - Per Hultqvist, i forum sql-server/msde, Tråden har 10 Kommentarer och lästs av 1587 personer

Jag har en vy som joinar in ett flertal tabeller till min huvudtabell. Låt säga att jag sedan ställer en fråga som endast hämtar kolumner från huvudtabellen i vyn, kommer joinarna ändå att utföras och slöa ner frågan, eller får jag ungefär samma prestanda som om jag ställt frågan "SELECT Col1,Col2 FROM [HuvudTabell]?


Svara

Sv: intern hantering av join:ar

Postades av 2008-09-01 14:25:10 - Thomas Vanhaniemi

Jag kan nästan svära på att hela frågan körs, oavsett vilka kolumner du tar med.
Men det kan ju hända att någon DBMS klarar av att slopa de tabeller som inte behövs för att snabba upp det hela, men jag tvivlar på att det finns en sådan logik.


Svara

Sv: intern hantering av join:ar

Postades av 2008-09-01 14:55:26 - Martin Adrian

Enklast är att titta på execution plan.

Om jag förstått det rätt så eliminerar SQL2005 oanvända tabeller men SQL2000 gör det bara ibland.


Svara

Sv:intern hantering av join:ar

Postades av 2008-09-01 15:29:32 - Per Hultqvist

Martin, självklart, det borde vara det första jag testade i st f att fråga :-)

Skall testa detta när jag kommer hem...jag skall försöka komma ihåg att publicera resultaten här...


Svara

Sv:intern hantering av join:ar

Postades av 2008-09-01 15:30:30 - Tomas Granlund

Testade lite snabbt här och det verkar mycket riktigt som om 2005:an är kapabel att utesluta tabeller som inte ingår i resultatet


Svara

Sv: intern hantering av join:ar

Postades av 2008-09-01 20:20:33 - Per Hultqvist

Jag har följande tabeller (kraftigt förenklat) :
<info>
Task
====
Header

Project
=======
Name

FreeFieldComboItems
===================
ID
Value
</info>

och sedan följande vy:

<code>
ALTER VIEW [dbo].[TaskViewTest]
AS
SELECT dbo.Task.Header
dbo.Project.Name AS ProjectName,
FC1.Value as FreeComboValue1
FROM dbo.Task
LEFT OUTER JOIN dbo.Project ON dbo.Project.ID = dbo.Task.ProjectID
LEFT OUTER JOIN dbo.FreeFieldComboItems FC1 ON FC1.ID = dbo.Task.FreeCombo1 and FC1.[Index]=0
</code>
Det skumma är att om jag ställer följande fråga:
<code>
SELECT Header FROM TaskViewTest
</code>
så skippar den enligt execution plan:en Projekt-joinen men INTE FreeFieldComboItems-joinen!? Några tips?


Svara

Sv:intern hantering av join:ar

Postades av 2008-09-02 10:57:44 - Ola Lindfeldt

Hej,
Eftersom du ställer ett explicit villkor FC1.[Index]=0
så vore det ju rent felaktigt av DBMS att hoppa över det, eller hur :)


Svara

Sv: intern hantering av join:ar

Postades av 2008-09-02 13:54:26 - Per Hultqvist

Det kanske är självklart, men som jag ser det gör jag en left join (så det är ointressant om det extra villkoret utesluter rader i den joinade tabellen) , och frågar inte efter någon kolumn i den tabellen...då borde den väl inte behöva utföra joinen? Du kan vara tvungen att förklara som om jag vore tre år gammal :-)


Svara

Sv:intern hantering av join:ar

Postades av 2008-09-02 22:05:15 - Johan Djupmarker

Om du har flera poster i FreeFieldComboItems där villkoret "FC1.ID = dbo.Task.FreeCombo1" är sant kommer du få "dubletter" i resultatet. Därför kommer innehållet i FreeFieldComboItems påverka resultatet även om det inte finns någon kolumn därifrån.

/Johan


Svara

Sv: intern hantering av join:ar

Postades av 2008-09-02 22:21:23 - Per Hultqvist

Ok jag förstår. Kombinationen "FC1.ID = dbo.Task.FreeCombo1 AND FC1.Index=0" ger dock alltid en rad men det kan ju vara tufft för SQL-servern att luska ut, utan att fysiskt joina tabellerna...surt men det går kanske inte att komma runt...


Svara

Sv:intern hantering av join:ar

Postades av 2008-09-03 13:58:05 - Håkan Borneland

Generellt sett så måste optimizern <b>alltid</b> pilla på alla tabeller.
MEN!
Det finns alltid (nästan) ett (eller flera) undantag.
Läs om ett undantag här:
http://sqlblog.com/blogs/tibor_karaszi/archive/2008/01/12/non-trusted-constraints-and-performance.aspx

/Håkan


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

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 570 894
27 965
271 778
835
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