Przez chwilę miałem pomysł by poratować się widokiem zmaterializowanym zamiast codziennie update'ować w nocy tabelę zmianami z ostatnich 2 miesięcy, ale olśniło mnie, że usuwamy dane źródłowe starsze niż 3 lata (zostają już tylko w postaci agregatów w tabeli) i one odrazu wyleciałyby z mview. Rozumiem, że widok zmaterializowany z chwilą gdy usunę dane np. za 2018 od razu też utraci te dane. Czy jest jakaś opcja by "znieczulić" go na zmiany
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@michoopro: zrób test i tyle. Załóż tabele test z dwoma kolumnami wladuj 100 rekordów i utwórz widoks i indeks do niego żeby fizycznie trzymał dane. Na mssqlu nie ma typowych widoków materialixowanych jak na Oracle. Potem usuń 50 rekordow i zobacz co się stanie. Pamiętaj o takich akcjach jak rebuild indexow i struktur bo możesz się nie miło zdziwić w przyszłości ( ͡° ͜ʖ ͡°)
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@michoopro: nie ma w tabeli źródłowej widoku = nie ma w widoku (nie ważne czy zmaterializowany czy nie)
To czego szukasz to "tabela" i już to robisz aktualnie.
Ewentualnie możesz pomyśleć o takim potworku, że aktualizujesz tabelę raz do roku danymi które zaraz mają być usunięte, a wszystkie dane za ostatnie dwa lata bierzesz z tabel źródłowych i takie dwa "obiekty" łączysz poprzez UNION ALL ( ͡ ͜
  • Odpowiedz
myślałem, że na zachodzie widełki płacowe w ogłoszeniach to norma


@LucaJune: nie gdy budżet jest nieograniczony a poziomowanie odbywa się po zatrudnieniu pracownika

Np. jak miałby ci ktoś dać widełki na pracę w Amazon jako software engineer, jak to czy wpadasz na L4 ($80k-$120k) czy L6 ($200-$260k) wiadomo dopiero po tym jak wyślesz CV i przejdziesz rekrutację?

Firma taka jak Tesla nie ma ograniczenia budżetu to i po co widełki?
  • Odpowiedz
#anonimowemirkowyznania
#sql #pomocy #porada
Cześć,
muszę napisać z anonima, żeby mnie nikt nie skojarzył.
Obecnie skończyłem inżyniera z mechaniki. Studia fajne, ale nie umiem nic ciekawego sobie znaleźć. Pracuję obecnie w firmie, zajmuję się specyfikacjami technicznymi urządzeń i kontaktem z klientem (zagranica). Robota niby całkiem okej, ale brak nowych wyzwań powoduje u mnie nudę.
Chciałbym się z czegoś przeszkolić, poszukać sobie innego zajęcia, które spowoduje, że znajdę
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@AnonimoweMirkoWyznania: Obie drogi jakie rozważasz mogą być potencjalnie tak samo nudne jak to co teraz robisz. Sam robie w bazadanych ale jakoś administrator/helpdesk i tu jest jeszcze jakaś rozrywka bo nigdy nie wiesz na co klient wpadnie.
W mechanice może warto abyś rozejrzał się za jakimś projektowaniem - znajomy pracował w Instytucie lotnictwa w centrum projektowym dla GE i co kilka mce wyjazdy albo Anglia albo RPA(mieli kontrakty na instalacje
  • Odpowiedz
Cześć. Chciałbym poruszyć tutaj dwie kwestię i proszę Was o ewentualną poradę czy wskazówkę. Kilka lat temu skończyłem technikum informatyczne, potem studiowałem inny kierunek(nie skończyłem), poszedłem do pracy (finanse), obecnie jestem na pierwszym roku ekonomii. Od jakiegoś czasu z racji powrotu mojej zajawki na kodowanie z technikum, uczę się Pythona. Do tego chciałbym jeszcze przypomnieć sobie SQLa. Uczę się bardzo regularnie, i ten rok chciałbym w 100% poświecić na dojście do poziomu
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ATLETICO: ja bym kombinował z pythonem w finansach, połączenie wiedzy specjalistycznej z programowaniem może dać Ci więcej niż klepanie jakiś stronek internetowych.
  • Odpowiedz
Jakiej konwencji nazewniczej (naming convention) używacie do nazywania transakcji?

Zastanawiam się na ile szczegółowa powinna być taka nazwa.
Czy jeśli w transakcji dokonuję aktualizacji jakiejś tabeli to czy nazwa transakcji powinna się w jakiś sposób odnosić do nazwy tejże tabeli?

Czy może lepiej nie używać detali technicznych tylko użyć nazwy, która bardziej odzwierciedla wpływ biznesowy np. ChangeDebtorNameTransaction.
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Siema powie mi ktoś co robi tu źle że wywala mi blad "Foreign key constraint is incorrectly formed". Idproducenta ma byc kluczem obcym powiazanym z id z tabeli producenci

ALTER TABLE produkty
ADD FOREIGN KEY (id_producenta)
REFERENCES producenci(id);

#sql #bazydanych
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#sql #bazydanych #programowanie #postgresql
Próbuję wdrożyć pagination oparty na metodzie „keyset”, zamiast tradycyjnie „offset”.
Wszystko jest jasne dopóki strony idą do przodu np:
SELECT * FROM users WHERE id > 1500 ORDER BY ID LIMIT 10.
Ale co zrobić gdy użytkownik się cofa? Teoretycznie mogę odwrócić znak większości i zmienić DESC na ASC, ale wtedy otrzymuję wyniki w odwrotnej kolejności. Da się to
Alodnog - #sql #bazydanych #programowanie #postgresql 
Próbuję wdrożyć pagination opa...

źródło: comment_1611067419eLX7l6HWdpi5hdPRa7JQng.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Campell: W sensie jak pójść w tył? Ja tylko w tym moim WHERE zaznaczam granicę od której liczyć rekordy, więc jeśli chciałbym się cofnąć to mógłbym zrobić WHERE id < 1500 ORDER BY id ASC LIMIT 10. I to zadziała, zwróci mi 10 właściwych rekordów, ale w odwrotnej kolejności niż bym szedł do przodu
  • Odpowiedz
@Alodnog: Wybierz interesujące Cię rekordy ze strony w podzapytaniu i tam zrób asc/desc jak tam chcesz, a w nadrzędnym zapytaniu posortuj jeszcze raz po tym czym chcesz czyli po id. np.

select * from (
select SELECT * FROM users WHERE id < 1500 ORDER BY ID DESC LIMIT 10
) as pusr
order by pusr.id asc;
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
Mam proste zapytanie SQL, zwykły select z 3 warunkami. Na końcu jest sortowanie, i obcięcie wyników do kontretnej ilości za pomocą LIMIT. I wszystko jest ok, dopóki nie zmienię warunku w taki sposób, aby rezultatem było 0 wierszy. Wtedy czas trwania zwiększa się z 0.01s do ponad 20sekund. Usunięcie limitu sprawia, że zapytanie wykonuje się tak szybko jak przed zmianą warunku i z zachowaniem limitu. Czyli:
-select zwracający 100 rekordów i obcięty
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bomba4: Nie wiem jak do końca działa limit w mysql ale najwidoczniej liczy rekordy podczas wykonywania zapytania co może faktycznie orać optymalizację. Z uwagi, że limit 0 podejrzewam, że liczy każdy rekord jaki zapytanie wypluwa, jeden po drugim.

Operowanie na zapytaniu zagnieżdżonym ustala już konkretną ilość rekordów i na końcu ogranicza. Jest to szybsze dla silnika. W prawie każdej swojej procedurze w pracbazie wykonuję takie zagnieżdżenia albo korzystam z tabel
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@thomekh: tylko tu nie chodzi o limit 0, tylko o sytuację kiedy masz 2 zapytania sqlowe które różnią się jednym warunkiem. Pierwsze zapytanie (bez limitu) zwraca 100 rekordów, a drugie 0. Oba się wykonują w ciągu 0.01s. Następnie do obu dopisuje Limit 10, i to pierwsze nadal się wykonuje 0,01 a to drugie już 22s

Ogarnąłem to tak jak pisałem, ale i tak jest to dla mnie dziwne. Sam limit
  • Odpowiedz
chcę po przeniesieniu z tabeli order do oldorders, aby przeniesione pola zostały usunięte w tabeli order. Ktoś pomoze?
INSERT INTO old
orders (name)
SELECT name
FROM orders WHERE id=$id");
#bazydanych #mysql #sql
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Panowie bazodanowcy jak to jest, że wynik kwerendy otrzymuję od razu a query executed time wskazuje na kilkadziesiąt sekund? Może z pozoru banalne pytanie, ale proszę o wytłumaczenie
#sql #bazydanych
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#pomocy #excel #sql
Mireczki,
mam dwie tabele - jedna zawiera nagłówki faktur, w drugiej są pozycje faktur. W systemie łączone są poprzez pola ID główki. Nie mogę sobie poradzić, jak wciągnąć te informacje na arkusz w taki sposób, by np. do faktury z ID główki 15 podstawiały się pozycje z tym samym id. Próbowałem scalania, relacje w power pivot ale cały czas stoję w miejscu. Znajdzie
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@m_wazowski: Jest na to kilka sposobów, ja bardzo polecam Power Query.

1. Utwórz połączenia do obu tabel:
Dane -> Z tabeli / zakresu
Plik -> Zamknij i załaduj do...
Utwórz tylko połączenie
  • Odpowiedz
@xtracom: Bardzo, bardzo Ci dziękuję! Wczoraj z tej radości napisałem komentarz z podziękowaniem i nie kliknąłem wyślij ( ͡° ͜ʖ ͡°) Wielkie dzięki Kolego, należy Ci się dobre piwko
  • Odpowiedz
#plsql #sql #oracle
Mam tabele użytkownicy z kolumnami id, imię, nazwisko
Kurła Mirki, napisałem sekwencję i triggera, które zwiększają mi kolumnę id w tabeli o 1 przed insertem.
I w insercie nie podaję id, bo to ogarnia trigger.
Chciałem napisać funkcję dodającą użytkownika. Ale przy tworzeniu funkcji musze podać to id.. jak to "obejść"?
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam takie pytanie.
Mam dwie tabele, które nie są w żaden sposób ze sobą połączone, ale obie mają kolumne "Name". Jak będzie wyglądał sql, który zwróci mi names z obu tabel? Da się tak w ogóle zrobić?

#sql #bazydanych
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach