Logo bg.boatexistence.com

Ще повлияе ли на производителността?

Съдържание:

Ще повлияе ли на производителността?
Ще повлияе ли на производителността?

Видео: Ще повлияе ли на производителността?

Видео: Ще повлияе ли на производителността?
Видео: Расчет экономического эффекта от Бережливого производства. 2024, Може
Anonim

Да, тъй като използването на DISTINCT (понякога според коментар) ще доведе до поръчване на резултатите Сортирането на стотици записи отнема време. Опитайте GROUP BY всичките си колони, понякога може да накара оптимизатора на заявки да избере по-ефективен алгоритъм (поне с Oracle забелязах значително увеличение на производителността).

Зле ли е да се използва отделно?

Е, неправилното използване на "различим" не само скрива истинския проблем (дубликати записи в таблиците, липса на условие в клаузата за включване), както беше обсъдено по-горе, но също така влошава производителността на заявката… Това ще доведе до значително увеличаване на IO Cost (логическо четене) на заявката.

Различието прави ли заявката по-бавна?

Много малко заявки могат да се изпълняват по-бързо в режим SELECT DISTINCT и много малко ще работят по-бавно (но не значително по-бавно) в режим SELECT DISTINCT, но за по-късния случай е вероятно че приложението може да се наложи да проучи дублиращите се случаи, което прехвърля тежестта върху производителността и сложността на приложението.

По-добре ли е да използвате отделно или ГРУПИРАНЕ?

В MySQL DISTINCT изглежда малко по-бързо от GROUP BY, ако полето не е индексирано. DISTINCT премахва само дублиращи се редове, но GROUP BY изглежда ги сортира допълнително.

Защо не трябва да използваме different в SQL?

Ако изберете различен е там, за да "поправите" проблем, тогава е вероятно да получите лошо представяне в замяна. GROUP BY ви позволява да използвате агрегатни функции, като AVG, MAX, MIN, SUM и COUNT. DISTINCT просто премахва дубликати.

Препоръчано: