Date Archives

Maj 2012

Oracle virtual index – strojenie bazy danych

Natrafiłem dziś na fajną zabawkę w Oracle – przyda się z pewnością każdemu, kto właśnie optymalizuje swoją bazę – powiedzmy – dużą bazę. Optymalizacja długich zapytań, to w dużej mierze sztuka dobrania najodpowiedniejszego zestawu indeksów dla odpytywanej tabeli. W przypadku baz danych o stosunkowo niewielkiej ilości danych, sukces zależy jedynie od cierpliwości i wiedzy o mechanizmach bazodanowych. Nieco bardziej skomplikowane jest strojenie bazy, kiedy objętość jej tabel zaczynamy mierzyć w Giga albo nawet Terabajtach . Tam nie zawsze możemy pozwolić sobie na przeprowadzenie wielu eksperymentów, choćby z powodu ograniczonej przestrzeni dyskowej, przeznaczonej na indeksy.

Read More

Programisto! Studia są potrzebne

Na forach dyskusyjnych skupiających środowiska programistyczne, czy około informatyczne, co jakiś czas pada pytanie „Czy programiście potrzebne są studia?” Oczywiście wątki te wywołują burzliwą dyskusję, w której dyskutanci dzielą się na dwa obozy – zeby ostatecznie nie wykreować żadnego rozwiązania dla postawionego pytania. I tak kilka razy w roku, i w koło Macieju to samo… A jak to jest na prawdę? Czy warto poświęcać 3 albo 5 lat na studia? A może od razu iść do pracy? 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