Mówiąc szczerze to z Twojego 16 minutowego filmiku wyniosłam zdecydowanie więcej niż z 1.5 h wykładu na studiach. Dzięki wielkie za dzielenie się wiedzą i to w tak umiejętny sposób! :)
Nasz prowadzący chyba próbował inspirować się Twoim filmem na laboratorium, ale niestety zrobił to baaardzo nieumiejętnie i strasznie to skomplikował tak, że było to zupełnie niezrozumiałe. Cieszę się, że trafiłam na ten kanał. Dzięki wielkie!
Bardzo klarownie przedstawione tematy. Przyjemnie się ogląda tak profesjonalny poziom wiedzy i tak pozbawione maniery nauczanie. Prosty flipchart zamiast wodotrysków wystarczy jak widać. Serdeczne dzięki. Powodzenia i Tobie!
Bardzo mi się podoba, że dajesz hasła jakich należy szukać żeby poszerzyć swoją wiedzę na dane zagadnienie. Dzięki czemu mogłem przenieść całą koncepcję na bazę danych smssql :) Dzięki!!
Cześć Darku, kolejny super odcinek, oby tak dalej :-) Fajnie byłoby zobaczyć tematy które poruszasz w praktyce. Nowe osoby na pewno lepiej zrozumiałyby jak to działa, na przykład pokazać dwa takie same zapytania, jedno z indexami, a drugie bez :-)
Cześć Darku, materiał w 100% zrozumiany za co dziękuję! Myślę, że mógłbyś nagrać dodatkowy odcinek pokazujący jak w praktyce różnią się zapytania z indeksami i bez. Pozdrawiam serdecznie!
kolejny odcinek PL/SQL to będzie kontynuacja pisania triggera, myślę, że około miesiąc :) Polecam zapisać się na newsletter, bo jeszcze w tym roku pojawi się szansa uczestnictwa w kompleksowym szkoleniu PL/SQL od A od Z: nieinformatyk.pl/
Zależy o jaki rodzaj pytasz, są b-tree(drzewiaste) i bitmapowe, unikalne i nieunikalne, rosnące i malejące, itd. Podaj konkretny case to powiem Ci co bym wybrał :)
Siemano, odcinek jest świetny jak zawsze na Twoim kanale! Zabrakło mi jednak praktyki oraz dokładnego omówienia - kiedy dokładnie tworzyć indeksy? To zależy od tego jakie mamy dane w tabeli, czy co? Kiedy zrobić indeks złożony(?) a kiedy na jednej kolumnie? Chociaż wspomniałeś że to będzie w następnych odcinkach, więc spoko, a ten wstęp który zrobiłeś jest jak najbardziej świetny i potrzebny, po prostu mówię że czekamy na więcej :D (chyba że już jest, zaraz spojrzę xddd)
Obejrzyj ten odcinek i 2 kolejne z playlisty: th-cam.com/video/U0Gxv9GU46o/w-d-xo.html Trudno zebrać to wszystko w jeden odcinek. Nie chcę by video trwało ponad 20 minut więc dzielę to na pojedyncze tematy. A kwestia, gdzie i jaki indeks tworzyć to w skrócie: klucze główne i klucze obce. A reszta wymaga trochę więcej do opowiedzenia. Nagram kiedyś kurs optymalizacji SQL to poświęcimy temu zagadnieniu cały kilkugodzinny moduł :)
@@nieinformatyk super! Czekam właśnie na zagadnienia dotyczące optymalizacji zapytań SQL i wgl projektowania bazy danych bo to ciekawy i ważny temat :) dzięki! Pozdro!
Chętnie zobaczyłbym porównanie na żywym przykładzie jak dużo czasu można zyskać tworząc indeksy. Na przykład bez indeksów wykonuje się 3 sekundy, z indeksami 1 Również statystyka w postaci konkretnych danych o ile operacje DML zostają spowolnione
@@nieinformatyk jak wyrzucisz coś z indeksu to DB musi zrobić ponowne sortowanie? a jak tak to czy może przenieść tylko z końca jakiś element indeksu dla przyspieszenia?
@@michal5869 tak, proces aktualizacji indeksu to tzw. rebuild - dlatego DML na tabeli jest wolniejszy, bo indeks trzeba aktualizować. Nie rozumiem drugiego pytania :)
@@michal5869 Indeks w standardowej postaci B-Tree zawiera 2 kolumny(oczywiście nie dosłownie). Jest to klucz indeksu, czyli indeksowana wartość oraz ROWID - identyfikator rekordu z daną wartością klucza. Jeśli modyfikujesz klucz indeksu, np. zmieniasz wartość z 5 na 10, X na Y to indeks musi zostać posortowany. Jeśli z kolei zmieniasz inną kolumnę w rekordzie tabeli(nieindeksowaną) to indeksu nie trzeba aktualizować, bo wartość klucza i ROWID się nie zmieniła. Tak samo, gdy usuwasz rekord z tabeli to indeks musi zostać posortowany, bo przecież trzeba ze struktury indeksu usunąć jeden z kluczy. Jak chciałbyś zastąpić jeden wiersz drugim?
W mowie koncowej moglbys zawrzec odnosniki do swoich nagran w ktorych omawiasz wspominane zagadanienia. CZyli jak mowisz, ze cos tam bedzie pozniej bo jest zaawansowane to fajnie jakby w rogu ekranu pojawil sie link do twojego nagrania z tym, bo tak to trzeba szukac a uzytkownicy kaprysni sa
Tu problem jest taki, że trudno spamiętać, o czym mówiłem w każdym z poprzednich nagrań i do czego odsyłałem. Ale dzięki za feedback, pomyśle jak to rozwiązać.
12:00 - czy na pewno w tym przypadku operacja DELETE będzie wolniejsza dla tabeli z indeksem unikalnym na polu ID? Przecież dzięki indeksowi polecenie DELETE WHERE ID w momencie znalezienia określonego ID usunie ten rekord i już nie będzie szukać kolejnych rekordów bo wie że ID jest unikalne. Usunie też rekord w indeksie. Jeżeli szukane ID znajduje się na pierwszym miejscu w indeksie to baza wykona tylko 2 operacje: kasacja rekordu z tabeli i z indeksu. W przypadku braku posiadania indeksu na kolumnie ID polecenie DELETE WHERE ID usunie 1 rekord jeżeli znajdzie odpowiednie ID i będzie przeszukiwać dalej całą tabelę, bo nie wie czy gdzieś jeszcze takiego ID nie ma. Więc liczba operacji wykonanych na bazie może być tutaj ogromna, bo pomimo tego że wiemy iż jest tylko 1 takie ID do usunięcia to będziemy musieli przeszukać całą tabelę. W przypadku posiadania indeksu unikalnego zaprzestaniemy po pierwszej udanej próbie.
Świetna uwaga :) Wolniejsza będzie w tym sensie, że zamiast robić DELET-e na tabeli musisz robić DELETE na tabeli i DELETE na indeksie. Oczywiście, jeśli tabela będzie odpowiednio duża to czas FULL TABLE SCAN może być dużo dłuższy niż 2 DELETE z indeksem unikalnym. Wtedy mamy do czynienia z wyjątkiem potwierdzającym regułę ;) PS. Przyszła mi do głowy jeszcze jedna rzecz, którą należałoby sprawdzić. DELETE usuwa najpierw rekord z tabeli czy z indeksu? Bo jeśli indeks jest pierwszy to na tabeli i tak poleci FULL TABLE SCAN.
@@nieinformatyk Propo PS to chyba powinien skasować najpierw z tabeli zgodnie z jakąś podstawową logiką zysków i strat. A czy tak jest to w sumie cholera wie Oo Jeżeli i tak i tak skanuje całą tabelę to trochę niefajne te indeksy w operacjach modyfikacji wartości unikalnych.
Ale kozak i to za darmo taka wiedza. Ma talent do nauczania.
dziękuję za feedback :)
Mówiąc szczerze to z Twojego 16 minutowego filmiku wyniosłam zdecydowanie więcej niż z 1.5 h wykładu na studiach. Dzięki wielkie za dzielenie się wiedzą i to w tak umiejętny sposób! :)
Super :) Cieszę się, że pomogłem :)
Drberg się znalazł
Nasz prowadzący chyba próbował inspirować się Twoim filmem na laboratorium, ale niestety zrobił to baaardzo nieumiejętnie i strasznie to skomplikował tak, że było to zupełnie niezrozumiałe. Cieszę się, że trafiłam na ten kanał. Dzięki wielkie!
Cieszę się, że mogłem pomóc :)
Dzięki za uzupełnienie materiału!
Polecam się na przyszłość :)
Bardzo klarownie przedstawione tematy. Przyjemnie się ogląda tak profesjonalny poziom wiedzy i tak pozbawione maniery nauczanie. Prosty flipchart zamiast wodotrysków wystarczy jak widać. Serdeczne dzięki. Powodzenia i Tobie!
dzięki :)
@@nieinformatyk Jeszcze tylko ten greenscreen zostawia artefakty ;)
Genialne, bardzo dziekuje za film! Zrozumiale dla osoby ktora zaczyna z bazami danych.
Dziękuje i cieszę się, że pomogłem :)
Jak można ten filmik minusować... Dzięki za Twoją pracę!
Bardzo mi się podoba, że dajesz hasła jakich należy szukać żeby poszerzyć swoją wiedzę na dane zagadnienie. Dzięki czemu mogłem przenieść całą koncepcję na bazę danych smssql :) Dzięki!!
Jeśli szukałeś ścieżek dostępu to te nagranie może Ci się spodobać: th-cam.com/video/Pz9vFdnSsKk/w-d-xo.html
Super materiał wszystko czarno na białym wyjaśnione, bardzo dziękuję za pomoc. :)
Bardzo się cieszę, że materiał się przydał :)
Dzieki, za fajne wytłumaczenie tematu indexów, jeden z lepszych kanałów o bazach danych :)
Cieszę się, ze pomogłem :)
Cześć Darku, kolejny super odcinek, oby tak dalej :-) Fajnie byłoby zobaczyć tematy które poruszasz w praktyce. Nowe osoby na pewno lepiej zrozumiałyby jak to działa, na przykład pokazać dwa takie same zapytania, jedno z indexami, a drugie bez :-)
dziękuję za sugestię, postaram się dopracować plan nagrań :)
kurde gościu, dzięki wielkie, wszystko jasne piknie wytłumaczone!
proszę bardzo - polecam się na przyszłość :)
Dobrze wytłumaczone.
Dzięki ;)
Robisz bardzo fajną robotę, oby tak dalej 🙂
dziękuję za komentarz :)
Wiedziałam o zaletach, ale nigdy nie pomyślałam o tym, że może spowolnić modyfikacje zawartości tabeli. Dzięki!
Polecam się na przyszłość :)
Bardzo pomocny filmik, dziękuję :)
Cieszę się, że przypadł Ci do gustu:)
Cześć Darku, materiał w 100% zrozumiany za co dziękuję!
Myślę, że mógłbyś nagrać dodatkowy odcinek pokazujący jak w praktyce różnią się zapytania z indeksami i bez.
Pozdrawiam serdecznie!
Właśnie nagrałem taki odcinek. Ukaże się w kolejnych tygodniach :)
Wszystko jasne, dzięki!
super, dziękuję za komentarz :)
Dla zasięgu!
dzięki :)
jestes gitem, szacun i dziekuje
dzięki :)
Świetny materiał! Dzięki!
Polecam się na przyszłość :)
Dziękujemy.
proszę bardzo :)
Opisane elagancko :)
dzięki :)
Świetny odcinek!
dzięki :)
Suuper materiał :) I kiedy można liczyć na kolejny odcinek kursu PL/SQL?
kolejny odcinek PL/SQL to będzie kontynuacja pisania triggera, myślę, że około miesiąc :) Polecam zapisać się na newsletter, bo jeszcze w tym roku pojawi się szansa uczestnictwa w kompleksowym szkoleniu PL/SQL od A od Z: nieinformatyk.pl/
Dlaczego dopiero teraz odkryłam ten kanał.... :c
super odcinek i czekam na kolejny: kiedy i jakiego rodzaju indeksu użyć?
Zależy o jaki rodzaj pytasz, są b-tree(drzewiaste) i bitmapowe, unikalne i nieunikalne, rosnące i malejące, itd. Podaj konkretny case to powiem Ci co bym wybrał :)
Siemano, odcinek jest świetny jak zawsze na Twoim kanale! Zabrakło mi jednak praktyki oraz dokładnego omówienia - kiedy dokładnie tworzyć indeksy? To zależy od tego jakie mamy dane w tabeli, czy co? Kiedy zrobić indeks złożony(?) a kiedy na jednej kolumnie? Chociaż wspomniałeś że to będzie w następnych odcinkach, więc spoko, a ten wstęp który zrobiłeś jest jak najbardziej świetny i potrzebny, po prostu mówię że czekamy na więcej :D (chyba że już jest, zaraz spojrzę xddd)
Obejrzyj ten odcinek i 2 kolejne z playlisty: th-cam.com/video/U0Gxv9GU46o/w-d-xo.html
Trudno zebrać to wszystko w jeden odcinek. Nie chcę by video trwało ponad 20 minut więc dzielę to na pojedyncze tematy. A kwestia, gdzie i jaki indeks tworzyć to w skrócie: klucze główne i klucze obce. A reszta wymaga trochę więcej do opowiedzenia. Nagram kiedyś kurs optymalizacji SQL to poświęcimy temu zagadnieniu cały kilkugodzinny moduł :)
@@nieinformatyk super! Czekam właśnie na zagadnienia dotyczące optymalizacji zapytań SQL i wgl projektowania bazy danych bo to ciekawy i ważny temat :) dzięki! Pozdro!
@@sebon11 o projektowaniu znajdziesz co nie co tutaj: th-cam.com/video/7zWS_hczS5c/w-d-xo.html no i oczywiście w kursie www.podstawybazdanych.pl
Chętnie zobaczyłbym porównanie na żywym przykładzie jak dużo czasu można zyskać tworząc indeksy.
Na przykład bez indeksów wykonuje się 3 sekundy, z indeksami 1
Również statystyka w postaci konkretnych danych o ile operacje DML zostają spowolnione
dziękuję za sugestię, postaram się coś wymyślić :)
@@nieinformatyk jak wyrzucisz coś z indeksu to DB musi zrobić ponowne sortowanie? a jak tak to czy może przenieść tylko z końca jakiś element indeksu dla przyspieszenia?
@@michal5869 tak, proces aktualizacji indeksu to tzw. rebuild - dlatego DML na tabeli jest wolniejszy, bo indeks trzeba aktualizować.
Nie rozumiem drugiego pytania :)
@@nieinformatyk chodzi mi o sortowanie, czy db może kasowany wiersz indeksu zastąpić innym istniejącym aby nie uniknąć sortowania.
@@michal5869 Indeks w standardowej postaci B-Tree zawiera 2 kolumny(oczywiście nie dosłownie). Jest to klucz indeksu, czyli indeksowana wartość oraz ROWID - identyfikator rekordu z daną wartością klucza.
Jeśli modyfikujesz klucz indeksu, np. zmieniasz wartość z 5 na 10, X na Y to indeks musi zostać posortowany. Jeśli z kolei zmieniasz inną kolumnę w rekordzie tabeli(nieindeksowaną) to indeksu nie trzeba aktualizować, bo wartość klucza i ROWID się nie zmieniła.
Tak samo, gdy usuwasz rekord z tabeli to indeks musi zostać posortowany, bo przecież trzeba ze struktury indeksu usunąć jeden z kluczy. Jak chciałbyś zastąpić jeden wiersz drugim?
W mowie koncowej moglbys zawrzec odnosniki do swoich nagran w ktorych omawiasz wspominane zagadanienia. CZyli jak mowisz, ze cos tam bedzie pozniej bo jest zaawansowane to fajnie jakby w rogu ekranu pojawil sie link do twojego nagrania z tym, bo tak to trzeba szukac a uzytkownicy kaprysni sa
Tu problem jest taki, że trudno spamiętać, o czym mówiłem w każdym z poprzednich nagrań i do czego odsyłałem. Ale dzięki za feedback, pomyśle jak to rozwiązać.
fajny talent artystyczny
haha, dzięki :)
a co jezeli damy limit 1? wtedy full scan chyba sie przerwie prawda/?
super materiał ;p
dzięki :)
12:00 - czy na pewno w tym przypadku operacja DELETE będzie wolniejsza dla tabeli z indeksem unikalnym na polu ID?
Przecież dzięki indeksowi polecenie DELETE WHERE ID w momencie znalezienia określonego ID usunie ten rekord i już nie będzie szukać kolejnych rekordów bo wie że ID jest unikalne. Usunie też rekord w indeksie. Jeżeli szukane ID znajduje się na pierwszym miejscu w indeksie to baza wykona tylko 2 operacje: kasacja rekordu z tabeli i z indeksu.
W przypadku braku posiadania indeksu na kolumnie ID polecenie DELETE WHERE ID usunie 1 rekord jeżeli znajdzie odpowiednie ID i będzie przeszukiwać dalej całą tabelę, bo nie wie czy gdzieś jeszcze takiego ID nie ma. Więc liczba operacji wykonanych na bazie może być tutaj ogromna, bo pomimo tego że wiemy iż jest tylko 1 takie ID do usunięcia to będziemy musieli przeszukać całą tabelę. W przypadku posiadania indeksu unikalnego zaprzestaniemy po pierwszej udanej próbie.
Świetna uwaga :) Wolniejsza będzie w tym sensie, że zamiast robić DELET-e na tabeli musisz robić DELETE na tabeli i DELETE na indeksie. Oczywiście, jeśli tabela będzie odpowiednio duża to czas FULL TABLE SCAN może być dużo dłuższy niż 2 DELETE z indeksem unikalnym. Wtedy mamy do czynienia z wyjątkiem potwierdzającym regułę ;)
PS. Przyszła mi do głowy jeszcze jedna rzecz, którą należałoby sprawdzić. DELETE usuwa najpierw rekord z tabeli czy z indeksu? Bo jeśli indeks jest pierwszy to na tabeli i tak poleci FULL TABLE SCAN.
@@nieinformatyk Propo PS to chyba powinien skasować najpierw z tabeli zgodnie z jakąś podstawową logiką zysków i strat. A czy tak jest to w sumie cholera wie Oo
Jeżeli i tak i tak skanuje całą tabelę to trochę niefajne te indeksy w operacjach modyfikacji wartości unikalnych.
👍👍
Dzień dobry, co się dzieje z indeksami na tabeli przy próbie usunięcia tabeli SQL?
indeksy podobnie jak constrainty czy triggery są usuwane razem z tabelą
@@nieinformatyk Bardzo Panu dziekuje za odp i czekam na kolejne odcinki !
@@katarzynaniebrzydowska7317 chwilowo zwolniłem, bo przygotowuję kurs programowania PL/SQL, ale wkrótce wracam z nowymi :)
może coś o rodzajach indeksów?
dodałem do listy, która co raz szybciej się wydłuża :D
Właśnie nagrałem materiał o który prosiłeś. Daj znać czy Ci się podoba🙂 th-cam.com/video/MEl3uBPTjJk/w-d-xo.html
#zasieg
dzięki :)
good film. record more.
thank you :) come back every Saturday :)
Komentarz dla statystyk
dzięki :)
#zasieg2
Super, zresztą jak zawsze.
@@filipgrydz dzieki:)
Mi tylko brakuje jakiegos praktycznego przykładu :)
Zerknij na pozostałe odcinki tej playlisty - znajdziesz tam niejeden przykład :) th-cam.com/video/wrgKifVK0wg/w-d-xo.html
@@nieinformatyk jasne, zerkne po pracy
Samy Kamkar lepszy
Ale i tak fajnie bo Samy Kamkar to największy koks
niestety nie pomocne przy tym czego szukam
A czego szukałeś?