Category

SQL

Bad Boy: SQL i typ FLOAT

Być może jestem zbyt wyczulony na tym punkcie, ale nóż w kieszeni mi się otwiera, kiedy widzę „programistę”, używającego radośnie typu FLOAT w operacjach finansowych (najczęściej  jest to albo bardzo słaby koder, albo świeżo wypieczony absolwent uczelni wyższej, żyjący ciągle w wierze, że uczelnia dała mu wiedzę absolutną i pełną). Najbardziej jednak irytuje fakt, że te same błędy – które udało się wytępić z jednego języka programowania, np. Javy, gdzie po udzieleniu reprymendy panuje niepodzielnie BigDecimal – powracają ciągle i ciągle w nowych odsłonach. Dziś wróciły w projekcie tabelki bazy danych. Read More

Wskazówka: count(*) to zły pomysł

Zauważyłem, zresztą chyba nie tylko ja, że wielu programistów nadużywa konstrukcji count(*) w swoich zapytaniach SQL:

select count(*) from my_table; -- zlicz wiersze w tabeli

Zapytania tego typu pisze się odruchowo, za każdym razem, kiedy chcemy zliczyć wiersze spełniające wybrane kryteria. Nie chcę mówić, że jest to całkowicie złe rozwiązanie, ba!, sam tak robię, kiedy potrzebuje napisać zapytanie na szybko, czy przygotowac jednorazowo jakis raport z bazy danych. Chcę tylko powiedzieć, że nie jest to najlepsze rozwiązanie, kiedy zaczynamy myśleć o szybkości zapytania, jego optymalności – w takim przypadku sporo lepsze jest count(1). Read More