Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 5.05.2008 Ostrzeżenie: (0%)
|
Witam,
Mam problem optymalizacyjny. 1. Wywołuję SELECT na dużej tabeli (hurtownia danych, 10mln rekordów). 2. Zapytaniem tym pobieram 10 kolumn (wszystkie kolumny SMALLINT), zostaje mi zwrócone ok. 12 tysięcy wyników w czasie 0.4 sekundy. 3. Zwrócone dane odrazu ładuję do tymczasowej tabeli MEMORY (INSERT INTO ... SELECT FROM...), co okazuje się trwać aż 5 sekund! Załadowane dane ważą zaledwie 1.6MB. Dodam, że tabela tymczasowa nie ma żadnych indeksów. Czy naprawdę INSERT tych 12 tysięcy rekordów do tabeli typu MEMORY musi trwać aż 5 sekund? Wszystko odpalane na szybkim serwerze dedykowanym (kilkanaście corów, 24GB RAM...) Jak można poradzić sobie z takim problemem? Idea ładowania wyniku SELECTa do tabeli tymczasowej jest taka, aby móc wyniki dalej obrabiać dodatkowymi szybkimi zapytaniami. Z góry dzięki za sugestie. |
|
|
|
ego Wolny INSERT do tymczasowej tabeli typu MEMORY 31.01.2011, 19:32:06
trafas Proponuję skorzystanie z perspektyw . 1.02.2011, 16:59:15
wookieb Co to za zapytanie i co chcesz dokładnie zrobić?
T... 1.02.2011, 17:02:52 ![]() ![]() |
|
Aktualny czas: 20.12.2025 - 21:59 |