เจนเจพเจ‚, เจฎเฉ‡เจฐเจพ เจชเฉเจฐเจพเจฃเจพ เจฒเฉˆเจชเจŸเจพเจช เจคเฉเจนเจพเจกเฉ‡ เจ‰เจคเจชเจพเจฆเจจ เจธเจฐเจตเจฐ เจจเจพเจฒเฉ‹เจ‚ เจ•เจˆ เจ—เฉเจฃเจพ เจœเจผเจฟเจ†เจฆเจพ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจนเฉˆ

เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจ‰เจน เจธเจผเจฟเจ•เจพเจ‡เจคเจพเจ‚ เจนเจจ เจœเฉ‹ เจฎเฉˆเจ‚ เจธเจพเจกเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจคเฉ‹เจ‚ เจธเฉเจฃเฉ€เจ†เจ‚ เจนเจจเฅค เจธเจญ เจคเฉ‹เจ‚ เจฆเจฟเจฒเจšเจธเจช เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเฉฑเจš เจจเจฟเจ•เจฒเจฟเจ†, เจ‡เฉฑเจ• เจฒเฉฐเจฌเฉ€ เจœเจพเจ‚เจš เจจเฉ‚เฉฐ เจœเจจเจฎ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ. เจ…เจธเฉ€เจ‚ 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 เจจเฉ‚เฉฐ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจฒเฉŒเจ— เจเจ‚เจŸเจฐเฉ€ เจฆเฉ‡ เจญเฉŒเจคเจฟเจ• เจ…เฉฐเจค เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค เจฎเฉ‹เจŸเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจธเจผเจนเจฟเจฐ เจฆเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเฉฑเจกเฉ‡, เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจŸเจฐเฉฑเจ• เจจเฉ‚เฉฐ เจšเจฒเจพเจ‡เจ†, เจ…เจคเฉ‡ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ เจ‡เจน เจธเจ•เฉ‚เจŸเจฐเจพเจ‚ 'เจคเฉ‡ เจชเฉ€เจœเจผเจพ เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจตเจพเจฒเฉ‡ เจฒเฉ‹เจ•เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฌเฉœเฉ€ เจฌเฉ‡เจšเฉˆเจจเฉ€ เจจเจพเจฒ เจชเจ›เจพเฉœ เจ—เจฟเจ† เจธเฉ€ - เจฅเฉเจฐเฉเจชเฉเฉฑเจŸ เจ‡เฉฑเจฅเฉ‡ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจธเจฟเจฐเจซ เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ•เฉ‹เจˆ เจตเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจŸเฉ‹เจฐเฉ‡เจœ, เจญเจพเจตเฉ‡เจ‚ เจ‡เจธเจฆเฉ€ เจ•เฉ€เจฎเจค เจตเจฟเฉฑเจš เจ•เจฟเฉฐเจจเฉ‡ เจตเฉ€ เจœเจผเฉ€เจฐเฉ‹ เจนเฉ‹เจฃ, เจฒเฉ‡เจŸเฉˆเจ‚เจธเฉ€ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจธเจฅเจพเจจเจ• SSD เจจเฉ‚เฉฐ เจนเจฐเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

(เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เจน เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจ•เจฟ เจฎเฉˆเจ‚ เจเฉ‚เจ  เจฌเฉ‹เจฒเจฟเจ† - เจฎเฉˆเจ‚ เจฆเฉ‹เจตเจพเจ‚ เจฅเจพเจตเจพเจ‚ 'เจคเฉ‡ เจŸเจฟเจ•เจพเจŠเจคเจพ เจตเจฟเฉฑเจš เจฆเฉ‡เจฐเฉ€ เจ•เฉ€เจคเฉ€ เจธเฉ€เฅค เจฌเจฟเจจเจพเจ‚ เจฆเฉ‡เจฐเฉ€ เจฆเฉ‡ เจŸเจฟเจ•เจพเจŠเจคเจพ เจฆเฉ‡ เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ:
เจกเฉˆเจธเจ•เจŸเจพเจช - 39 เจธเจ•เจฟเฉฐเจŸ, 15K tr/sec, 0.065ms/io roundtrip
PROD - 360 เจธเจ•เจฟเฉฐเจŸ, 1600 เจŸเจฐ/เจธเจ•เจฟเฉฐเจŸ, 0.6 เจฎเจฟ
เจฎเฉˆเจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจธเฉ€ เจ•เจฟ เจ‡เจน เจฌเจนเฉเจค เจคเฉ‡เจœเจผ เจธเฉ€)

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฎเจพเจฎเฉ‚เจฒเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ‡ เจจเจพเจฒ เจฐเฉ€เจฎเฉˆเจจ เจœเจผเฉ€เจŸเจพ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ‡ เจฎเจพเจฎเฉ‚เจฒเฉ€ เจœเจผเฉ€เจฐเฉ‹ เจจเจพเจฒ เจจเจœเจฟเฉฑเจ  เจฐเจนเฉ‡ เจนเจพเจ‚เฅค เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจฟเจ†เจ‚เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจตเจฟเฉฑเจš, เจ‡เจน เจตเฉฑเจ–เจฐเฉ€ เจธเฉ€. เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจ‰เจน เจธเจนเฉ€ เจธเจจ, เจ…เจคเฉ‡ เจ•เจพเจฐเฉ‹เจฌเจพเจฐเฉ€ เจคเจฐเจ• เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจฆเจพเจนเจฐเจฃ เจคเฉ‹เจ‚ เจนเจŸเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพเฅค เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจนเจฟเจธเจพเจธ เจนเฉ‹เจ‡เจ† เจ•เจฟ เจฎเฉˆเจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเฉเฉฑเจŸ เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ†เจชเจฃเจพ เจ–เฉเจฆ เจฒเจฟเจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ - เจœเฉ‹ เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ - เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจ‡เจน 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, เจธเจญ เจ•เฉเจ เจ•เจพเจซเจผเฉ€ เจธเฉ€, เจ‡เฉฑเจ• vCPU 'เจคเฉ‡ เจคเฉ‡เจœเจผ เจ…เจคเฉ‡ เจนเฉŒเจฒเฉ€ เจธเจฐเจตเจฐ CPU = 100 เจฆเฉ‹เจตเจพเจ‚ 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจฆเฉŒเจฐเจพเจจ. เจฎเฉˆเจ‚ Pi เจจเฉฐเจฌเจฐ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจŸเฉˆเจธเจŸ เจฒเจฟเจ† - เจŸเฉˆเจธเจŸ เจจเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ‰เจนเฉ€ เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเจ–เจพเจเฅค เจ•เจพเจฒเฉ‡ เจœเจพเจฆเฉ‚ เจฆเฉ€ เจ—เฉฐเจง เจคเฉ‡เจœเจผ เจ…เจคเฉ‡ เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹เจนเฉเฉฐเจฆเฉ€ เจ—เจˆเฅค

เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจกเฉ€เจˆเจตเฉ€ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจชเจนเฉเฉฐเจš เจ—เจฟเจ†, เจฎเฉˆเจ‚ เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจ–เฉ‡เจกเจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพเฅค เจ‡เจน เจธเจพเจนเจฎเจฃเฉ‡ เจ†เจ‡เจ† เจ•เจฟ เจนเฉ‹เจธเจŸ เจคเฉ‹เจ‚ เจนเฉ‹เจธเจŸ เจคเฉฑเจ• vMotion เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ "เจ‡เจฒเจพเจœ" เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ‡เฉฑเจ• "เจคเฉ‡เจœเจผ" เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ "เจนเฉŒเจฒเฉ€" เจตเจฟเฉฑเจš เจตเฉ€ เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เจน เจนเฉˆ - เจ•เฉเจ เจฎเฉ‡เจœเจผเจฌเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ... เจชเจฐ... เจจเจนเฉ€เจ‚เฅค เจ•เฉเจ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจนเฉŒเจฒเฉ€ เจธเฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ A, เจชเจฐ เจนเฉ‹เจธเจŸ B 'เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจธเฉ€เฅค เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ, เจ‡เจธ เจฆเฉ‡ เจ‰เจฒเจŸ, A' เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจธเฉ€ เจ…เจคเฉ‡ B 'เจคเฉ‡ เจนเฉŒเจฒเฉ€ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจธเฉ€! เจฆเฉ‹เจตเฉ‡เจ‚ "เจคเฉ‡เจœเจผ" เจ…เจคเฉ‡ "เจนเฉŒเจฒเฉ€" เจฎเจธเจผเฉ€เจจเจพเจ‚ เจ…เจ•เจธเจฐ เจฎเฉ‡เจœเจผเจฌเจพเจจ 'เจคเฉ‡ เจ˜เฉเฉฐเจฎเจฆเฉ€เจ†เจ‚ เจธเจจ!

เจ‰เจธ เจชเจฒ เจคเฉ‹เจ‚, เจนเจตเจพ เจตเจฟเฉฑเจš เจ—เฉฐเจงเจ• เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจ—เฉฐเจง เจธเฉ€. เจ†เจ–เจผเจฐเจ•เจพเจฐ, เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ (เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจชเฉˆเจš) เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจจเจนเฉ€เจ‚ เจœเจพ เจธเจ•เจฆเจพ - เจ†เจ–เจฐเจ•เจพเจฐ, เจ‡เจน vMotion เจจเจพเจฒ "เจคเฉ‡เจœเจผ" เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจ—เจฟเจ†. เจชเจฐ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจ•เจพเจฐเจจ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจจเฉ‚เฉฐ เจตเฉ€ เจจเจนเฉ€เจ‚ เจฆเจฟเฉฑเจคเจพ เจœเจพ เจธเจ•เจฆเจพ - เจ†เจ–เจฐเจ•เจพเจฐ, เจ‡เจธ เจตเจฟเฉฑเจš "เจคเฉ‡เจœเจผ" เจ…เจคเฉ‡ "เจนเฉŒเจฒเฉ€" เจฆเฉ‹เจตเฉ‡เจ‚ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจจเจพเจฒ เจนเฉ€, เจ‡เจน เจฒเฉ‹เจก เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจจเจนเฉ€เจ‚ เจธเฉ€ - เจฎเฉˆเจ‚ เจฎเฉ‡เจœเจผเจฌเจพเจจ 'เจคเฉ‡ เจ‡เฉฑเจ• "เจนเฉŒเจฒเฉ€" เจฎเจธเจผเฉ€เจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ, เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ•เฉเจ เจตเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€.

เจจเจฟเจฐเจพเจธเจผเจพ เจฆเฉ‡ เจ•เจพเจฐเจจ, เจฎเฉˆเจ‚ เจธเจฟเจธเจฟเจจเจŸเจฐเจจเจฒเจœเจผ เจคเฉ‹เจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธ เจเจ•เจธเจชเจฒเฉ‹เจฐเจฐ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ SQL เจธเจŸเฉˆเจ• เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ†. เจนเฉŒเจฒเฉ€ เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจฒเจพเจˆเจจ เจจเฉ‡ เจคเฉเจฐเฉฐเจค เจฎเฉ‡เจฐเฉ€ เจ…เฉฑเจ– เจซเฉœ เจฒเจˆ:

ntoskrnl.exe!KeSynchronizeExecution+0x5bf6
ntoskrnl.exe!KeWaitForMultipleObjects+0x109d
ntoskrnl.exe!KeWaitForMultipleObjects+0xb3f
ntoskrnl.exe!KeWaitForSingleObject+0x377
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 เจ—เฉเจฃเจพ (!!!) เจนเฉˆ. เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจœเจฟเฉฑเจค เจธเฉ€: เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจพเฉฑเจซเจŸ เจ…เจคเฉ‡ VMware เจธเจฎเจฐเจฅเจจ เจตเจฟเจšเจ•เจพเจฐ เจซเจธเจฃ เจฆเจพ เจ•เฉ‹เจˆ เจ–เจผเจคเจฐเจพ เจจเจนเฉ€เจ‚ เจธเฉ€ เจคเจพเจ‚ เจœเฉ‹ เจ‰เจน เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ 'เจคเฉ‡ เจคเฉ€เจฐ เจšเจฒเจพ เจธเจ•เจฃเฅค

เจซเจฟเจฐ เจคเจฐเฉฑเจ•เฉ€ เจฐเฉเจ• เจ—เจˆ - เจ›เฉเฉฑเจŸเฉ€เจ†เจ‚, เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจฎเจพเจฎเจฒเฉ‡, เจตเจพเจ‡เจฐเจฒ เจนเจฟเจธเจŸเฉ€เจฐเฉ€เจ† เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจฌเฉ‹เจ เจตเจฟเฉฑเจš เจคเจฟเฉฑเจ–เฉ€ เจตเจพเจงเจพ. เจฎเฉˆเจ‚ เจ…เจ•เจธเจฐ เจ†เจชเจฃเฉ‡ เจธเจพเจฅเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจœเจพเจฆเฉ‚ เจฆเฉ€ เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเจพ, เจชเจฐ เจ•เจˆ เจตเจพเจฐ เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจธเฉ€ เจ•เจฟ เจ‰เจน เจนเจฎเฉ‡เจธเจผเจพ เจฎเฉ‡เจฐเฉ‡ 'เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจธเจจ - เจ‡เจน เจฌเจฟเจ†เจจ เจ•เจฟ VMware เจ•เฉ‹เจก เจจเฉ‚เฉฐ 10-20 เจ—เฉเจฃเจพ เจนเฉŒเจฒเฉ€ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจฌเจนเฉเจค เจญเจฟเจ†เจจเจ• เจธเฉ€เฅค

เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ–เฉ‹เจฆเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจœเฉ‹ เจฎเฉˆเจจเฉ‚เฉฐ เจนเฉŒเจฒเฉ€ เจ•เจฐ เจฐเจฟเจนเจพ เจธเฉ€. เจ•เจˆ เจตเจพเจฐ เจ‡เจน เจฎเฉˆเจจเฉ‚เฉฐ เจœเจพเจชเจฆเจพ เจธเฉ€ เจ•เจฟ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจนเฉฑเจฒ เจฒเฉฑเจญ เจฒเจฟเจ† เจนเฉˆ - เจนเฉŒเจŸ เจชเจฒเฉฑเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ…เจคเฉ‡ เจฌเฉฐเจฆ เจ•เจฐเจจเจพ, เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจœเจพเจ‚ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจ…เจ•เจธเจฐ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ "เจคเฉ‡เจœเจผ" เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจนเจฎเฉ‡เจธเจผเจพ เจฒเจˆ เจจเจนเฉ€เจ‚เฅค เจชเจฐ เจœเฉ‹ เจธเฉฑเจš เจจเจฟเจ•เจฒเจฟเจ† เจ‰เจน เจ‡เจน เจนเฉˆ เจ•เจฟ เจฌเจพเจนเจฐ เจœเจพ เจ•เฉ‡ เจชเจนเฉ€เจ 'เจคเฉ‡ เจฆเจธเจคเจ• เจฆเฉ‡เจฃ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจนเฉˆ - เจ…เจฐเจฅเจพเจค, เจคเจฌเจฆเฉ€เจฒเฉ€ เจ•เฉ‹เจˆ เจตเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ

เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฎเฉ‡เจฐเฉ‡ เจ…เจฎเจฐเฉ€เจ•เฉ€ เจธเจพเจฅเฉ€เจ†เจ‚ เจจเฉ‡ เจ…เจšเจพเจจเจ• เจฎเฉ‚เจฒ เจ•เจพเจฐเจจ เจฒเฉฑเจญ เจฒเจฟเจ†เฅค

เจนเจพเจ‚, เจฎเฉ‡เจฐเจพ เจชเฉเจฐเจพเจฃเจพ เจฒเฉˆเจชเจŸเจพเจช เจคเฉเจนเจพเจกเฉ‡ เจ‰เจคเจชเจพเจฆเจจ เจธเจฐเจตเจฐ เจจเจพเจฒเฉ‹เจ‚ เจ•เจˆ เจ—เฉเจฃเจพ เจœเจผเจฟเจ†เจฆเจพ เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจนเฉˆ

เจฎเฉ‡เจœเจผเจฌเจพเจจ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจตเจฟเฉฑเจš เจตเฉฑเจ–เจฐเฉ‡ เจธเจจ!

  • เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจ‡เจน เจ•เฉ‹เจˆ เจตเฉฑเจกเฉ€ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจชเจฐ: เจœเจฆเฉ‹เจ‚ เจ•เจฟเจธเฉ‡ 'เจจเฉ‡เจŸเจฟเจต' เจนเฉ‹เจธเจŸ เจคเฉ‹เจ‚ 'เจตเฉฑเจ–เจฐเฉ€' เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจตเจพเจฒเฉ‡ เจนเฉ‹เจธเจŸ เจตเฉฑเจฒ เจœเจพเจ‚เจฆเฉ‡ เจนเฉ‹, VMware เจจเฉ‚เฉฐ GetTimePrecise เจจเจคเฉ€เจœเฉ‡ เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจ•เฉ‹เจˆ เจ…เจœเจฟเจนเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ SQL เจธเจฐเจตเจฐ เจตเจพเจ‚เจ— เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจฒเฉฑเจ–เจพเจ‚ เจตเจพเจฐ เจธเจนเฉ€ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจชเจฐ เจ‡เจน เจกเจฐเจพเจ‰เจฃเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ SQL เจธเจฐเจตเจฐ เจนเจฎเฉ‡เจธเจผเจพ เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ (เจธเจฟเฉฑเจŸเจพ เจฆเฉ‡เจ–เฉ‹)

เจชเจฐ เจ…เจœเจฟเจนเฉ‡ เจ•เฉ‡เจธ เจนเจจ เจœเจฆเฉ‹เจ‚ เจ‡เจน เจฐเฉ‡เจ• เจธเจ–เจผเจค เจนเจฟเฉฑเจŸ เจ•เจฐเจฆเจพ เจนเฉˆ. เจ…เจคเฉ‡ เจซเจฟเจฐ เจตเฉ€, เจนเจพเจ‚, เจชเจนเฉ€เจ 'เจคเฉ‡ เจŸเฉˆเจช เจ•เจฐเจ•เฉ‡ (VM เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจ•เฉเจ เจฌเจฆเจฒ เจ•เฉ‡) เจฎเฉˆเจ‚ VMware เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ€ 'เจฎเฉเฉœ เจ—เจฃเจจเจพ' เจ•เจฐเจจ เจฒเจˆ เจฎเจœเจฌเฉ‚เจฐ เจ•เฉ€เจคเจพ, เจ…เจคเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจนเฉ‹เจธเจŸ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฎเจธเจผเฉ€เจจ เจฆเฉ€ 'เจจเฉ‡เจŸเจฟเจต' เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฌเจฃ เจ—เจˆเฅค

เจซเฉˆเจธเจฒเฉ‡ เจฆเจพ

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

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ TSC เจฆเฉ‡ เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐเฉ‹เจ‚ TSC เจจเฉ‚เฉฐ เจชเฉœเฉเจนเจจเจพ เจญเฉŒเจคเจฟเจ• เจฎเจธเจผเฉ€เจจ เจฆเจพ TSC เจฎเฉเฉฑเจฒ เจตเจพเจชเจธ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ TSC เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฆเฉ‡ เจ…เฉฐเจฆเจฐเฉ‹เจ‚ เจฒเจฟเจ–เจฃ เจฆเจพ เจ•เฉ‹เจˆ เจชเฉเจฐเจญเจพเจต เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจตเจฟเฉฑเจš เจฎเจพเจˆเจ—เจฐเฉ‡เจŸ เจ•เจฐเจจเจพ, เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉเจ…เฉฑเจคเจฒ เจธเจฅเจฟเจคเฉ€ เจคเฉ‹เจ‚ เจฎเฉเฉœ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ, เจœเจพเจ‚ เจธเจจเฉˆเจชเจธเจผเจพเจŸ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจœเจพเจฃเจพ TSC เจจเฉ‚เฉฐ เจฒเจ—เจพเจคเจพเจฐ เจ›เจพเจฒ เจฎเจพเจฐเจจ เจฆเจพ เจ•เจพเจฐเจจ เจฌเจฃเจฆเจพ เจนเฉˆเฅค เจ•เฉเจ เจ—เจฟเจธเจŸ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ…เจธเจซเจฒ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจœเจพเจ‚ เจนเฉ‹เจฐ เจŸเจพเจˆเจฎเจ•เฉ€เจชเจฟเฉฐเจ— เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจจ, เจœเจฆเฉ‹เจ‚ TSC เจตเจฐเจšเฉเจ…เจฒเจพเจˆเจœเฉ‡เจธเจผเจจ เจ…เจฏเฉ‹เจ— เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ…เจคเฉ€เจค เจตเจฟเฉฑเจš, เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจ•เจˆ เจตเจพเจฐ เจ‰เจนเจจเจพเจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เจฐเจจ เจฒเจˆ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจœเฉ‹ TSC เจจเฉ‚เฉฐ เจ…เจ•เจธเจฐ เจชเฉœเฉเจนเจฆเฉ‡ เจนเจจ, เจชเจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ‰เจคเจชเจพเจฆเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจšเฉเจ…เจฒ TSC เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจตเจฟเฉฑเจš เจ•เจพเจซเฉ€ เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ เจตเฉ€ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ‰เจน เจฎเจพเจช เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเจฟเจธ เจฒเจˆ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจธเจฎเฉ‡เจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจŸเฉ€เจ• เจธเจฐเฉ‹เจค เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ

monitor_control.virtual_rdtsc = เจ—เจฒเจค

เจธเจฟเฉฑเจŸเจพ

เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจผเจพเจ‡เจฆ เจ‡เฉฑเจ• เจธเจตเจพเจฒ เจนเฉˆ: SQL เจ‡เฉฐเจจเฉ€ เจตเจพเจฐ GetTimePrecise เจจเฉ‚เฉฐ เจ•เจฟเจ‰เจ‚ เจ•เจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ?

เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฒ SQL เจธเจฐเจตเจฐ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจคเจฐเจ• เจ‡เจน เจ•เจนเจฟเฉฐเจฆเจพ เจนเฉˆเฅค SQL เจฒเจ—เจญเจ— เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจนเจฟเจ•เจพเจฐเฉ€ เจธเจนเจฟเจฎเจคเฉ€ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ เจนเจฐเฉ‡เจ• เจฅเฉเจฐเฉˆเจก เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚-เจธเจฎเฉ‡เจ‚ 'เจคเฉ‡ "เจฆเฉ‡เจฃเจพ" เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจœเจ—เฉเจนเจพ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ? เจœเจฟเฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจ•เฉเจฆเจฐเจคเฉ€ เจ‰เจกเฉ€เจ• เจนเฉˆ - เจฒเจพเจ• เจœเจพเจ‚ เจ†เจˆ.เจ“. เจ เฉ€เจ• เจนเฉˆ, เจชเจฐ เจ•เฉ€ เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจ•เฉฐเจชเจฟเจŠเจŸเฉ‡เจธเจผเจจเจฒ เจฒเฉ‚เจชเจธ เจจเฉ‚เฉฐ เจธเจชเจฟเจจ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚? เจซเจฟเจฐ เจธเจชเฉฑเจธเจผเจŸ เจ…เจคเฉ‡ เจฒเจ—เจญเจ— เจธเจฟเจฐเจซ เจธเจฅเจพเจจ เจฆเฉเจญเจพเจธเจผเฉ€เจ เจตเจฟเฉฑเจš เจนเฉˆ (เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฆเฉเจญเจพเจธเจผเฉ€เจ เจจเจนเฉ€เจ‚ เจนเฉˆ), เจ…เจ—เจฒเฉ‡ เจฌเจฟเจ†เจจ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ.

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, SQL เจธเจฐเจตเจฐ เจธเจผเฉเฉฑเจง เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ— เจจเฉ‡เจฒเจฟเฉฐเจ— เจฒเจˆ เจจเจนเฉ€เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจชเจฐ เจฒเฉ‚เจชเจธ เจœเฉ‹ เจนเจฐ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ…เจธเจฅเจพเจˆ เจŸเฉ‡เจฌเจฒเจพเจ‚ (เจœเฉ‹ เจคเฉเจฐเฉฐเจค เจ•เฉˆเจธเจผ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ) เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸ เจ•เฉ€เจคเฉ‡ เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค

เจตเฉˆเจธเฉ‡, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ NATIVELY COMPILED เจตเจฟเฉฑเจš เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจŸเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจน เจธเจฎเจพเจ‚ เจฎเฉฐเจ—เจฃเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจ—เจคเฉ€ 10 เจ—เฉเจฃเจพ เจตเฉฑเจง เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ•เฉ‹เจ†เจชเจฐเฉ‡เจŸเจฟเจต เจฎเจฒเจŸเฉ€เจŸเจพเจธเจ•เจฟเฉฐเจ— เจฌเจพเจฐเฉ‡ เจ•เฉ€? เจชเจฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจ•เฉ‹เจก เจฒเจˆ เจธเจพเจจเฉ‚เฉฐ SQL เจตเจฟเฉฑเจš เจชเฉเจฐเฉ€เจฎเจชเจŸเฉ€เจต เจฎเจฒเจŸเฉ€เจŸเจพเจธเจ•เจฟเฉฐเจ— เจ•เจฐเจจเฉ€ เจชเฉˆเจ‚เจฆเฉ€ เจธเฉ€เฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹