เด…เดคเต†, เดŽเดจเตเดฑเต† เดชเดดเดฏ เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเตŠเดกเด•เตเดทเตป เดธเต†เตผเดตเดฑเดฟเดจเต‡เด•เตเด•เดพเตพ เดชเดฒเดฎเดŸเด™เตเด™เต เดถเด•เตเดคเดฎเดพเดฃเต

เดžเด™เตเด™เดณเตเดŸเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเดพเตป เด•เต‡เดŸเตเดŸ เดชเดฐเดพเดคเดฟเด•เตพ เด‡เดตเดฏเดพเดฃเต. เดเดฑเตเดฑเดตเตเด‚ เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด‚, เด‡เดคเต เด’เดฐเต เดจเต€เดฃเตเดŸ เด…เดจเตเดตเต‡เดทเดฃเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏเดฟเดคเตเดคเต€เตผเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต. VMware-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ SQL เดธเต†เตผเดตเดฑเตเด•เดณเต† เด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

เด…เดคเต†, เดŽเดจเตเดฑเต† เดชเดดเดฏ เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเตŠเดกเด•เตเดทเตป เดธเต†เตผเดตเดฑเดฟเดจเต‡เด•เตเด•เดพเตพ เดชเดฒเดฎเดŸเด™เตเด™เต เดถเด•เตเดคเดฎเดพเดฃเต

เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เดชเตเดฐเตŠเดกเด•เตเดทเตป เดธเต†เตผเดตเตผ เดจเดฟเดฐเดพเดถเดพเดœเดจเด•เดฎเดพเดฏเดฟ เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเดฟเดจเต เดชเดฟเดจเตเดจเดฟเดฒเดพเดฃเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต. เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด• (เดŸเต†เด‚เดชเตเดกเดฟเดฌเดฟเดฏเดฟเดฒเดฒเตเดฒ, เดกเดฟเดฒเต‡เดกเต เดกเตเดฏเต‚เดฑเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏ เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเดฒเตเดฒ):

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 เดฑเต—เดฃเตเดŸเตโ€ŒเดŸเตเดฐเดฟเดชเตเดชเต
PROD - 360 เดธเต†เด•เตเด•เตปเดกเต, 1600 tr/sec, 0.6ms
เด‡เดคเต เดตเดณเดฐเต† เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต)

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เดจเดฟเดธเตเดธเดพเดฐ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฑเต€เดฎเดพเตป เดธเต€เดฑเตเดฑ เดซเด‚เด—เตโ€Œเดทเดจเตเดฑเต† เดจเดฟเดธเตเดธเดพเดฐ เดชเต‚เดœเตเดฏเด™เตเด™เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดŽเดจเตเดจเต† เด•เตŠเดฃเตเดŸเตเดตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เด…เดคเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด…เดตเตผ เดชเดฑเดžเตเดžเดคเต เดถเดฐเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดฌเต‹เดงเตเดฏเดชเตเดชเต†เดŸเตเดŸเต, เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดฏเตเด•เตเดคเดฟเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดŽเดฒเตเดฒเดพ เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฟ. เดšเดฟเดฒ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ, เดŽเดจเดฟเด•เตเด•เต เด…เดตเดฐเตเดŸเต† เด•เต‹เดกเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดตเดฒเดฟเดšเตเดšเต†เดฑเดฟเดฏเดพเดจเตเด‚ เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดŽเดดเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ - เด‡เดคเต เด…เดคเต‡ เดชเตเดฐเดถเตเดจเด‚ เดชเตเดฐเด•เดŸเดฎเดพเด•เตเด•เตเดจเตเดจเต - เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเตฝ เด‡เดคเต 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 เดธเต†เด•เตเด•เตปเดกเต เดŽเดŸเตเด•เตเด•เตเดจเตเดจ เดธเต†เตผเดตเดฑเตเด•เตพ เด‡เดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต - เด•เต‹เดกเต เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเดฒเต‹ เดตเดณเดฐเต† เดธเดพเดตเดงเดพเดจเดคเตเดคเดฟเดฒเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต, เด…เดคเดพเดฏเดคเต, เดชเตเดฐเดถเตเดจเด‚ เด•เดฑเตเดชเตเดชเตเด‚ เดตเต†เดณเตเดชเตเดชเตเด‚ เด†เดฃเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚.

เดžเดพเตป เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดคเดคเต? เดตเดฟเดŽเด‚เดตเต†เดฏเตผ เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต. เด…เดตเดฟเดŸเต† เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต - เดงเดพเดฐเดพเดณเด‚ เดตเดฟเดญเดตเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดฑเต†เดกเดฟ เดŸเตˆเด‚ = 0, เดŽเดฒเตเดฒเดพเด‚ เดฎเดคเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเตเด‚ เดตเต‡เด—เดค เด•เตเดฑเดžเตเดžเดคเตเดฎเดพเดฏ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เดธเดฟเดชเดฟเดฏเต = 100 เด’เดฐเต เดตเดฟเดธเดฟเดชเดฟเดฏเตเดตเดฟเดฒเต† เดŸเต†เดธเตเดฑเตเดฑเต เดธเดฎเดฏเดคเตเดคเต. เดชเตˆ เดŽเดจเตเดจ เดจเดฎเตเดชเตผ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป เดžเดพเตป เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดจเดŸเดคเตเดคเดฟ - เดŸเต†เดธเตเดฑเตเดฑเต เดเดคเต เดธเต†เตผเดตเดฑเดฟเดฒเตเด‚ เดธเดฎเดพเดจ เดซเดฒเด™เตเด™เตพ เด•เดพเดฃเดฟเดšเตเดšเต. เดฌเตเดฒเดพเด•เตเด•เต เดฎเดพเดœเดฟเด•เตเด•เดฟเดจเตเดฑเต† เด—เดจเตเดงเด‚ เด•เต‚เดŸเตเดคเตฝ เดถเด•เตเดคเดฎเดพเดฏเดฟ.

DEV เดซเดพเดฎเดฟเตฝ เดŽเดคเตเดคเดฟเดฏเดชเตเดชเต‹เตพ เดžเดพเตป เดธเต†เตผเดตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เด•เดณเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ vMotion เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเดจเต† "เดธเตเด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป" เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเดฟ, เดŽเดจเตเดจเดพเตฝ เด‡เดคเดฟเดจเต "เดตเต‡เด—เดคเดฏเตเดณเตเดณ" เดธเต†เตผเดตเดฑเดฟเดจเต† "เดธเตเดฒเต‹" เด†เด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เดชเต‹เดฒเต† เดคเต‹เดจเตเดจเตเดจเตเดจเต - เดšเดฟเดฒ เดนเต‹เดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต... เดชเด•เตเดทเต‡... เด‡เดฒเตเดฒ. เดšเดฟเดฒ เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดฎเดจเตเดฆเด—เดคเดฟเดฏเดฟเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽ เดชเดฑเดฏเตเด•, เดชเด•เตเดทเต‡ เดนเต‹เดธเตเดฑเตเดฑเต เดฌเดฟเดฏเดฟเตฝ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดฎเดฑเตเดฑเตŠเดฐเต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป, เดจเต‡เดฐเต†เดฎเดฑเดฟเดšเตเดšเต, เดŽเดฏเดฟเตฝ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฌเดฟเดฏเดฟเตฝ เดตเต‡เด—เดค เด•เตเดฑเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต! "เดตเต‡เด—เดค", "เดธเตเดฒเต‹" เดŽเดจเตเดจเต€ เดฏเดจเตเดคเตเดฐเด™เตเด™เตพ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เด•เดฑเด™เตเด™เดฟเด•เตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต!

เด† เดจเดฟเดฎเดฟเดทเด‚ เดฎเตเดคเตฝ, เดตเดพเดฏเตเดตเดฟเตฝ เดธเตพเดซเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดฎเดฃเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เดชเตเดฐเดถเตเดจเด‚ เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดฟเดฒเต‡เด•เตเด•เต เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเตปเดกเต‹เดธเต เดชเดพเดšเตเดšเตเด•เตพ) - เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด‡เดคเต vMotion เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต โ€œเดตเต‡เด—เดคโ€ เด†เดฏเดฟ เดฎเดพเดฑเดฟ. เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดถเตเดจเด‚ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเต เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด‡เดคเดฟเดจเต โ€œเดตเต‡เด—เดคโ€, โ€œเดธเตเดฒเต‹โ€ เดฎเต†เดทเต€เดจเตเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. เด•เต‚เดŸเดพเดคเต†, เด‡เดคเต เดฒเต‹เดกเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดคเดฒเตเดฒ - เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เด’เดฐเต โ€œเดธเตเดฒเต‹โ€ เดฎเต†เดทเต€เตป เดจเต‡เดŸเดพเตป เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต, เด…เดตเดฟเดŸเต† เด…เดคเดฟเดจเดชเตเดชเตเดฑเด‚ เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ.

เดจเดฟเดฐเดพเดถ เด•เดพเดฐเดฃเด‚, เดžเดพเตป Syinternals-เตฝ เดจเดฟเดจเตเดจเต Process Explorer เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ 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::MakeMiniSOSTthread+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 เดฎเดŸเด™เตเด™เต (!!!). เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดตเดฟเดœเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต: เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚, เดฎเตˆเด•เตเดฐเต‹เดธเต‹เดซเตเดฑเตเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเดฟเดŽเด‚เดตเต†เดฏเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เด•เตเดŸเตเด™เตเด™เดฟเดชเตเดชเต‹เด•เตเดฎเต†เดจเตเดจ เดญเต€เดทเดฃเดฟ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ, เด…เด™เตเด™เดจเต† เด…เดต เดชเดฐเดธเตเดชเดฐเด‚ เด…เดฎเตเดชเดŸเดฏเดพเดณเด™เตเด™เตพ เดคเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดคเตเดŸเตผเดจเตเดจเต เดชเตเดฐเต‹เด—เดคเดฟ เดจเดฟเดฒเดšเตเดšเต - เด…เดตเดงเดฟเด•เตเด•เดพเดฒเด‚, เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด™เตเด™เตพ, เดตเตˆเดฑเตฝ เดนเดฟเดธเตเดฑเตเดฑเต€เดฐเดฟเดฏ, เดœเต‹เดฒเดฟเดญเดพเดฐเดคเตเดคเดฟเตฝ เด•เตเดคเตเดคเดจเต† เดตเตผเดฆเตเดงเดจเดตเต. เดžเดพเตป เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดŽเดจเตเดฑเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เดฐเต‹เดŸเต เดฎเดพเดจเตเดคเตเดฐเดฟเด• เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เดพเดฑเตเดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดšเดฟเดฒเดชเตเดชเต‹เตพ เด…เดตเตผ เดŽเดจเตเดจเต† เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต - เดตเดฟเดŽเด‚เดตเต†เดฏเตผ เด•เต‹เดกเต 10-20 เดฎเดŸเด™เตเด™เต เดฎเดจเตเดฆเด—เดคเดฟเดฏเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ เดตเดณเดฐเต† เดญเดฏเดพเดจเด•เดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดŽเดจเตเดคเดพเดฃเต เดŽเดจเตเดจเต† เดฎเดจเตเดฆเด—เดคเดฟเดฏเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดžเดพเตป เดธเตเดตเดฏเด‚ เด•เตเดดเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเต. เดšเดฟเดฒ เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดžเดพเตป เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดคเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เดคเต‹เดจเตเดจเดฟ - เดนเต‹เดŸเตเดŸเต เดชเตเดฒเด—เตเด•เตพ เด“เดฃเดพเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด“เดซเดพเด•เตเด•เตเดจเตเดจเดคเตเด‚, เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเตเดŸเต† เด…เดณเดตเต‹ เดชเตเดฐเต‹เดธเดธเตเดธเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดฎเต‹ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดฎเต†เดทเต€เดจเต† โ€œเดตเต‡เด—เดคโ€ เด†เด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดฟ. เดŽเดจเตเดจเดพเตฝ เดŽเดจเตเดจเต‡เด•เตเด•เตเด‚ เด…เดฒเตเดฒ. เดชเด•เตเดทเต‡, เดชเตเดฑเดคเตเดคเตเดชเต‹เดฏเดฟ เดšเด•เตเดฐเดคเตเดคเดฟเตฝ เดคเดŸเตเดŸเดฟเดฏเดพเตฝ เดฎเดคเดฟเดฏเต†เดจเตเดจเดคเดพเดฃเต เดธเดคเตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเดคเต - เด…เดคเดพเดฏเดคเต, เดฎเดพเดฑเตเดฑเด‚ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ

เด’เดŸเตเดตเดฟเตฝ, เดŽเดจเตเดฑเต† เด…เดฎเต‡เดฐเดฟเด•เตเด•เตป เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตผ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฎเต‚เดฒเด•เดพเดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ.

เด…เดคเต†, เดŽเดจเตเดฑเต† เดชเดดเดฏ เดฒเดพเดชเตโ€ŒเดŸเต‹เดชเตเดชเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเตŠเดกเด•เตเดทเตป เดธเต†เตผเดตเดฑเดฟเดจเต‡เด•เตเด•เดพเตพ เดชเดฒเดฎเดŸเด™เตเด™เต เดถเด•เตเดคเดฎเดพเดฃเต

เด†เดคเดฟเดฅเต‡เดฏเดฐเตเดŸเต† เด†เดตเตƒเดคเตเดคเดฟเดฏเดฟเตฝ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดฃเตเดŸเต!

  • เดšเดŸเตเดŸเด‚ เดชเต‹เดฒเต†, เด‡เดคเต เด’เดฐเต เดตเดฒเดฟเดฏ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ. เดชเด•เตเดทเต‡: เด’เดฐเต 'เดจเต‡เดฑเตเดฑเต€เดตเต' เดนเต‹เดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต 'เดตเตเดฏเดคเตเดฏเดธเตโ€Œเดค' เด†เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ, VMware GetTimePrecise เดซเดฒเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เดฃเด‚.
  • เดšเดŸเตเดŸเด‚ เดชเต‹เดฒเต†, SQL เดธเต†เตผเดตเตผ เดชเต‹เดฒเต† เดธเต†เด•เตเด•เดจเตเดฑเดฟเตฝ เดฆเดถเดฒเด•เตเดทเด•เตเด•เดฃเด•เตเด•เดฟเดจเต เดคเดตเดฃ เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดธเดฎเดฏเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดคเต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ.
  • เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เดญเดฏเดพเดจเด•เดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ SQL เดธเต†เตผเดตเตผ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เด‡เดคเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ (เด‰เดชเดธเด‚เดนเดพเดฐเด‚ เด•เดพเดฃเตเด•)

เดŽเดจเตเดจเดพเตฝ เดˆ เดฑเต‡เด•เตเด•เต เดถเด•เตเดคเดฎเดพเดฏเดฟ เด…เดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด•เต‡เดธเตเด•เดณเตเดฃเตเดŸเต. เดŽเดจเตเดจเดฟเดŸเตเดŸเตเด‚, เด…เดคเต†, เดตเต€เดฒเดฟเตฝ เดŸเดพเดชเตเดชเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† (เดตเดฟเดŽเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†) เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป 'เดตเต€เดฃเตเดŸเตเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป' เดžเดพเตป เดตเดฟเดŽเด‚เดตเต†เดฏเดฑเดฟเดจเต† เดจเดฟเตผเดฌเดจเตเดงเดฟเดšเตเดšเต, เดจเดฟเดฒเดตเดฟเดฒเต† เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด†เดตเตƒเดคเตเดคเดฟ เดฎเต†เดทเต€เดจเตเดฑเต† 'เดจเต‡เดฑเตเดฑเต€เดตเต' เด†เดตเตƒเดคเตเดคเดฟเดฏเดพเดฏเดฟ เดฎเดพเดฑเดฟ.

เดคเต€เดฐเตเดฎเดพเดจเด‚

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

เดจเดฟเด™เตเด™เตพ เดŸเดฟเดŽเดธเตโ€ŒเดธเดฟเดฏเตเดŸเต† เดตเดฟเตผเดšเตเดšเตเดตเดฒเตˆเดธเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดตเดฟเตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดŸเดฟเดŽเดธเตโ€Œเดธเดฟ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเต เดซเดฟเดธเดฟเด•เตเด•เตฝ เดฎเต†เดทเต€เดจเตเดฑเต† เดŸเดฟเดŽเดธเตโ€Œเดธเดฟ เดฎเต‚เดฒเตเดฏเด‚ เดจเตฝเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดตเดฟเตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดŸเดฟเดŽเดธเตโ€Œเดธเดฟ เดŽเดดเตเดคเตเดจเตเดจเดคเต เดซเดฒเดฎเตเดฃเตเดŸเดพเด•เตเด•เดฟเดฒเตเดฒ. เดฎเดฑเตเดฑเตŠเดฐเต เดนเต‹เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เดฎเตˆเด—เตเดฐเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต‹, เดธเดธเตเดชเต†เตปเดกเต เดšเต†เดฏเตเดค เด…เดตเดธเตเดฅเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต‹, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดชเตเดจเดƒเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต‹, TSC เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เด•เตเดคเดฟเด•เตเด•เดพเตป เด‡เดŸเดฏเดพเด•เตเด•เตเดจเตเดจเต. เดŸเดฟเดŽเดธเตโ€Œเดธเดฟ เดตเดฟเตผเดšเตเดšเตเดตเดฒเตˆเดธเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เดšเดฟเดฒ เด—เดธเตเดฑเตเดฑเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด•เดฏเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต เดŸเตˆเด‚ เด•เต€เดชเตเดชเดฟเด‚เด—เต เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด•เดฏเต‹ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฎเตเตปเด•เดพเดฒเด™เตเด™เดณเดฟเตฝ, TSC เดชเดคเดฟเดตเดพเดฏเดฟ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดˆ เดธเดตเดฟเดถเต‡เดทเดค เดšเดฟเดฒเดชเตเดชเต‹เตพ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เดตเต†เตผเดšเตเดตเตฝ TSC เดฏเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดจเดฟเดฒเดตเดฟเดฒเต† เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เดณเดฟเตฝ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเดฟเตฝ เดคเดคเตเดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เด…เดณเดตเตเด•เตพ เดจเดŸเดคเตเดคเตเดฎเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เดˆ เดธเดตเดฟเดถเต‡เดทเดค เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต

monitor_control.virtual_rdtsc = เดคเต†เดฑเตเดฑเต

เดคเต€เดฐเตเดฎเดพเดจเด‚

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดšเต‹เดฆเตเดฏเดฎเตเดฃเตเดŸเดพเด•เดพเด‚: เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต SQL เดชเดฒเดชเตเดชเต‹เดดเตเด‚ GetTimePrecise เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต?

เดŽเดจเตเดฑเต† เดชเด•เตเด•เตฝ SQL เดธเต†เตผเดตเตผ เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเต เด‡เดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดฒเต‹เดœเดฟเด•เต เด‡เดคเต เดชเดฑเดฏเตเดจเตเดจเต. เดŽเดธเตโ€Œเด•เตเดฏเตเดŽเตฝ เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดธเดนเด•เดฐเดฃ เด•เตบเด•เดฑเตปเดธเดฟเดฏเตเดณเตเดณ เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเต, เด…เดตเดฟเดŸเต† เด“เดฐเต‹ เดคเตเดฐเต†เดกเตเด‚ เด•เดพเดฒเดพเด•เดพเดฒเด™เตเด™เดณเดฟเตฝ "เดจเตฝเด•เดฃเด‚". เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดเดฑเตเดฑเดตเตเด‚ เดจเดฒเตเดฒ เดธเตเดฅเดฒเด‚ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต? เดธเตเดตเดพเดญเดพเดตเดฟเด• เด•เดพเดคเตเดคเดฟเดฐเดฟเดชเตเดชเต เด‰เดณเตเดณเดฟเดŸเดคเตเดคเต - เดฒเต‹เด•เตเด•เต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด.เด’. เดถเดฐเดฟ, เดชเด•เตเดทเต‡ เดจเดฎเตเดฎเตพ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต‡เดทเดฃเตฝ เดฒเต‚เดชเตเดชเตเด•เตพ เดธเตเดชเดฟเดจเตเดจเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเดฒเต‹? เด…เดชเตเดชเต‹เตพ เดตเตเดฏเด•เตเดคเดตเตเด‚ เดเดคเดพเดฃเตเดŸเต เด’เดฐเต‡เดฏเตŠเดฐเต เดธเตเดฅเดฒเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเดฟเดฒเดพเดฃเต (เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด’เดฐเต เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเดฒเตเดฒ), เด…เดŸเตเดคเตเดค เดชเตเดฐเดธเตเดคเดพเดตเดจ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚.

เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ, เดถเตเดฆเตเดงเดฎเดพเดฏ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดจเต†เดฏเดฟเดฒเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ SQL เดธเต†เตผเดตเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดฑเดฟเดฒเตเดฒ, เด‡เดคเต เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเดคเตเดคเดฐเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดŸเต‡เดฌเดฟเดณเตเด•เดณเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฒเต‚เดชเตเดชเตเด•เตพ (เด…เดคเต เด‰เดŸเดจเดŸเดฟ เด•เดพเดทเต† เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚) เด•เต‹เดกเต เดตเดณเดฐเต† เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เดณเตเดŸเต† เด’เดฐเต เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

เดตเดดเดฟเดฏเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดซเด‚เด—เตโ€Œเดทเตป เดจเต‡เดฑเตเดฑเต€เดตเต เด†เดฏเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตโ€Œเดคเดพเตฝ, เด…เดคเต เดธเดฎเดฏเด‚ เดšเต‹เดฆเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เดตเต‡เด—เดค 10 เดฎเดŸเด™เตเด™เต เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต. เดธเดนเด•เดฐเดฃ เดฎเตพเดŸเตเดŸเดฟเดŸเดพเดธเตโ€Œเด•เดฟเด‚เด—เดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดฎเต‹? เดŽเดจเตเดจเดพเตฝ เดจเต‡เดฑเตเดฑเต€เดตเต เด†เดฏเดฟ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดค เด•เต‹เดกเดฟเดจเต เดžเด™เตเด™เตพ SQL-เตฝ เดชเตเดฐเต€เดŽเด‚เดชเตเดฑเตเดฑเต€เดตเต เดฎเตพเดŸเตเดŸเดฟเดŸเดพเดธเตเด•เดฟเด‚เด—เต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•