VST рдЖрд░реЗрдЦреЛрдВ рдкрд░ SQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдПрдХ рдРрд╕рд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рд░ рдХреЛрдИ рдПрдХ рдорд╣рд╛рди рдЧреБрд░реБ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рднреА рд╢реБрд░реБрдЖрддреА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдХреИрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреА рдХрд▓рд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдФрд░ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЖрдк рд╡рд┐рд╖рдп рдореЗрдВ рдЧрд╣рд░реЗ рд╣реЛрддреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ред

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

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

рдЯреНрдпреВрдирд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдЕрдХреНрд╕рд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм "рд╕рд╣реА" рд╕рдорд╛рдзрд╛рди рдЪреБрдирдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ, рдореИрдВ bulldba.com/db-optimizer рдмреНрд▓реЙрдЧ рд╕реЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреВрдВрдЧрд╛



Embarcadero рдХрд╛ рдирдпрд╛ DB рдСрдкреНрдЯреАрдорд╛рдЗрдЬрд╝рд░ рд░рд┐рд▓реАрдЬрд╝, рд╕рдВрд╕реНрдХрд░рдг 3.0 рд╕реЗ рд╢реБрд░реВ, рдПрдХ рдмрдбрд╝реА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдПрдХ рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдпреЛрдЬрдирд╛ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░реЗрдВ!
[рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ:
рд╡рд┐рдЬреБрдЕрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдЯреНрдпреВрдирд┐рдВрдЧ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди (VST) рдЖрд░реЗрдЦ рдПрд╕рдХреНрдпреВрдПрд▓ рдкрд╛рда рдХреЛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдЖрд░реЗрдЦ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рдмрд╛рдзрд╛рдПрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рддреНрдпрдХреНрд╖ рдФрд░ рдЧрд░реНрднрд┐рдд рдХрд╛рд░реНрдЯреНрд░рд┐рдЬ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдХрдИ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЗред ]


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рд▓реЗрдВ:

SELECT COUNT (*) FROM a, b, c WHERE b.val2 = 100 AND a.val1 = b.id AND b.val1 = c.id; 

рдХреЙрд▓рдо b.id рдФрд░ c.id рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВред DB рдЕрдиреБрдХреВрд▓рдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдпрд╣ рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:



рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рд▓рд╛рд▓ рд░реЗрдЦрд╛рдПрдБ, рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд╣рддреА рд╣реИрдВ рдХрд┐ рд╕рдВрдмрдВрдз "рдХрдИ рд╕реЗ рдХрдИ" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╢реНрди: "рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╣реИ?"

рдЗрд╕ "рдХреНрд╡реЗрд░реА рдЯреНрд░реА" рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдЗрд╖реНрдЯрддрдо рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
  1. рд╕рдмрд╕реЗ рдЪрдпрдирд╛рддреНрдордХ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред
  2. рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЕрдзреАрдирд╕реНрде рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ JOIN рдЪрд▓рд╛рдПрдВ
  3. рдпрджрд┐ рдирд╣реАрдВ, рддреЛ JOIN рдХреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ


рдЗрд╕ рдЖрд░реЗрдЦ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╣реИред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдмреА рдореЗрдВ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдПрдл рдкреНрд░рддреАрдХ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреНрд╡реЗрд░реА рдореЗрдВ рдЪрдпрди рдорд╛рдирджрдВрдб "b.val2 = 100" рд╣реИред
рдареАрдХ рд╣реИ, рдЖрдЗрдП рдЯреЗрдмрд▓ рдмреА рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рд╣рдо рдЕрдкрдиреА рднрд╡рд┐рд╖реНрдп рдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВ? "рдЕрдзреАрдирд╕реНрде" рдХреМрди рд╣реИ рдФрд░ "рдореБрдЦреНрдп" рдХреМрди рд╣реИ? рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? .. Oracle рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рдирд┐рдВрдЧ рдореЗрдВ рд╕рдорд╛рди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИред рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рдУрд░реЗрдХрд▓ рдиреЗ рдпрд╣ рдирд┐рд░реНрдгрдп рдХреНрдпреЛрдВ рд▓рд┐рдпрд╛ рдФрд░ рджреВрд╕рд░реЗ рдиреЗ рдирд╣реАрдВ? DB рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдпрд╣рд╛рдБ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИрдВред
рдбреАрдмреА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рдкрд╛рд╕ рд╡реАрдПрд╕рдЯреА рдЖрд░реЗрдЦ рдкрд░ рд╡рд░реНрддрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдиреЗ рдХреА рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╢рд╛рдВрдд рдХреНрд╖рдорддрд╛ рд╣реИ (рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ!)ред



рдЕрдм рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдУрд░реЗрдХрд▓ рддрд╛рд▓рд┐рдХрд╛ рдмреА рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЯреЗрдмрд▓ рдП рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рд╕реА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдпреЛрдЬрдирд╛ рдЗрд╖реНрдЯрддрдо рд╣реИ?
рдореМрдЬреВрджрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рдХреБрдЫ рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ
 alter table c add constraint c_pk_con unique (id); alter table b add constraint b_pk_con unique (id); 

рдЖрдЗрдП DB DBizer рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХреНрд╡реЗрд░реА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:



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



рдЖрдк рджреЗрдЦреЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ, рдФрд░ рдУрд░реЗрдХрд▓ рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛ рдХреЛ рдЙрдк-рдЗрд╖реНрдЯрддрдо рд╕реЗ рдЗрд╖реНрдЯрддрдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

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



рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЬреЛрдирд╛рдерди рд▓реБрдИрд╕ рд▓реЗрдЦ www.simple-talk.com/sql/performance/designing-efficient-sql-a-visual-approach рд╕реЗ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕рдореЗрдВ, рдЬреЛрдирд╛рдерди рдЕрдиреБрд░реЛрдз рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ:

 SELECT order_line_data FROM customers cus INNER JOIN orders ord ON ord.id_customer = cus.id INNER JOIN order_lines orl ON orl.id_order = ord.id INNER JOIN products prd1 ON prd1.id = orl.id_product INNER JOIN suppliers sup1 ON sup1.id = prd1.id_supplier WHERE cus.location = 'LONDON' AND ord.date_placed BETWEEN '04-JUN-10' AND '11-JUN-10' AND sup1.location = 'LEEDS' AND EXISTS (SELECT NULL FROM alternatives alt INNER JOIN products prd2 ON prd2.id = alt.id_product_sub INNER JOIN suppliers sup2 ON sup2.id = prd2.id_supplier WHERE alt.id_product = prd1.id AND sup2.location != 'LEEDS') 


рдЬреЛ рд╡реАрдПрд╕рдЯреА рдЖрд░реЗрдЦ рдкрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдпрд╣рд╛рдБ рдХрдИ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЪрдпрдирд╛рддреНрдордХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдЪрд╛рд░реНрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВрдЧреЗ (рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдиреАрдЪреЗ рдиреАрд▓реА рд╕рдВрдЦреНрдпрд╛ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рд╣реИ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдКрдкрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд╕рдВрдмрдВрдзреЛрдВ рдХреА рд░реЗрдЦрд╛рдУрдВ рдкрд░ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ) рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЗрди рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЬреБрдбрд╝рдиреЗ рд╕реЗ рд▓реМрдЯрддреА рд╣реИрдВ)ред



рдЕрдм рд╣рдо рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдУрд░реЗрдХрд▓ рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛?



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



рдпрд╣рд╛рдВ, 4 рдЬрдЧрд╣реЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рдЯреЗрдмрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдХреИрд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдлрд╛рдЗрдирд▓ рдХреЛ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

[рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдЕрдВрдд]

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

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

Source: https://habr.com/ru/post/In206384/


All Articles