SQL Server 2014 рдореЗрдВ рдЗрди-рдореЗрдореЛрд░реА рдУрдПрд▓рдЯреАрдкреАред рднрд╛рдЧ II

рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдордиреЗ рдПрдирд╛рд▓рд┐рдЯрд┐рдХ рдФрд░ рдЯреНрд░рд╛рдВрд╕реЗрдХреНрд╢рдирд▓ рдФрд░ рдПрдкреНрд▓реАрдХреЗрд╢рди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрди-рдореЗрдореЛрд░реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП SQL рд╕рд░реНрд╡рд░ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪ рдХреА, рдЬреЛ рдмрд╛рдж рд╡рд╛рд▓реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ SQL Server 2014 рдореЗрдВ рдЗрди-рдореЗрдореЛрд░реА OLTP (рд╣реЗрдХреЛрдЯрди) рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╡рд╛рдЪрд╛рд░ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕рдореАрдХреНрд╖рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╣реЗрдХреЛрдЯрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ред



рдЪреВрдБрдХрд┐ рд╣рдо рдореЗрдореЛрд░реА рдореЗрдВ рдЯреНрд░рд╛рдВрд╕реЗрдХреНрд╢рдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрд░рд┐рдЪрд┐рдд рдПрд╕реАрдЖрдИрдбреА тАЛтАЛрдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛: рдкрд░рдорд╛рдгреБ, рдЕрдЦрдВрдбрддрд╛, рдЕрд▓рдЧрд╛рд╡ рдФрд░ рдЕрд╡рд╢рд┐рд╖реНрдЯрддрд╛ (рдкреНрд░рднрд╛рд╡), рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрддреНрд░ Iред рдЪреВрдВрдХрд┐ рдпрд╣ рдкреВрд░реНрдг рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рднрд╣реАрди рд╣реИ, DBMS рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдордЭреМрддрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред ред рдпрд╣ рд╢реИрд▓реА рдХрд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдпрд╣ рдЖрджрд░реНрд╢ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, SQL рд╕рд░реНрд╡рд░ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рдЧрдВрджреЗ рдкрдврд╝рдиреЗ (рдлреЙрд░реНрдо рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ: рдкрд╣рд▓рд╛ рд▓реЗрдирджреЗрди рдбреЗрдЯрд╛ рдмрджрд▓рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкрдврд╝рддрд╛ рд╣реИ, рдкрд╣рд▓рд╛ рд░реЛрд▓ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ рдХреЛрдИ рдирд╣реАрдВ рдкрдврд╝рддрд╛ рд╣реИ), рдкрдврд╝реЗ рд╣реБрдП рдкреНрд░рддрд┐рдмрджреНрдз (рд╕рдВрднрд╡рддрдГ рдЧреИрд░-рджреЛрд╣рд░рд╛рдП рдЧрдП рд░реАрдбрд┐рдВрдЧ: рдкрд╣рд▓рд╛ рд▓реЗрдирджреЗрди рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдкрдврд╝рдиреЗ рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░, рдФрд░ рджреВрд╕рд░реА рдмрд╛рд░ рджреВрд╕рд░реА рд▓реЗрди-рджреЗрди рдбреЗрдЯрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрджрд▓реЗ рд╣реБрдП рдкрдврд╝реЗрдЧрд╛), рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рд░реАрдб (рдкрд╣рд▓рд╛ рд▓реЗрди-рджреЗрди рд░рд┐рдХреЙрд░реНрдб рдХреЛ рджреВрд╕рд░реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирдП рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ - рдкреНрд░реЗрдд), рд╕реАрд░рд┐рдпрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп (рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ - рдкреНрд░реЗрдд рдирд╣реАрдВ) рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдирд╛)ред рдПрдХ рдмрд╛рд░, рдЬрдм SQL рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреЗрдЬ 2 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдереЗ, рдХреЗрд╡рд▓ рдкреЗрдЬ рд▓реЙрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рджреЛ рд╕реНрддрд░ рдкрд░реНрдпрд╛рдп рдереЗред рд▓реЗрдЦрди рд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди 7.0 (1998) рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред 2005 рдореЗрдВ, рд╕реНрдиреИрдкрд╢реЙрдЯ рдЕрд▓рдЧрд╛рд╡ рдХреЛ рдЗрди рд╕реНрддрд░реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ, рдПрдХ рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди SQL рд╕рд░реНрд╡рд░ рдХреЛ рд▓реЙрдХрд░ рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд╣реЗрдХреЛрдЯрди рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореБрдЦреНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдореЛрд░реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрд╢рд╛рд╡рд╛рджреА рд╕рдВрдЧрд╛рдорд┐рддрд╛ рд╕рдмрд╕реЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ - рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг tempdb рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдСрдкрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░ рдмрдврд╝рддреА рд╣реБрдИ рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдХреЗ рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Uncommitted рд░рд┐рдХреЙрд░реНрдб рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рддрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдЧрдВрджреЗ рд░реАрдб рдирд╣реАрдВ рд╣реИрдВред рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдХреЗ рджреМрд░рд╛рди рдкреБрд░рд╛рдиреЗ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

Hecaton рд░рд┐рдкреАрдЯреЗрдмрд▓ рд░реАрдб рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ (рдбрд┐рд╕реНрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд) рдХрд┐рд╕реА рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд▓реЗрди-рджреЗрди рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд╣реАрдВ рдлрд┐рд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрджрд┐ рд░рд┐рдХреЙрд░реНрдб рдмрджрд▓ рдЧрдП рд╣реИрдВ, рддреЛ рд▓реЗрди-рджреЗрди рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 41305 "рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдмрд╛рд░-рдмрд╛рд░ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓рддрд╛ [рдирд╛рдо] рдХреЗ рдХрд╛рд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред" Serializable рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИ - рдкреНрд░реЗрдд рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдирджреЗрди рд░рджреНрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рджреЗрд╢реА рд╕рдВрдХрд▓рд┐рдд рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХреЗ рдЯреАрдУрдПрдордЖрдИрд╕реА рдмреНрд▓реЙрдХ рдореЗрдВ рдпрд╛ рдЯреА-рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдХреЗрдд рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ - рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT, рдЬреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рд▓рд┐рдП UnCommitted / Committed рдХреЛ рдЙрдард╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдпрд╣ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд░рд┐рд╡рд╛рдЬ рд╣реИ



SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRAN UPDATE dbo.UserSession SET ShoppingCartId=3 WHERE SessionId=4
      
      







рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА Msg 41333, рд▓реЗрд╡рд▓ 16, рд╕реНрдЯреЗрдЯ 1, рд▓рд╛рдЗрди 3

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрди-рджреЗрди рдореЗрдВ рдореЗрдореЛрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реНрдб рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рддрд╣рдд рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: repeatableRead рд▓реЗрди-рджреЗрди, Serializable рд▓реЗрди-рджреЗрди, рдФрд░ рд▓реЗрди-рджреЗрди рдЬреЛ рдПрдХреНрд╕реЗрд╕ рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ RepableRead рдпрд╛ Serializable рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред



T-SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ рд╕рдВрдХреЗрдд рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



 BEGIN TRAN UPDATE dbo.UserSession WITH (SNAPSHOT) SET ShoppingCartId=3 WHERE SessionId=4 UPDATE dbo.ShoppingCart WITH (SNAPSHOT) SET TotalPrice=100.00 WHERE ShoppingCartId=3 COMMIT (1 row(s) affected) (1 row(s) affected)
      
      







рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдореЗрдореЛрд░реА рдЕрдиреБрдХреВрд▓рд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдкрдврд╝реЗрдВ рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдСрдЯреЛрдХреЙрдорд┐рдЯ (рдПрдХрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ) рд▓реЗрдирджреЗрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред

рдЗрд╕реА рд╕рдордп, рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдиреНрдпреВрдирддрдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



 BEGIN TRAN INSERT dbo.ShoppingCart VALUES (5,500,GETUTCDATE(),50.5) SELECT resource_type, resource_description, object_name(resource_associated_entity_id), request_mode, request_type, request_status FROM sys.dm_tran_locks WHERE request_session_id = @@SPID
      
      







рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Hecaton рдЯреЗрдмрд▓ рдкрд░ рдХреЗрд╡рд▓ рд╕реНрдХреАрдорд╛ рд╕реНрдерд┐рд░рддрд╛ рдХреЛ "рд▓рдЯрдХрд╛" рджреЗрддрд╛ рд╣реИред рдХреЛрдИ X рдФрд░ IX рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:





рдЪрд┐рддреНрд░ 1



рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдпрд╛рдж рдХрд░реЗрдВ рдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди рдбрд┐рд╕реНрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╕реЗрдЯ рдХреЛ рдкреНрд░реАрдлрд┐рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рд▓реЗрдирджреЗрди рджреЛрд╣рд░рд╛рдПрдВ:



 CREATE TABLE dbo.ShoppingCart_Disk ( ShoppingCartId int not null primary key, UserId int not null, CreatedDate datetime2 not null, TotalPrice money, INDEX ixUserid nonclustered (UserId)) ... BEGIN TRAN INSERT dbo.ShoppingCart_Disk VALUES (5,500,GETUTCDATE(),50.5) SELECT resource_type, resource_description, case resource_type when 'object' then object_name(resource_associated_entity_id) else cast(resource_associated_entity_id as sysname) end, resource_associated_entity_id, request_mode, request_type, request_status FROM sys.dm_tran_locks WHERE request_session_id = @@SPID
      
      







рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдВрддрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ:





Fig.2



рдиреНрдпреВрдирддрдо рдЕрд╡рд░реЛрдз Hecaton рдХреЗ рд╕реНрдкрд╖реНрдЯ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрджрд┐ рдУрдПрд▓рдЯреАрдкреА рд╢реИрд▓реА рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдореЛрд░реА рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рддред рдХрдИ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЗ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд▓реЗрдирджреЗрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рддрд╛рд▓реЗ рдпрд╛ рднреМрддрд┐рдХ рдХреБрдВрдбреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ / рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╕рднреА рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рдЬреАрддрддреЗ рд╣реИрдВред рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рдПрдХ рдирдП рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рд░ рдЪреАрдЬ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдзрдХреЗрд▓рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗрдЧреА рдХрд┐ рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред рд╡реИрд╕реЗ, рд╡реЗ рдЕрдХреНрд╕рд░ рд╕рд╡рд╛рд▓ рдкреВрдЫрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╣реЗрдХреЛрдЯрди рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рдВрдЯрд┐рдд рд╕рднреА рдореЗрдореЛрд░реА рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ: Msg 701, рд╕реНрддрд░ 17, рд░рд╛рдЬреНрдп 103ред рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдкреВрд▓ 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ' рдореЗрдВ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЖрдорддреМрд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред SQL рд╕рд░реНрд╡рд░ рд╕реНрдореГрддрд┐ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдкрд░ рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рдПрдХ рд╕реНрддреВрдк рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдкреБрдирд░рд╛рд░рдВрдн (CTP рдХреЗ рд╡рд┐рдкрд░реАрдд) рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдФрд░ рд╕рд╣рдХрд╛рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЬрд╛рдВрдЪ рдФрд░ рдмрд╛рдж рдХреЗ рд╡рд┐рд▓реЛрдкрди рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдХрдо рд╣реЛрдиреЗ рдкрд░ рд╕рдорд░реНрдкрд┐рдд рд╕реНрдЯреНрд░реАрдо рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддреА рд╣реИ

рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ? рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕рд╣реА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

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

рдкреНрд░рджрд░реНрд╢рди рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕)ред рдЖрдк рд╕рдВрд╕рд╛рдзрди рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЗрдХреНрдЯрди рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 CREATE RESOURCE POOL mem_optpool WITH (MAX_MEMORY_PERCENT =   ) EXEC sp_xtp_bind_db_resource_pool 'mydatabase', 'mem_optpool'
      
      





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

 select type, name, memory_node_id, pages_kb/1024 as pages_MB from sys.dm_os_memory_clerks where type like '%xtp%'
      
      





рдкрд╣рд▓рд╛ рдХреЙрдорд░реЗрдб рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рд╣реЛрдЧрд╛, рдЕрдВрддрд┐рдо (рдореЗрдореЛрд░реА_рдиреЛрдб = 64) рдЖрд╡рдВрдЯрд┐рдд рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ MEMORY_OPTIMIZED_DATA рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИрдВред



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



 select m1.ShoppingCartId, m2.UserId, d.CreatedDate, d.TotalPrice from ShoppingCart m1 join ShoppingCart_Disk d on m1.ShoppingCartId = d.ShoppingCartId join UserSession m2 on d.ShoppingCartId = m2.ShoppingCartId delete from ShoppingCart insert ShoppingCart select * from ShoppingCart_Disk update d set TotalPrice = m.TotalPrice from ShoppingCart_Disk d join ShoppingCart m on d.ShoppingCartId = m.ShoppingCartId where m.UserID <= 100
      
      





рд▓рд┐рдкрд┐ рез



рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреЗрд╡рд▓ рдЗрди-рдореЗрдореЛрд░реА рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ SCHEMABINDING рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ EXECUTE AS CALLER рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдореГрддрд┐ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рд╡рд┐рдХрд▓реНрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ: OWNER рдХреЗ рд░реВрдк рдореЗрдВ, 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛_рдирд╛рдо' рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдБрдЪреЗрдВ рдпрд╛ SELF (рдирд┐рд░реНрдорд╛рддрд╛) рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдБрдЪреЗрдВред рдЕрдиреНрдп рд╕реАрдорд╛рдПрдБ рд╣реИрдВ - BOL , тАЬрдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБтАЭ рджреЗрдЦреЗрдВред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ ANSI SQL рдорд╛рдирдХ рд╕реЗ BEGIN ATOMIC рдмреНрд▓реЙрдХ рд╣реИ, рдФрд░ рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ T-SQL рдореЗрдВ рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИред рдпрд╣ BEGIN TRAN рд╕реЗ рднрд┐рдиреНрди рд╣реИ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд▓реЗрдирджреЗрди рдореЗрдВ TRY / CATCH рдФрд░ ROLLBACK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ SET XACT_ABORT ON рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рд╣реИрдВред рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдкрд░рд┐рд╡рд╣рди рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░ = рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣реИрдВ REPEATABLEREAD | рдЕрдиреБрдХреНрд░рдорд┐рдХ рдФрд░ рднрд╛рд╖рд╛, рдЬреЛ sys.languages тАЛтАЛрд╕реЗ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рджрд┐рдирд╛рдВрдХ | рд╕рдордп рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрджреЗрд╢ рднрд╛рд╖рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред



 CREATE PROCEDURE dbo.usp_InsertSampleCarts @StartId int, @InsertCount int WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english') IF @StartId is null SELECT @StartId = isnull(MAX(ShoppingCartId), 0) + 1 FROM dbo.ShoppingCart DECLARE @i int = 0 WHILE @i < @InsertCount BEGIN INSERT INTO dbo.ShoppingCart VALUES (@StartId + @i, RAND() * 1000, GETUTCDATE(), NULL) SET @i += 1 END END
      
      





рд▓рд┐рдкрд┐ реи



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



рд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреБрдВрдЬреА рдкреНрд░рджрд░реНрд╢рди рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдЧреНрд░рд╣рдг рд╡рд┐рдзрд┐ рдХреА рдПрдХ рд╕рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдЧреА, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рд╕реНрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ:



 CREATE PROCEDURE dbo.usp_InsertSampleCarts_Disk @StartId int = null, @InsertCount int AS BEGIN IF @StartId is null SELECT @StartId = isnull(MAX(ShoppingCartId), 0) + 1 FROM dbo.ShoppingCart DECLARE @i int = 0 WHILE @i < @InsertCount BEGIN INSERT INTO dbo.ShoppingCart_Disk VALUES (@StartId + @i, RAND() * 1000, GETUTCDATE(), NULL) SET @i += 1 END END
      
      





рд▓рд┐рдкрд┐ рей



рдФрд░ рдПрдХ рд▓рд╛рдЦ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдбрд╛рд▓реЗрдВ:



 SET NOCOUNT ON; DBCC FREEPROCCACHE WITH NO_INFOMSGS; DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS exec dbo.usp_InsertSampleCarts null, 1000000 exec dbo.usp_InsertSampleCarts_Disk @InsertCount = 1000000
      
      







рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ:





3 рдЪрд┐рддреНрд░



рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ SQL рд╕рд░реНрд╡рд░ 2014 рджреЗрд╢реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕реНрд╡рдд: рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпреЛрдЬрдирд╛ рддрдп рд╣реЛ рдЧрдИ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдБрдШрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдЬреНрдЮрд╛рдд рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдиреЗ (рдирдИ рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдЬрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░реАрдХреЙрдореНрдкреИрдХреНрдЯ, рдмреИрдХрдЕрдк рдиреЛрдб рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЖрджрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдЬрд┐рддрдирд╛ рддрд╛рдЬрд╝рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрддрдирд╛ рд╣реА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпреЛрдЬрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЖрдБрдХрдбрд╝реЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рднрд╛рдЧ рд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрджреНрдпрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдиреНрдпреБрдЕрд▓ рд╕реНрдЯреЗрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕ рдпрд╛ sp_updatestats рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╣рдореЗрд╢рд╛ рд╕реНрдореГрддрд┐-рдЕрдиреБрдХреВрд▓рд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ (рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░) рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИред



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



 declare @lsn nvarchar(46) = (select max([Current LSN]) from sys.fn_dblog(null, null)) exec dbo.usp_InsertSampleCarts_Disk @InsertCount = 100 select * from sys.fn_dblog(null, NULL) where [Current LSN] > @lsn order by [Current LSN] desc select count(1), sum([Log Record Length]) from sys.fn_dblog(null, NULL) where [Current LSN] > @lsn set @lsn = (select max([Current LSN]) from sys.fn_dblog(null, null)) exec dbo.usp_InsertSampleCarts null, 100 select * from sys.fn_dblog(null, NULL) where [Current LSN] > @lsn order by [Current LSN] desc select count(1), sum([Log Record Length]) from sys.fn_dblog(null, NULL) where [Current LSN] > @lsn
      
      









рдЪрд┐рддреНрд░ 4



рдФрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрди-рдореЗрдореЛрд░реА рдЯреЗрдмрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ 100 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдореНрдорд┐рд▓рди LOP_HK рдкреНрд░рдХрд╛рд░ (рд▓реЙрдЧ рдСрдкрд░реЗрд╢рди рд╣реЗрдХреЛрдЯрди) рдХреЗ рд▓реЙрдЧ рдореЗрдВ рд╕рд┐рд░реНрдл рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдореЗрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдП рдЕрд╡рд┐рд╡рд╛рджрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрдпрд╛ рдкреНрд░рдХрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдореИрдВрдиреЗ рдХреЗрд▓реЗрди рдбреЗрд▓рд╛рдиреЗ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди рдПрд▓рдПрд╕рдПрди рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЕрдВрдЬреАрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рддреАрд╕рд░реЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рд╕реЗ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред 4ред



 SELECT [current lsn], [transaction id], operation, operation_desc, tx_end_timestamp, total_size, object_name(table_id) AS TableName FROM sys.fn_dblog_xtp(null, null) WHERE [Current LSN] = '00000027:000001dd:0002' SELECT [current lsn], [transaction id], operation, operation_desc, tx_end_timestamp, total_size, object_name(table_id) AS TableName FROM sys.fn_dblog_xtp(null, null) WHERE [Current LSN] = '00000027:000001dd:0001'
      
      









рдЪрд┐рддреНрд░рд╛ 5



рдкрд╣рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, 102 рд░рд┐рдХреЙрд░реНрдб рд╣реЛрддреЗ рд╣реИрдВ: рдЯреАрдПрдХреНрд╕ рд╢реБрд░реВ рдХрд░реЗрдВ, 100 рдЖрд╡реЗрд╖рдг, рдХрдорд┐рдЯред рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЙрдирдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ (рдЪрд┐рддреНрд░ 4 рдХрд╛ рджреВрд╕рд░рд╛ рдФрд░ рдЪреМрдерд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ) рдбрд┐рд╕реНрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ> 10 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рдЧреИрд░-рдЯрд┐рдХрд╛рдК рддрд╛рд▓рд┐рдХрд╛ (DURABILITY = SCHEMA_ONLY) рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдИ рдЬрд░реНрдирд▓рд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрдЧреАред



All Articles