Pomocí select *
ve vašem kódu je to, co bych nazval líné programování, s několika nepříjemnými vedlejšími účinky. Jak moc tyto vedlejší účinky pociťujete, se bude lišit, ale nikdy to není pozitivní.
Použiji některé z bodů již zmíněných v jiných odpovědích, ale neváhejte svou odpověď upravit a přidat další negativní body týkající se použití select *
.
-
Odesíláte do svého kódu více dat z enginu SQL, než je nutné, což má negativní vliv na výkon.
-
Informace, které získáte zpět, je třeba umístit do proměnných (například proměnná záznamu). To zabere více paměti PGA, než je nutné.
-
Pomocí
select *
nikdy nepoužijete k získání požadovaných informací samotný index, vždy budete muset navštívit i tabulku (za předpokladu, že neexistuje žádný index, který by obsahoval všechny sloupce tabulky). Opět s negativním vlivem na výkon. -
Méně jasné pro lidi udržující váš kód, jaký je váš záměr. Musí se ponořit do kódu, aby odhalili všechny výskyty vaší proměnné záznamu, aby věděli, co se načítá.
-
K provádění výpočtů nebudete používat funkce SQL, ale vždy se spolehněte na výpočty PL/SQL nebo Java. Možná přicházíte o některá skvělá vylepšení SQL, jako jsou analytické funkce, modelová klauzule, rekurzivní faktoring poddotazů a podobně.
-
Od Oracle11 dále jsou závislosti sledovány na úrovni sloupců, což znamená, že když použijete
select *
, váš kód je v datovém slovníku označen jako „závislý na všech sloupcích“ této tabulky. Váš postup bude zrušen, když se s jedním z těchto sloupců něco stane. Takže použití select * znamená, že váš kód bude zneplatněn častěji, než je nutné.
Opět můžete přidat své vlastní body.