webForumDet fria alternativet

Vy i en vy är en vy

Databaser & SQLur Databashanterare & SQL

4 svar · 427 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Jag har tre vyer som ska hämta olika värden ur en databas. Är ni med? :e
Vy1 är helt fristående.
Vy2 ska hämta värden som inte finns i Vy1
Vy3 ska hämta värden som varken finns i Vy1 eller Vy2,

Jag har nu kört med något i stil med:

select * from vy2 
where not exists 
(
    select datum from vy1 where vy1.datum = vy2.datum
)

Detta går väldigt bra för vy2 men vy3 blir ju aningens långsam. Finns det något snabbare sätt än where not exists?

Medlem sedan mars 20041 505 inlägg
#2

Är tabellerna ordentligt indexerade?

Medlem sedan jan. 20022 440 inlägg
#3

Troxy skrev:

Är tabellerna ordentligt indexerade?

Nej, jag kikar på det nu. Det blir inte roligt att skapa de index som behövs men jag fick i uppgift att göra mitt bästa.

Såg lite statistik på hur stor skillnad det gör på fråge-tiden så det var ingen tvekan att det behövs.

Några förslag på vy-index-läsning? ;)

Medlem sedan apr. 200730 inlägg
#4

Om du sätter villkor på datum så kanske det är bra att lägga indexet där?

Medlem sedan jan. 20022 440 inlägg
#5

Det gjorde inte så stor skillnad för de första två vyerna men den tredje går inte ens att jämföra. Den gick från ultrarapid till lightspeed.

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)