рд╣рд╛рдВ, рдореЗрд░рд╛ рдкреБрд░рд╛рдирд╛ рд▓реИрдкрдЯреЙрдк рдЖрдкрдХреЗ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИ

рдпреЗ рд╡реЗ рджрд╛рд╡реЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╕реБрдиреЗ рдереЗред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рд╣реЛ рдЧрдпрд╛, рдПрдХ рд▓рдВрдмреА рдЬрд╛рдВрдЪ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред рдпрд╣ SQL рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ VMware рдкрд░ рд╕реНрдкрд┐рди рдХрд░рддреЗ рд╣реИрдВред



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

set nocount on
create table _t (v varchar(100))
declare @n int=300000
while @n>0 begin 
  insert into _t select 'What a slowpoke!'
  delete from _t
  set @n=@n-1
  end
GO
drop table _t

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

(рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЭреВрда рдмреЛрд▓рд╛ рдерд╛ - рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдореЗрдВ рджреЗрд░реА рдХреА рдереАред рдмрд┐рдирд╛ рджреЗрд░реА рдХреЗ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛:
рдбреЗрд╕реНрдХрдЯреЙрдк - 39 рд╕реЗрдХрдВрдб, 15K tr / рд╕реЗрдХрдВрдб, 0.065ms / io рд░рд╛рдЙрдВрдбрдЯреНрд░рд┐рдк
PROD - 360 рд╕реЗрдХрдВрдб, 1600 tr / sec, 0.6ms
I рдмрд╣реБрдд рдЬрд▓реНрдж рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП)


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

create function dbo.isPrime (@n bigint)
returns int
as
  begin
  if @n = 1 return 0
  if @n = 2 return 1
  if @n = 3 return 1
  if @n % 2 = 0 return 0
  declare @sq int
  set @sq = sqrt(@n)+1 -- check odds up to sqrt
  declare @dv int = 1
  while @dv < @sq 
    begin
	set @dv=@dv+2
	if @n % @dv = 0 return 0
	end
  return 1
  end
GO
declare @dt datetime set @dt=getdate()
select dbo.isPrime(1000000000000037)
select datediff(ms,@dt,getdate()) as ms
GO

рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рд╕рдВрдЦреНрдпрд╛ рдХреА рд╕рд╛рджрдЧреА рдХрд╛ рд╕рддреНрдпрд╛рдкрди 6-7-8 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдерд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд░, рдЪреЗрдХ рдореЗрдВ 25-40 рд╕реЗрдХрдВрдб рд▓рдЧреЗред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐, рдХреЛрдИ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рдереЗ рдЬрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди 14 рд╕реЗрдХрдВрдб рдХрд╛ рд╣реЛрдЧрд╛ - рдХреЛрдб рдиреЗ рдмрд╣реБрдд рддреЗрдЬ рдпрд╛ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдпрд╛рдиреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА, рдЪрд▓реЛ рдХрд╣рддреЗ рд╣реИрдВ, рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрджред

рдореИрдВрдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛? VMware рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧреАред рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ - рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрди рдереЗ, рддреИрдпрд╛рд░ рд╕рдордп = 0, рд╕рдм рдХреБрдЫ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛, рддреЗрдЬ рдФрд░ рдзреАрдореА рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╕реАрдкреАрдпреВ = 100 рдПрдХ рд╡реАрд╕реАрдкреАрдпреВ рдкрд░ред рдореИрдВрдиреЗ рдкрд╛рдИ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдпрд╛ - рдкрд░реАрдХреНрд╖рдг рдиреЗ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдПред рдЗрд╕рдореЗрдВ рдХрд╛рд▓реЗ рдЬрд╛рджреВ рдХреА рдЧрдВрдз рдЕрдзрд┐рдХ рдереАред

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

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

рд╣рддрд╛рд╢рд╛ рд╕реЗ рдмрд╛рд╣рд░, рдореИрдВрдиреЗ Sysinternals рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдФрд░ SQL рд╕реНрдЯреИрдХ рдХреЛ рджреЗрдЦрд╛ред : рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдорд╢реАрдиреЛрдВ рдкрд░, рд▓рд╛рдЗрди рддреБрд░рдВрдд рдЕрдкрдиреЗ рдирдЬрд░ рдкрдбрд╝реА

! NTOSKRNL.EXE KeSynchronizeExecution + 0x5bf6
NTOSKRNL.EXE KeWaitForMultipleObjects + 0x109d!
NTOSKRNL.EXE KeWaitForMultipleObjects + 0xb3f!
NtosKrnx3 0!
ntoskrnl.exe! KeQuerySystemTimePrecise + 0x881 <- !!!
NTOSKRNL.EXE! ObDereferenceObjectDeferDelete + 0x28a
NTOSKRNL.EXE! KeSynchronizeExecution + 0x2de2
sqllang.dll! CDiagThreadSafe :: PxlvlReplace + 0x1a20
... рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛
sqldk.dll! SystemThread :: MakeMiniSOSThread + 0xa54
Kernel32.dll! BaseThreadInitThunk + 0x14
ntdll.dll! RtlUserThreadStart + 0x21


рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдерд╛ред рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рдерд╛:

    class Program
    {
        [DllImport("kernel32.dll")]
        static extern void GetSystemTimePreciseAsFileTime(out FILE_TIME lpSystemTimeAsFileTime);

        [StructLayout(LayoutKind.Sequential)]
        struct FILE_TIME
        {
            public int ftTimeLow;
            public int ftTimeHigh;
        }

        static void Main(string[] args)
        {
            for (int i = 0; i < 16; i++)
            {
                int counter = 0;

                var stopwatch = Stopwatch.StartNew();

                while (stopwatch.ElapsedMilliseconds < 1000)
                {
                    GetSystemTimePreciseAsFileTime(out var fileTime);
                    counter++;
                }

                if (i > 0)
                {
                    Console.WriteLine("{0}", counter);
                }
            }
        }
    }

рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдордВрджреА рджрд┐рдЦрд╛рдИ - "рддреЗрдЬрд╝" рдорд╢реАрдиреЛрдВ рдкрд░ рдпрд╣ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 16-18 рдорд┐рд▓рд┐рдпрди рдЪрдХреНрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдзреАрдореЗ рд▓реЛрдЧреЛрдВ рдкрд░ рдпрд╣ рдбреЗрдврд╝ рдорд┐рд▓рд┐рдпрди, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ 700 рд╣рдЬрд╛рд░ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдВрддрд░ 10-20 рдЧреБрдирд╛ (!!!) рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЫреЛрдЯреА рдЬреАрдд рдереА: рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, Microsoft рдФрд░ VMware рд╕рдорд░реНрдерди рдХреЗ рдмреАрдЪ рдлрдВрд╕рдиреЗ рдХрд╛ рдХреЛрдИ рдЦрддрд░рд╛ рдирд╣реАрдВ рдерд╛, рддрд╛рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рддреАрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред

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

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

рдЕрдВрдд рдореЗрдВ, рдореЗрд░реЗ рдЕрдореЗрд░рд┐рдХреА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдЕрдЪрд╛рдирдХ рдореВрд▓ рдХрд╛рд░рдг рдкрд╛рдпрд╛ред



рд╣реЛрд╕реНрдЯ рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ!
  • рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди: рдЬрдм рдПрдХ 'рдореВрд▓' рдореЗрдЬрдмрд╛рди рд╕реЗ 'рдЕрд▓рдЧ' рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╡реАрдПрдорд╡реЗрдпрд░ рдХреЛ рдЧреЗрдЯрдЯрд╛рдЗрдордкрд┐рд╕рд╛рдЗрдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ рдЬреЛ SQL рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рд╛рдЦреЛрдВ рдмрд╛рд░ рд╕рдЯреАрдХ рд╕рдордп рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
  • рд▓реЗрдХрд┐рди рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ SQL рд╕рд░реНрд╡рд░ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдирд┐рд╖реНрдХрд░реНрд╖ рджреЗрдЦреЗрдВ)

рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд░реЗрдХ рджрд░реНрджрдирд╛рдХ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рднреА, рд╣рд╛рдБ, рдкрд╣рд┐рдпрд╛ рдХреЛ рдЯреИрдк рдХрд░рдХреЗ (рд╡реАрдПрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рдХрд░) рдореИрдВрдиреЗ рд╡реАрдорд╡реЗрдпрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ 'рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд' рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛, рдФрд░ рд╡рд░реНрддрдорд╛рди рд╣реЛрд╕реНрдЯ рдХреА рдЖрд╡реГрддреНрддрд┐ рдорд╢реАрди рдХреА 'рдореВрд▓' рдЖрд╡реГрддреНрддрд┐ рдмрди рдЧрдИред

рдлреЗрд╕рд▓рд╛


www.vmware.com/files/pdf/techpaper/Timekeeping-In-VirtualMachines.pdf

When you disable virtualization of the TSC, reading the TSC from within the virtual machine returns the physical machineтАЩs TSC value, and writing the TSC from within the virtual machine has no effect. Migrating the virtual machine to another host, resuming it from suspended state, or reverting to a snapshot causes the TSC to jump discontinuously. Some guest operating systems fail to boot, or exhibit other timekeeping problems, when TSC virtualization is disabled. In the past, this feature has sometimes been recommended to improve performance of applications that read the TSC frequently, but performance of the virtual TSC has been improved substantially in current products. The feature has also been recommended for use when performing measurements that require a precise source of real time in the virtual machine.

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░ Monitor_control.virtual_rdtsc = FALSE рдЬреЛрдбрд╝реЗрдВ



рдирд┐рд╖реНрдХрд░реНрд╖


рдЖрдк рд╢рд╛рдпрдж рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ: рдХреНрдпрд╛ SQL рдХреЙрд▓ GetTimePrecise рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдмрд╛рд░?

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

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

рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЛ NATIVELY COMPILED рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдЧрддрд┐ 10 рдХреЗ рдХрд╛рд░рдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╣рдХрд╛рд░реА рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ SQL рдореЗрдВ PREEMPTIVE MULTITASKING рдХрд░рдирд╛ рдерд╛ред

All Articles