2013-05-08 25 views
5

Czy istnieje sposób, aby dowiedzieć się wcześniej (nie metodą prób i błędów), czy konkretne zapytanie powinno używać GROUP BY lub GROUP EACH BY? Obecnie widzimy, że po liczności ~ 60-70% jesteśmy proszeni o użycie Grupy EACH przez. Trudno przewidzieć, ponieważ generujemy SQL.identyfikuj grupę według grupy kontra z wyprzedzeniem

Odpowiedz

4

Używanie "KAŻDEGO" nie zależy od zapytania, ale od danych. Czy istnieje niewielka liczba unikatowych wartości dla wyrażenia grupy? Użyj GROUP BY. Czy jest dużo? Użyj GROUP EACH BY.

Najlepszą strategią jest użycie GROUP BY, dopóki nie uzyskasz "błędu przekroczenia limitu".

Aby zagłębić się w "dlaczego?", Można spojrzeć na papier Dremel, który rozpoczął wszystko. Zasadniczo GROUP BY działa w mikserach, a GROUP EACH BY zostaje zepchnięty do odłamków.

Aby uzyskać więcej informacji, sprawdź odpowiedzi jcondit pod numerem Resources Exceeded during query execution.

+0

dziękuję, ale nie możemy pozwolić, aby zapytania użytkowników po prostu "dostały błąd", a następnie uruchom je ponownie :-). – user1516770

+0

Zgadzam się! Czy możesz mi powiedzieć coś więcej o przypadku użycia? –

Powiązane problemy