Ïîäáîð âàðèàíòîâ ïî ïðèìåðíîìó çíà÷åíèþ - îïòèìèçàöèÿ çàïðîñà
|
|
Ñðåäà, 03 Àâãóñòà 2016 ã. 09:14
+ â öèòàòíèê
Èìååòñÿ ñëåäóþùàÿ çàäà÷à:
Òûñÿ÷è êëèåíòîâ, òûñÿ÷è àðòèêóëîâ. Êàæäûé êëèåíò èìååò ñâîþ ñêèäêó íà êàòåãîðèþ òîâàðîâ, ïðè÷åì êëèåíòó îíà ïðåäîñòàâëÿåòñÿ â âèäå 3-õ öåëûõ ïîñëåäîâàòåëüíûõ ñêèäîê, íàïðèìåð 25%, 7% è 6%, ÷òî â ðåçóëüòàòå äàåò ðåàëüíóþ ñêèäêó 34.435%, êîòîðàÿ è èñïîëüçóåòñÿ äëÿ âíóòðåííèõ ðàñ÷åòîâ, à êëèåíòó äàþòñÿ òîëüêî 3 ÷èñëà â âèäå öåëûõ ÷èñåë.
Ñîçäàåòñÿ ñèñòåìà àâòîìàòè÷åñêîãî ïðèâåäåíèÿ â ïîðÿäîê âñåé ýòîé âàêõàíàëèè ñî ñêèäêàìè, ãäå íóæíî ïî çàäàííîìó ïðèìåðíîìó ïðîöåíòó îáùåé ñêèäêè ïîäîáðàòü áëèæàéøóþ êîìáèíàöèþ èç ïîäõîäÿùèõ öåëûõ ÷èñåë.
Ñåé÷àñ ïîäáîð ñäåëàí "â ëîá" - åñòü òàáëèöà ñî âñåìè êîìáèíàöèÿìè, íà êàæäóþ ñòðîêó ñ êëèåíòîì/àðòèêóëîì âûçûâàåòñÿ ïîëüçîâàòåëüñêàÿ ôóíêöèÿ, êîòîðàÿ âûáèðàåò ïåðâóþ çàïèñü èç òàáëèöû êîìáèíàöèé ïî between è îòñîðòèðîâàííîé ïî óáûâàíèþ àáñîëþòíîé ðàçíèöû çàäàííîé îáùåé ñêèäêè è ñóùåñòâóþùåé â òàáëèöå êîìáèíàöèé. Ðàáîòàåò, íî ìåäëåííî. Íàâåðíÿêà ÷èñòî SQL âûðàæåíèå ðàáîòàëî áû áûñòðåå.
Åñòü èäåè êàê ìîæíî áûëî áû îðãàíèçîâàòü ïîäáîð áëèæàéøèõ çíà÷åíèé áîëåå áûñòðûì ñïîñîáîì, ÷åì âûçîâ ôóíêöèè íà êàæäóþ ñòðîêó?
http://www.sql.ru/forum/1225274/podbor-variantov-po-primernomu-znacheniu-optimizaciya-zaprosa
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-