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...


@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

2019-08-21 21:40
0

Tak jak wspomniałem ostatnio, dodałem nowy Kurs Oracle SQL: Oracle - Default na kolumnach null i not null
Tym razem opisałem nieco więcej o podstawach ale poruszyłem też kwestie jak default wpływa na wydajność. Dajcie znać, czy taka forma jest lepsza? Czy nie ma za dużo podstaw? A może pisać więcej o podstawach?

Dwie drobne uwagi - pisz na jakiej wersji bazy działasz i nie podawaj przykładów operując na użytkowniku SYSTEM. To zła praktyka, poza tym można się przyzwyczaić, że do czegoś jest dostęp (widoki DBA, V$), a potem na zwykłym użytkowniku tego nie będzie. - robertos7778 2019-08-21 23:04
@robertos7778: To prawda, ale nie chciałem tworzyć specjalnego schematu z uprawnieniami i rolami. Kolejny wpis będzie o Fast Full Scana kolejny o uprawnieniach, rolach itd. Od tego momentu chcę pokazywać w kursach jakich uprawnień potrzeba do wykonywania SQL z przykładów. Dzięki wielkie za uwagę :) - oracledev 2019-08-21 23:16

Pozostało 580 znaków

2019-09-01 23:06

Napisałem ostatnio dwa kolejne kursy:
Dla bardziej początkujących: Oracle SQL: Granty i Role
W temacie Indexów: Index Fast Full Scan
Oraz stworzyłem listę kursów nad którymi będę pracował w najbliższym czasie: Kurs Oracle SQL
Mam w związku z tym pytania:

  1. Kursu Uprawnień i Ról jest pierwszym kursem który napisałem dla użytkowników "prawie" początkujących. Czy temat nie jest wyczerpany zbyt pobieżnie lub czy nie wchodzę w niego zbyt głęboko jak dla początkujących?
  2. Chcę, zacząć pisać kurs o podstawach baz danych czyli np. postaci normalne, diagramy etc. jest to interesujące?

Pozostało 580 znaków

2019-09-10 23:20
0

Cześć,
Dzisiaj napisałem kolejny kurs o optymalizacji zapytań z serii o indexach: Index Skip Scan
Zastanawiam się nad rozpoczęciem serii kursów dla początkujących np. o postaciach normalnych, diagramach baz oraz podstawach SQL. Warto pisać o czymś takim?

Pozostało 580 znaków

2019-09-11 07:22
1
oracledev napisał(a):

nad rozpoczęciem serii kursów dla początkujących np. o postaciach normalnych, diagramach baz oraz podstawach SQL. Warto pisać o czymś takim?

Na pewno warto, zawsze są jacyś rozpoczynający przygody z bazami danych i głodni wiedzy, niemniej obyś nie zapomniał też o dotychczasowej linii ;)

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