W prostym systemie głosowania jako CREATE TABLE elections ( election_id int(11) NOT NULL AUTO_INCREMENT, title varchar(255), CREATE TABLE votes ( election_id int(11), user_id int(11), FOREIGN KEYs w celu uzyskania listy wyborów, które głosował użytkownik, zastosowano następujący DOŁĄCZ SELECT * FROM elections JOIN votes USING(election_id) WHERE votes.user_id='x' ale jak uzyskać listę …
Chciałbym uzyskać ekspertyzę dotyczącą najlepszych praktyk w zakresie nazewnictwa kolumn . Tło jest takie, że według Wikipedii następująca składnia: SELECT ... FROM Employees JOIN Timesheets USING (EmployeeID); jest bardziej wydajny niż SELECT ... FROM Employees JOIN Timesheets ON (Employees.EmployeeID = Timesheets.EmployeeID); Jednak JOIN ... USINGskładnia działa tylko dla wszystkich kolumn …
Każdej nocy musimy sporządzać raporty na naszym SQL Server 2008 R2. Obliczanie raportów zajmuje kilka godzin. W celu skrócenia czasu wstępnie obliczamy tabelę. Ta tabela jest tworzona na podstawie ŁĄCZENIA 12 dość dużych tabel (rząd dziesiątek milionów). Obliczenie tej tabeli agregacji zajęło kilka dni temu około 4 godzin. Nasz DBA …
Po przeczytaniu powolnego zapytania SQL, nie będąc pewnym, jak go zoptymalizować , pomyślałem o ogólnej wydajności zapytań. Z pewnością potrzebujemy, aby wyniki pierwszej tabeli (gdy połączone są inne tabele) były możliwie jak najmniejsze przed dołączeniem (złączenia wewnętrzne dla tego pytania), aby nasze zapytania były nieco szybsze. Przykład: SELECT * FROM …
Biorąc pod uwagę tę konfigurację w aktualnym Postgres 9.4 ( z tego powiązanego pytania ): CREATE TABLE foo (ts, foo) AS VALUES (1, 'A') -- int, text , (7, 'B'); CREATE TABLE bar (ts, bar) AS VALUES (3, 'C') , (5, 'D') , (9, 'E'); Istnieje również SQL Fiddle z …
Prowadzimy stronę internetową, która ma 250 mln wierszy w jednej tabeli, aw drugiej tabeli, do której dołączamy, w przypadku większości zapytań ma nieco mniej niż 15 mln wierszy. Przykładowe struktury: MasterTable (Id, UserId, Created, Updated...) -- 15MM Rows DetailsTable (Id, MasterId, SomeColumn...) -- 250MM Rows UserTable (Id, Role, Created, UserName...) …
Dlaczego serwer SQL korzysta z równoległości podczas uruchamiania tego zapytania, które korzysta z podzapytania, ale nie korzysta z łączenia? Wersja dołączenia działa szeregowo i jej ukończenie zajmuje około 30 razy. Dołącz do wersji: ~ 30secs Wersja podzapytania: <1 sekunda EDYCJA: Xml wersje planu zapytań: DOŁĄCZ wersja Wersja SUBQUERY
Mam następujące definicje tabel i indeksów: CREATE TABLE munkalap ( munkalap_id serial PRIMARY KEY, ... ); CREATE TABLE munkalap_lepes ( munkalap_lepes_id serial PRIMARY KEY, munkalap_id integer REFERENCES munkalap (munkalap_id), ... ); CREATE INDEX idx_munkalap_lepes_munkalap_id ON munkalap_lepes (munkalap_id); Dlaczego żaden z indeksów na munkalap_id nie jest używany w następującym zapytaniu? EXPLAIN …
W zapytaniu, które miało zostać przeniesione ze składni sprzężenia zewnętrznego Oracle, do standardowej składni sprzężenia zewnętrznego SQL widziałem: SELECT ... FROM A, B, C, D, E WHERE A.A_ID = B.A_ID AND B.B_ID = C.A_ID(+) AND B.B_KEY = C.B_KEY(+) AND C.C_ID = D.C_ID(+) AND B.A_ID = E.A_ID(+) AND B.B_KEY = E.B_KEY(+) …
Mam commentstabelę, którą można uprościć do tego stopnia : comments ======= id user_id text parent_id gdzie parent_idjest zerowalne, ale może być kluczem do jego komentarza nadrzędnego. Jak mogę teraz selectwszystkich potomków określonego komentarza? Komentarze mogą być kilka poziomów niżej ...
Mam dwie tabele w bazie danych PostgreSQL 9.3: Tabela link_replyma klucz obcy o nazwie which_groupskierowanej do tabeli link_group. Chcę usunąć wszystkie wiersze, z link_groupktórych nie link_replyistnieje żaden powiązany wiersz . Brzmi dość prosto, ale walczyłem z tym. Czy będzie to coś takiego prostego (nie działa)? DELETE FROM link_group WHERE link_reply …
Kiedy piszę takie zapytanie ... select * from table1 t1 join table2 t2 on t1.id = t2.id Czy optymalizator SQL, nie będąc pewnym, czy jest to poprawny termin, tłumaczy to na ... select * from table1 t1, table2 t2 where t1.id = t2.id Zasadniczo, czy instrukcja Join w SQL Server …
Mamy tabelę, której używamy do przechowywania odpowiedzi na pytania. Musimy być w stanie znaleźć użytkowników, którzy mają określone odpowiedzi na określone pytania. Jeśli więc nasza tabela składa się z następujących danych: user_id question_id answer_value Sally 1 Pooch Sally 2 Peach John 1 Pooch John 2 Duke i chcemy znaleźć użytkowników, …
PostgreSQL używa domyślnych ustawień plus default_statistics_target=1000 random_page_cost=1.5 Wersja PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit Odkurzyłem i przeanalizowałem. Zapytanie jest bardzo proste: SELECT r.price FROM account_payer ap JOIN account_contract ac ON ap.id = ac.account_payer_id JOIN account_schedule "as" ON ac.id = "as".account_contract_id JOIN schedule s ON "as".id …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.