![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 8.12.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Potrzebuję wykonać 3 zapytania jedno po drugim. Pierwsze tworzy tymczasową tabele zawierającą przetworzone dane (ca 1,5mln linii). Po wygenerowaniu jej kasowana jest tabela z której korzysta produkcyjnie serwis (zapytanie 2) i zmieniana jest nazwa tymczasowej tabeli na produkcyjną. IMO takie rozwiązanie powoduje, że czas niedostępności produkcyjnej bazy jest najkrótszy i zawsze zawiera ona świeże dane. Zapytania są wywoływane co 5 minut przez cron i tutaj mam problem. Zapytanie nr 1 liczy się ok. minuty. Mam wrażenie, że wszystkie 3 zapytania wykonywane są od razu jedno po drugim bez oczekiwania na wykonanie się pierwszego - mocno czasochłonnego. I to wywala całość. Ma ktoś pomysł jak to ugryźć? Pozdrawiam, Maciek |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zoptymalizować strukturę bazy i zapytania tak, aby nie trzeba było usuwać starej, a póżniej zmieniać nazwy nowej tabeli.
Ten post edytował kapslokk 8.12.2015, 18:30:24 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
czy wykonujesz insert w jednej sesji?? plus o ile mieści się w ramach czasowych to powinieneś wszystkie zapytania wykonać w jednym pliku... jeśli musisz podzielić czasowo to powinieneś stworzyć jakiś prosty plik konfiguracyjny co wykonać przy następnym uruchomieniu cron'a...
ps. o ile w oryginalnej tabeli brakuje tylko nowszych danych bez jakichś skomplikowanych operacji to raczej lepszym rozwiązaniem było by ją zostawić i uzupełnić ją z tymczasowej poprzez insert z podzapytania na tymczasowej tabeli o dane nie występujące w oryginalnej... -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:10 |