![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, na potrzeby swojego projektu mam następujące zapytanie:
tabela tab1 zawiera ok 20.000 rekordów tabela tab2 zawiera ok 5.000 rekordów czas wykonywania zapytania do UNION-a trwa 0,007 s. czas wykonywania zapytania po UNION-iea trwa prawie 11 s. czy to zapytanie można zoptywalizować? Jeśli tak to poproszę o wskazówki |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
wywal to ", tab2 AS t2 " z 2 zapytania bo nic nie wnosi dołączenie drugiej tabeli a łączy ją kartezjańsko z t1 czyli finalnie wychodzi 100 000 000 rekordów do przeszukania.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Na t1.id_book i t2.id_book powinny być pozakładane indeksy (nie wiem jakie, bo nie wiem jaka relacja jest między tymi tabelami, ale najpewniej primary key na t1.id_book i indeks na t2.id_book).
Drugie podzapytanie można (i należy) zoptymalizować do LEFT JOIN. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 1 Dołączył: 25.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ad. Trueblue
Generalnie nadal męczę się z tym co już mi pomagałeś
Jak LEFT JOIN - em dołączyć do wyniku rekordy nieistniejące w tab2? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:05 |