Kurs SQL i optymalizacji Oracle

Odpowiedz Nowy wątek
2019-07-23 19:04
0

Cześć
Jakiś czas temu nosiłem się z zamiarem napisania czegoś w rodzaju kursu/blogu o programowaniu w SQL, PL/SQL i bazie Oracle. Bardziej zaawansowanego niż większość kursów gdzie nauka zaczyna się na SELECT i kończy na JOIN.
Do tej pory napisałem dwa wpisy/kursy i pisze kolejne o indexach w Oracle, mam jeszcze kilka pomysłów o czym pisać(dalej indexy, partycjonowanie, uprawnienia role, jak czytać plany zapytan, jakieś dobre praktyki, listenery).

Poniżej dwa pierwsze kursy jakie napisalem:
Jak zbudowany jest Index w Oracle: https://oracledev.pl/kurs-index-w-oracle/
Jak używać Unique Index: https://oracledev.pl/sql-index-unique-scan/

Dajcie proszę znać o czym warto jeszcze napisać oraz co ewentualnie poprawić w już napisanych kursach żeby lepiej się czytało i wynosiło więcej wartości.

Pozostało 580 znaków

2019-08-07 22:55
0

Tak mi się rzuciło w oczy:
"Konsekwencją zakładania indeksów na kolumny które mogą przechowywać nulle jest nieraz niemożność wykorzystania indeksu w przeszukiwaniu."

Nie zgodzę się z tym. Może być to co najwyżej brak możliwości użycia tego indeksu do wyszukiwania rekordów z NULL w danym polu. Natomiast nie przeszkadza to użyć tego indeksu dla rekordów, które mają to pole niepuste.

A do wyszukania rekordów z NULL w polu (pod warunkiem, że jest ich mniejszość w tabeli) jest taki sprytny trick.
Tworzy się indeks złożony na parze (POLE_Z_NULLAMI, POLE_KLUCZA_GŁÓWNEGO).

Wtedy zapytanie typu
WHERE POLE_Z_NULLAMI is null
działa całkiem sprawnie, no chyba że nulli jest tam większość.

Pozostało 580 znaków

2019-08-07 23:47
0

Co do NULLi w indexie pokazujesz, że aby go wykorzystać trzeba stosować "tricki" a nie chcę w tym wpisie opisywać tricków. Co do samego przeszukania indexu który założony jest na kolumnie z nullem oczywiście jest możliwe jego wykorzystanie dlatego też dodałem w opisie "nieraz" i w sytuacji kiedy będziesz wyszukiwał wartości z null (po prostu) z indexu baza nie skorzysta. We wpisie celowo nie piszę o takich sytuacjach żeby nie mieszać za bardzo. We wcześniejszym zdaniu piszę skąd to się bierze > Index typu B-tree nigdy nie przechowuje wartości całkowicie nullowych
O nullach w indexen będę dedykował osobny wpis.
@robertos7778 Dzięki wielkie za uwagę :)

edytowany 1x, ostatnio: oracledev, 2019-08-07 23:48
Miałem na myśli to, że to zdanie było zbyt skrótowe. Ktoś może odnieść wrażenie, że indeks warto zakładać tylko dla kolumn NOT NULL, co nie jest oczywiście prawdą. A co do NULLi to warto wyjaśnić, że ciężko jest zindeksować coś czego nie ma. :) - robertos7778 2019-08-08 20:59
@robertos7778: Masz racje co do zbyt skrótowego opisu. Poprawię wpis i dodam nieco więcej opisu odnośnie nulli. Jeszcze raz dzięki za uważne czytanie i komentarz :) - oracledev 2019-08-08 21:24

Pozostało 580 znaków

2019-08-08 09:44
0

Napisz coś o zapytaniach czyli select, delete, update, display, where, count itp. itd.

Wielu ludziom by się przydało...


Często jestem w biegu więc nie liczcie że kod będzie idealny...
@Mondonno: Chodzi Ci o opis podstawy SQL? - oracledev 2019-08-08 21:26
Tak, niektórzy początkują - Mondonno 2019-08-09 09:49
Dużo ludzi początkuje z bazami danych mysql.. - Mondonno 2019-08-09 09:50

Pozostało 580 znaków

2019-08-15 23:28
0

Właśnie napisałem kolejny kurs o Full Index Scan: KURS ORACLE SQL FULL INDEX SCAN
Średnio dodaję wpisy raz w tygodniu i myślałem aby raz dodawać kurs "z cyklu" a raz offtop czyli np. jeden tydzień kurs z Indexów a jeden z czegoś innego. Co sądzicie o takiej formule?

Kolejny kurs jaki dodam będzie offtop, o dodawaniu DEFAULT na kolumnach NULL i NOT NULL.

Dajcie mi w ogóle znać, jak się czyta moje kursy i co mogę poprawić.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0