рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП B2B рд╕реЗрд╡рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛

рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рдП рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 10 рдЧреБрдирд╛ рдХреИрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рдП? рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯрд╛, рд╣рдордиреЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд▓рд╛рдЧрдд рдореЗрдВ рд╡реГрджреНрдзрд┐ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ред

рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рддрд╛ рд╣реВрдБред рд╣рдорд╛рд░реЗ рд╕рд╛рде рдХрд░реАрдм 3 рд╣рдЬрд╛рд░ рдХрдВрдкрдирд┐рдпрд╛рдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ. рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкреНрд░рддрд┐рджрд┐рди 10 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ 4-10 рдШрдВрдЯреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдпреЛрдЬрдирд╛, рдЕрдзрд┐рд╕реВрдЪрдирд╛, рдЪреЗрддрд╛рд╡рдиреА, рд╕рддреНрдпрд╛рдкрди рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ... рд╣рдо PostgreSQL 9.6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рдЧрднрдЧ 300 рдЯреЗрдмрд▓ рд╣реИрдВ рдФрд░ рд╣рд░ рджрд┐рди 200 рдорд┐рд▓рд┐рдпрди рдкреНрд░рд╢реНрди (10 рд╣рдЬрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ) рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдФрд╕рддрди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 3-4 рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдз рд╣реЛрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 10 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рд╣реЛрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╢реНрди OLAP рд╣реИрдВред рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкрд░рд┐рд╡рд░реНрдзрди, рд╕рдВрд╢реЛрдзрди рдФрд░ рд╡рд┐рд▓реЛрдкрди рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдУрдПрд▓рдЯреАрдкреА рд▓реЛрдб рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд▓реНрдХрд╛ рд╣реИред рдореИрдВрдиреЗ рдпреЗ рд╕рднреА рдирдВрдмрд░ рдЗрд╕рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкреИрдорд╛рдиреЗ рдХрд╛ рдЖрдХрд▓рди рдХрд░ рд╕рдХреЗрдВ рдФрд░ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЪрд┐рддреНрд░ рдПрдХ. рдЧреЗрдп

рдЬрдм рд╣рдордиреЗ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рднрд╛рд░ рдкрдбрд╝реЗрдЧрд╛ рдФрд░ рдпрджрд┐ рд╕рд░реНрд╡рд░ рдЦреАрдВрдЪрдирд╛ рдмрдВрдж рдХрд░ рджреЗ рддреЛ рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд╢рдВрд╕рд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдкрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝реА рди рдорд╛рд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╕рд▓рд╛рд╣ рд╕реЗ рдкрд░реЗ рдЪрд▓реЗ рдЧрдП рдЬреИрд╕реЗ "рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ" рдЗрдХрд╛рдИ рдЧреБрдг рдорд╛рди рд╣рдо рдЕрдВрджрд░ рдирд╣реАрдВ рдЧрдП. рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛, рдбреЗрдЯрд╛ рдЕрддрд┐рд░реЗрдХ рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХреАред рдЬреИрд╕реЗ рд╣реА рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдпреЗ, рд╣рдореЗрдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рддреИрдпрд╛рд░ рдирд╣реАрдВ рдереЗред рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕рд░рд▓ рдирд┐рдХрд▓реАрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдирдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдЬреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордп рдРрд╕рд╛ рдЖрдпрд╛ рдЬрдм рд╕рд╛рдзрд╛рд░рдг рдкреИрдЪ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреБрднрд╡ рдХреА рдХрдореА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ, рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рдХрд╛рдо рдкрд░ рд░рдЦрд╛ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА, рдФрд░ рд╣рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХрд╣рд╛рдВ рдЬрд╛рдирд╛ рд╣реИ рдЖрдВрдХрдбрд╝реЗ.

рдЪрд┐рддреНрд░ рджреЛ. рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп

рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 10 рд╣рдЬрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐рджрд┐рди рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрди 10 рд╣рдЬрд╛рд░ рдореЗрдВ рд╕реЗ, рдРрд╕реЗ рд░рд╛рдХреНрд╖рд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ 2-3 рдПрдордПрд╕ рдХреЗ рдФрд╕рдд рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рд╕рд╛рде 0.1-0.3 рдорд┐рд▓рд┐рдпрди рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ 30 рд╕реЗрдХрдВрдб рдХреЗ рдФрд╕рдд рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рджрд┐рди рдореЗрдВ 100 рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА 10 рд╣рдЬрд╛рд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдХрд╣рд╛рдБ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред

рд╢реАрд░реНрд╖ рдЕрдиреБрд░реЛрдз

рдпреЗ рд╕рдмрд╕реЗ рднрд╛рд░реА рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп (рдХреБрд▓ рд╕рдордп) рд▓рдЧрддрд╛ рд╣реИред рдпреЗ рдРрд╕реА рдХреНрд╡реЗрд░реАрдЬрд╝ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рдмрд╣реБрдд рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдРрд╕реА рдХреНрд╡реЗрд░реАрдЬрд╝ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ (рд▓рдВрдмреА рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд▓рдбрд╝рд╛рдИ рдХреЗ рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд░реНрд╡рд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реАрд░реНрд╖ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреБрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╕реЗ рдФрд░ рдЕрд▓рдЧ рд╕реЗ рдЖрдИрдУ рд╕рдордп рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдРрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдереЛрдбрд╝реА рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВред

рд╕рднреА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдерд╛ TOP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ; рдПрдХ рдХреНрд╡реЗрд░реА рдХреЛ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ 5-10% рд╕рдВрд╕рд╛рдзрди рдореБрдХреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛрддреА рд╣реИ, TOP рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдмрди рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рд╕рд░рд▓ рддрд░реАрдХреЛрдВ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ "рднрд╛рд░реА" рдЕрдиреБрд░реЛрдз рдореЗрдВ "рдХреЗрд╡рд▓" 3-5% рд╕рдВрд╕рд╛рдзрди рд▓рдЧрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ TOP рдХреНрд╡реЗрд░реАрдЬрд╝ рдореЗрдВ 30-40% рд╕реЗ рдХрдо рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдЕрдЧрд▓реЗ рд╕рдореВрд╣ рд╕реЗ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рдХрд┐рддрдиреЗ рд╢реАрд░реНрд╖ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдХрдо рд╕реЗ рдХрдо 10 рд▓реЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди 20 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВред рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЯреЙрдк рд╕рдореВрд╣ рдореЗрдВ рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рдХреЗ рд╕рдордп рдореЗрдВ 10 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рдЕрдВрддрд░ рди рд╣реЛред рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкрд╣рд▓реА рдЬрдЧрд╣ рд╕реЗ 1рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рддреЗрдЬреА рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ TOP-10 рд▓реЗрддрд╛ рд╣реВрдВ, рдпрджрд┐ рдЧрд┐рд░рд╛рд╡рдЯ рдЕрдзрд┐рдХ рдХреНрд░рдорд┐рдХ рд╣реИ, рддреЛ рдореИрдВ рд╕рдореВрд╣ рдХрд╛ рдЖрдХрд╛рд░ 10 рдпрд╛ 15 рддрдХ рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реВрдВред
рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП B2B рд╕реЗрд╡рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛

рдордзреНрдпрдо рдХрд┐рд╕рд╛рди

рдкрд┐рдЫрд▓реЗ 5-10% рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдпреЗ рд╕рднреА рдЕрдиреБрд░реЛрдз TOP рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд┐рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рднрд╛рд░ 80% рддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдирдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА 50% рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред

рдкреВрдБрдЫ

рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпреЗ рдкреНрд░рд╢реНрди рдЕрдВрдд рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ 5-10% рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВред рдЖрдк рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрднреА рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреНрд╡реЗрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╕рд╕реНрддрд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдореИрдВ рдПрдХ SQL рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ PostgreSQL рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ (рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдХ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рдХрдИ рдЕрдиреНрдп DBMS рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ)

TOP-MEDIUM-TAIL рд╕рдореВрд╣реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА

SELECT sum(time_top) AS sum_top, sum(time_medium) AS sum_medium, sum(time_tail) AS sum_tail
FROM
(
  SELECT CASE WHEN rn <= 20              THEN tt_percent ELSE 0 END AS time_top,
         CASE WHEN rn > 20 AND rn <= 800 THEN tt_percent ELSE 0 END AS time_medium,
         CASE WHEN rn > 800              THEN tt_percent ELSE 0 END AS time_tail
  FROM (
    SELECT total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query,
    ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn
    FROM pg_stat_statements
    ORDER BY total_time DESC
  ) AS t
)
AS ts

рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддреАрди рдХреЙрд▓рдо рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЗрд╕ рд╕рдореВрд╣ рд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрджрд░ рджреЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ 20 рдФрд░ 800 рд╣реИрдВ) рдЬреЛ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреА рд╣реИрдВред

рдЕрдиреБрдХреВрд▓рди рдХрд╛рд░реНрдп рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдФрд░ рдЕрдм рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╢реЗрдпрд░реЛрдВ рдХреА рдореЛрдЯреЗ рддреМрд░ рдкрд░ рддреБрд▓рдирд╛ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЧрдИ рд╣реИред

рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП B2B рд╕реЗрд╡рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛

рдЖрд░реЗрдЦ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ TOP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрдореА рдЖрдИ рд╣реИ, рд▓реЗрдХрд┐рди "рдордзреНрдпрдо рдХрд┐рд╕рд╛рдиреЛрдВ" рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, TOP рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдЬрд╝рдмрд░рджрд╕реНрдд рдЧрд▓рддрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рдереАрдВред рд╕рдордп рдХреЗ рд╕рд╛рде, рдмрдЪрдкрди рдХреА рдмреАрдорд╛рд░рд┐рдпрд╛рдБ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВ, TOP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдХрдо рд╣реЛ рдЧрдИ, рдФрд░ рдХрдард┐рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдкрдбрд╝реЗред

рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

SELECT * FROM (
  SELECT ROW_NUMBER () OVER (ORDER BY total_time DESC) AS rn, total_time / (SELECT sum(total_time) FROM pg_stat_statements) * 100 AS tt_percent, query
  FROM pg_stat_statements
  ORDER BY total_time DESC
) AS T
WHERE
rn <= 20 -- TOP
-- rn > 20 AND rn <= 800 -- MEDIUM
-- rn > 800  -- TAIL

рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдЯреЙрдк рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рддреЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА:

  • рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдирдпрд╛ рд╕реНрд╡рд░реВрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрд╡рдзрд┐рдХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рдВрджреЗрд╢ рдмреНрд░реЛрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛
  • рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рдмрджрд▓рдирд╛
  • ORM рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рд╢реБрджреНрдз SQL рдореЗрдВ рдкреБрдирдГ рд▓рд┐рдЦрдирд╛
  • рдЖрд▓рд╕реА рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛
  • рдбреЗрдЯрд╛ рдбреАрдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╢рд┐рдВрдЧред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЗрдмрд▓ рдХрдиреЗрдХреНрд╢рди рдбрд┐рд▓реАрд╡рд░реА -> рдЗрдирд╡реЙрдЗрд╕ -> рдЕрдиреБрд░реЛрдз -> рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд▓реАрд╡рд░реА рдЕрдиреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд▓рд┐рдВрдХ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдбрд┐рд▓реАрд╡рд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░ рджрд┐рдпрд╛ред
  • рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмрджрд▓рдирд╛ред

рдХрднреА-рдХрднреА рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд░реАрдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рдХрд╛ 5-10% рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдереЗ рдФрд░ рдЙрдЪрд┐рдд рдереЗред рд╕рдордп рдХреЗ рд╕рд╛рде, рдирд┐рдХрд╛рд╕ рдЫреЛрдЯрд╛ рдФрд░ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рдЧрдпрд╛, рдФрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд░реАрдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

рдлрд┐рд░ рд╣рдордиреЗ рдЕрдкрдирд╛ рдзреНрдпрд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рджреВрд╕рд░реЗ рд╕рдореВрд╣ - рдордзреНрдпрдо рдХрд┐рд╕рд╛рдиреЛрдВ рдХреЗ рд╕рдореВрд╣ - рдХреА рдУрд░ рд▓рдЧрд╛рдпрд╛ред рдЗрд╕рдореЗрдВ рдФрд░ рднреА рдХрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреВрд░реЗ рд╕рдореВрд╣ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд╡реЗрд░реАрдЬрд╝ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛, рдФрд░ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рджрд░реНрдЬрдиреЛрдВ рд╕рдорд╛рди рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ 3-5% рддрдХ рдЕрдирд▓реЛрдб рдХрд┐рдпрд╛ред

  • COUNT рдФрд░ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, EXISTS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛
  • DISTINCT рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛ (рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рдиреБрд╕реНрдЦрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк рдЕрдиреБрд░реЛрдз рдХреЛ 10-100 рдЧреБрдирд╛ рддреЗрдЬ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред

    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рд▓реАрд╡рд░реА рдХреА рдПрдХ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдХреЗ рдмрдЬрд╛рдп (рдбрд┐рд▓реАрд╡рд░реА)

    SELECT DISTINCT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM DELIVERY D JOIN PERSON P ON D.DRIVER_ID = P.ID
    

    рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рддрд╛рд▓рд┐рдХрд╛ рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдПрдХ рдкреНрд░рд╢реНрди рдмрдирд╛рдпрд╛

    SELECT P.ID, P.FIRST_NAME, P.LAST_NAME
    FROM PERSON
    WHERE EXISTS(SELECT D.ID FROM DELIVERY WHERE D.DRIVER_ID = P.ID)
    

    рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдПрдХ рд╕рд╣рд╕рдВрдмрджреНрдз рд╕рдмрдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 10 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рд╕реНрдкреАрдбрдЕрдк рджреЗрддрд╛ рд╣реИред

  • рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, COUNT рдХреЛ рдкреВрд░реА рддрд░рд╣ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░
    рдЕрдиреБрдорд╛рдирд┐рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд
  • рдХреЗ рдмрджрд▓реЗ
    UPPER(s) LIKE JOHN%тАЩ 
    

    рдЙрдкрдпреЛрдЧ

    s ILIKE тАЬJohn%тАЭ
    

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреА рдЧрддрд┐ рдХрднреА-рдХрднреА 3-1000 рдЧреБрдирд╛ рддрдХ рдмрдврд╝ рдЬрд╛рддреА рдереАред рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд╣рд▓реЗ рддреЛ рд╣рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рдРрд╕реА рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ 10 рдПрдордПрд╕ рд▓рдЧрддреЗ рд╣реИрдВ, рдЬреЛ рддреАрд╕рд░реА рд╕реМ рд╕рдмрд╕реЗ рднрд╛рд░реА рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдФрд░ рдХреБрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЛрдб рд╕рдордп рдХреЗ рдПрдХ рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рд╕реМрд╡рд╛рдВ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдореВрд╣ рдкрд░ рдПрдХ рд╣реА рдиреБрд╕реНрдЦрд╛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ, рд╣рдордиреЗ рдХреБрдЫ рдкреНрд░рддрд┐рд╢рдд рд╡рд╛рдкрд╕ рдЬреАрдд рд▓рд┐рдпрд╛ред рд╕рднреА рд╕реИрдХрдбрд╝реЛрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдХрдИ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреАрдВ рдЬреЛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд╡реЗрд░реА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рдереАрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЦреЛрдЬрдиреЗ рд╕реЗ рд╣рдореЗрдВ рдорд╛рдореВрд▓реА рдкреНрд░рдпрд╛рд╕ рд╕реЗ рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рддреАрди рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЙрд╕реА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд╕рдд рджреИрдирд┐рдХ рднрд╛рд░ рд▓рдЧрднрдЧ 30% рд╣реИ, рдЪрд░рдо рдкрд░ рдпрд╣ 70% рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд▓рдЧрднрдЧ 10 рдЧреБрдирд╛ рдмрдврд╝ рдЧрдИ рд╣реИред рдФрд░ рдпрд╣ рд╕рдм рдЯреЙрдк-рдореАрдбрд┐рдпрдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЗрдиреНрд╣реАрдВ рд╕рдореВрд╣реЛрдВ рдХреА рдирд┐рд░рдВрддрд░ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣реИред рдЬреИрд╕реЗ рд╣реА TOP рдЧреНрд░реБрдк рдореЗрдВ рдХреЛрдИ рдирдпрд╛ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рд╣рдо рддреБрд░рдВрдд рдЙрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдХреНрд╡реЗрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореАрдбрд┐рдпрдо рд╕рдореВрд╣ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдирдИ рдХреНрд╡реЗрд░реАрдЬрд╝ рдЖрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рд╣рдореЗрдВ рдирдИ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдзрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 3-5 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред рд╕рдЪ рд╣реИ, рд╣рдорд╛рд░реА рдЖрд╕реНрддреАрди рдореЗрдВ рдПрдХ рдФрд░ рдЗрдХреНрдХрд╛ рд╣реИ - рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ, рд╣рдордиреЗ рдЕрднреА рднреА SELECT рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рджрд░реНрдкрдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирдмреВрдЭрдХрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо "рднрд╛рд░реА рддреЛрдкрдЦрд╛рдиреЗ" рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рд╕реНрдорд╛рд░реНрдЯ" рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдкрд░ рдПрдХ рдЖрд▓реЛрдЪрдирд╛рддреНрдордХ рдирдЬрд╝рд░ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡рд░ рдЦрд░реАрджреЗрдВред рд╕рд░реНрд╡рд░ рдХреА рд▓рд╛рдЧрдд рдЗрддрдиреА рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╣рдордиреЗ рдЕрднреА рддрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд╕реАрдорд╛рдПрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 10 рдЧреБрдирд╛ рдмрдврд╝ рдЧрдИред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ рдФрд░ рдЕрдм рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдз рдЖрдиреЗ рд▓рдЧреЗ рд╣реИрдВред рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореМрдЬреВрдж рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрдо рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд╡рд░рдг рдЧреБрдгрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп 5 рд╕реЗ рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рд╕рдмрд╕реЗ рд░реВрдврд╝рд┐рд╡рд╛рджреА рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддреНрд╡рд░рдг 50 рдЧреБрдирд╛ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдерд╛ред рдХрд┐рд╕реА рд╕рд░реНрд╡рд░ рдХреЛ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдВрдЧ рдХрд░рдиреЗ рдкрд░ 50 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рдмрд╛рд░ рдЕрдиреБрдХреВрд▓рди рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рдпрд╣ рд╣рд░ рд╕рдордп рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд░рд╛рдП рдХреЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдмрд┐рд▓ рд╣рд░ рдорд╣реАрдиреЗ рдЖрддрд╛ рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ