SQL EXISTS - optimalizační trik

publikováno: 12.3.2016

Další optimalizační trik, který v poslední době s oblibou používám, je EXISTS. Mám dvě tabulky - artifacts_detail (140 tisíc záznamů) a plugins (30 tisíc záznamů) a potřebuji získat záznamy z tabulky "artifacts_detail", které jsou obsažené v tabulce "plugins" (je to propojené přes sloupce group_id, artifact_id a version a já to potřebuji spojit přes group_id a artifact_id ... v tabulce "plugins" je řada verzí záznamů). Možnosti:

A) INNER JOIN (9 300 ms):

select distinct a.*
from plugins p join artifacts_detail a
on p.group_id = a.group_id and p.artifact_id = a.artifact_id

B) SPOJENÍ VE WHERE (9 800 ms):

select distinct a.*
from plugins p, artifacts_detail a
where p.group_id = a.group_id and p.artifact_id = a.artifact_id

C) EXISTS (500 ms):

select a.*
from artifacts_detail a
where exists (select 1 from plugins p 
   where p.group_id = a.group_id and p.artifact_id = a.artifact_id)

 

Reference

Kurz SQL byl jedním slovem výborný. Připravená smysluplná databáze spolu s příklady, včetně příkladů s vysokou obtížností - je tak možné dostatečně zabavit i pokročilejší studenty. Za pozitivní považuji opravdu

Michal

Školení bylo super, zopakoval jsem si základy a také se dozvěděl spoustu nového ohledně SQL. Obrovské plus bylo v přátelském přístupu školícího.

Vít

Se školením jsem nadmíru spokojen, nejen že je výklad formou, která zaujme, ale i lajk se v tom neztrácí a je schopen pochopit i těžší úlohy.

Miloš


Novinky

3.1.2018: Oracle XE 12c nebude, místo toho bude Oracle XE 18c
V roce 2018 nás čeká nová XE verze a nové verzování

4.4.2017: SAP HANA & Veverka (SQuirrel SQL)
Oficiální SAP HANA studio funguje, ale je hrozně pomalé. Další z nástrojů, kde je možné rozchodit SAP HANA je Veverka (SQuirrel SQL)

25.3.2017: SAP HANA referenční příručky
V současnosti je trošku složitější najít na webu referenční příručku k SAP HANA SQL, proto sem dávám odkazy.