ืืึธืก ืืขื ืขื ืคึผืื ืงื ืื ืืขื ืืช ืืื ืืขืืขืจื ืคืื ืืื ืืืขืจ ืืขืืืขืืึธืคึผืขืจืก. ืืืก ืืขืจืกืืข ืืื ืืขืจืกืื ืืข ืืื ืื ืืืก ืืื ืืื ืืจืืืกืืขืืืืื ืืื ืืืช, ืืืืก ืืื ืืขืืจืขื ืื ื ืืื ืืข ืืืืกืคืืจืฉืื ื. ืืืจ ืืืขืื ืจืขืื ืืืขืื SQL ืกืขืจืืืขืจืก ืืืึธืก ืืืจ ืืืืคื ืืืืฃ VMware.
ืึทืงืืืึทืืื, ืขืก ืืื ืืจืื ื ืฆื ืขื ืฉืืจ ืึทื ืื ืคึผืจืึธืืืงืฆืืข ืกืขืจืืืขืจ ืืื ืืึธืืคึผืืึทืกืื ืืื ืืขืจ ืื ืืึทืคึผืืึทืคึผ. ืืืกืคืืจื (ื ืืฉื ืืืืฃ tempdb ืืื ื ืืฉื ืืืืฃ ืึท ืืึทืืึทืืืืก ืืื ืืืืืื ืืืจืึทืืืืืื ืขื ืืืืึทืื) ืื ืงืึธื:
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/sec, 0.065ms /io roundtrip
ืคึผืจืึธื - 360 ืกืขืงืื ืืขืก, 1600 ืืจ / ืกืขืง, 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 ืกืขืงืื ืืขืก - ืืขืจ ืงืึธื ืืขืืจืืขื ืึธืืขืจ ืืืืขืจ ืืขืฉืืืื ื ืึธืืขืจ ืืืืขืจ ืกืืึธืืื, ืืึธืก ืืื, ืืขืจ ืคึผืจืึธืืืขื ืืื ืืขืืืขื, ืืึธืื ืก ืืึธืื, ืฉืืืึทืจืฅ ืืื ืืืืึทืก.
ืืืืก ืืื ืืื ืืขืืืื? ืืขืืืืื ื VMware ืืขืืจืืงืก. ืึทืืฅ ืืื ืืขืืืขื ืืื ืืึธืจื - ืขืก ืืื ืืขืืืขื ืึท ืฉืขืคืข ืคืื โโืจืขืกืืจืกื, ืืจืืื ืฆืืื = 0, ืขืก ืืื ืืขืืืขื ืืขื ืื ืคืื ืึทืืฅ, ืืขืฉืึทืก ืื ืคึผืจืึธืืข ืืืืฃ ืืืืืข ืฉื ืขื ืืื ืคึผืึทืืขืืขื ืกืขืจืืืขืจืก ืงืคึผื = 100 ืืืืฃ ืืืื ืืืงืคึผื. ืืื ืืขื ืืืขื ืึท ืคึผืจืึธืืข ืฆื ืจืขืืขื ืขื ืื ื ืืืขืจ Pi - ืื ืคึผืจืึธืืข ืืขืืืืื ืื ืืขืืืข ืจืขืืืืืึทืื ืืืืฃ ืงืืื ืกืขืจืืืขืจ. ืืขืจ ืฉืืขืงื ืคืื ืฉืืืืจืฆืข ืืืฉืืฃ ืืื ืืขืืืืจื ืฉืืืจืงืขืจ ืืื ืฉืืืจืงืขืจ.
ืึทืืึธื ืืื ืืึทื ืฆื ืื DEV ืคืึทืจื, ืืื ืกืืึทืจืืขื ืคึผืืืืื ื ืืื ืื ืกืขืจืืืขืจืก. ืขืก ืคืืจืงืขืจื ืืืืก ืึทื vMotion ืคืื ืืึทืืขืืึธืก ืฆื ืืึทืืขืืึธืก ืงืขื ืขื "ืืืืื" ืึท ืกืขืจืืืขืจ, ืึธืืขืจ ืขืก ืงืขื ืืืื ืืึทืื ืึท "ืฉื ืขื" ืกืขืจืืืขืจ ืืื ืึท "ืคึผืึทืืขืืขื". ืขืก ืืืื ื ืืื ืืึธืก ืืื ืขืก - ืขืืืขืืข ืืื ืืช ืืึธืื ืึท ืคึผืจืึธืืืขื ... ืึธืืขืจ ... ื ืื. ืขืืืขืืข ืืืืจืืืขื ืืึทืฉืื ืืื ืืขืืืขื ืคึผืึทืืขืืขื ืืืืฃ ืืึทืืขืืึธืก, ืืึธืื ื, ืึธืืขืจ ืืขืืจืืขื ืืขืฉืืืื ื ืืืืฃ ืืึทืืขืืึธืก ื. ืืื ืื ืื ืืขืจ ืืืืจืืืึทื ืืึทืฉืื, ืคืึทืจืงืขืจื, ืืขืืจืืขื ืืขืฉืืืื ื ืืืืฃ ื ืืื ืกืืึธืื ืึทืจืึธืคึผ ืืืืฃ ื! ืืืืืข "ืฉื ืขื" ืืื "ืคึผืึทืืขืืขื" ืืืฉืื ืขื ืืขื ืขื ืึธืคื ืกืคึผืื ื ืื ื ืืืืฃ ืื ืืึทืืขืืึธืก!
ืคืื ืืขื ืขื ืืืืขื ื ืื ืืื ืืื ืืขืจ ืืืคืื ืืขืืื ื ืืขืืื ืืขืจืข ืจืื ืคืื ืฉืฐืขืื. ื ืึธื ืึทืืข, ืื ืคึผืจืึธืืืขื ืงืขื ื ืืฉื ืืืื ืึทืืจืืืืึทืืึทื ืฆื ืื ืืืืจืืืึทื ืืึทืฉืื (ืืืื ืืึธืื ืคึผืึทืืฉืึทื, ืคึฟืึทืจ ืืืึทืฉืคึผืื) - ื ืึธื ืึทืืข, ืขืก ืืื ืืขืืืืจื "ืฉื ืขื" ืืื ืืืืึธืืืึธื. ืึธืืขืจ ืื ืคึผืจืึธืืืขื ืงืขื ื ืืฉื ืืืื ืึทืืจืืืืึทืืึทื ืฆื ืืขืจ ืืึทืืขืืึธืก - ื ืึธื ืึทืืข, ืขืก ืงืขื ืืึธืื ืืืืืข "ืฉื ืขื" ืืื "ืคึผืึทืืขืืขื" ืืืฉืื ืขื. ืืืื, ืืึธืก ืืื ื ืืฉื ืฉืืึทืืืช ืฆื ืื ืืึทืกืข - ืืื ืืขืจืืื ืฆื ืืึทืงืืืขื ืึท "ืคึผืึทืืขืืขื" ืืึทืฉืื ืืืืฃ ืืขืจ ืืึทืืขืืึธืก, ืืื ืขืก ืืื ืืึธืจื ืืฉื ืืืึท ืึทืืข ืึทืืืฅ ืขืก.
ืคึฟืื ืคืึทืจืฆืืืืืคืืื ื, ืืื ืืึธื ืืฉื Process Explorer ืคึฟืื Sysinternals ืืื ืืขืงืืงื ืืืืฃ ืื 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!ืกืืกืืขื ืคึฟืึธืืขื::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 ืืื (!!!). ืืึธืก ืืื ืฉืืื ืืขืืืขื ืึท ืงืืืื ื ืฆืืื: ืืื ืงืืื ืคืึทื, ืขืก ืืื ืงืืื ืกืึทืงืึธื ืข ืคืื โโืกืืึทืง ืฆืืืืฉื ืืืงืจืึธืกืึธืคื ืืื VMware ืฉืืืฆื ืึทืืื ืึทื ืืื ืืืขืื ืืจืืืขื ืขืจืึธืื ืืืืฃ ืืขืืขืจ ืื ืืขืจืขืจ.
ืืขืจื ืึธื ืคึผืจืึธืืจืขืก ืกืืึทืคึผื - ืืืึทืงืึทืฆืืข, ืืืืืืืง ืขื ืื ืื, ืืืืจืึทื ืืืกืืขืจืืึท ืืื ืึท ืฉืึทืจืฃ ืคืึทืจืืจืขืกืขืจื ืืื ืืืขืจืงืืึธืื. ืืื ืึธืคื ืืขืจืืื ื ืื ืืึทืืืฉ ืคึผืจืึธืืืขื ืฆื ืืืื ืืืจืื, ืึธืืขืจ ืืื ืฆืืื ืขืก ืืขืืืขื ืึทื ืืื ืืืื ื ืืฉื ืืคืืื ืฉืืขื ืืืง ืืืืืื ืืืจ - ืื ืืขืจืงืืขืจืื ื ืึทื VMware ืกืืึธืื ืื ืงืึธื ืืื 10-20 ืืื ืืื ืืขืืืขื ืฆื ืืึทื ืกืืจืึทืก.
ืืื ืืื ืืืืื ืืขืคืจืืืืื ืืืืกืืจืืื ืืืืก ืก'ืืื ืืื ืคืืจืืืื. ืืื ืฆืืื ืขืก ืืขืืืขื ืฆื ืืืจ ืึทื ืืื ืืขืคืื ืขื ืึท ืืืืืื ื - ืงืขืจื ืืื ืึทืืืขืง ืืืืก ืคึผืืึทืื, ืืฉืึทื ืืื ื ืื ืกืืืข ืคืื โโโโืืืงืึธืจื ืึธืืขืจ ืื ื ืืืขืจ ืคืื ืคึผืจืึทืกืขืกืขืจื ืึธืคื ืคืืจืงืขืจื ืื ืืึทืฉืื ืืื ืึท "ืฉื ืขื" ืืืื ืขืจ. ืืืขืจ ื ืืฉื ืืืืฃ ืืืืืืง. ืืืขืจ ืืืึธืก ืืื ืืขืืืขื ืืืช ืืื ืึทื ืขืก ืืื ืืขื ืื ืฆื ืืืื ืืืืก ืืื ืงืืึทืคึผื ืืืืฃ ืื ืจืึธื - ืืึธืก ืืื, ืืืืฉื ืงืืื ืืืืจืืืึทื ืืึทืฉืื ืคึผืึทืจืึทืืขืืขืจ
ืฆืื ืกืืฃ, ืืืื ืืืขืจืืงืื ืขืจ ืืืจืื ืคึผืืืฆืืื ื ืืขืคืื ืขื ืื ืืืึธืจืฆื ืืจืื ื.
ืื ืืื ืืช ืืึธืื ืืืคืขืจื ืืื ืึธืคืืงืืึทื!
- ืืื ืึท ืืขืจืฉื, ืืึธืก ืืื ื ืืฉื ืึท ืืจืืืก ืืึทื ืืืขื. ืึธืืขืจ: ืืืขื ืืืจ ืืึทื ืคืื ืึท 'ืืขืืืืจื' ืืึทืืขืืึธืก ืฆื ืึท ืืึทืืขืืึธืก ืืื ืึท 'ืื ืืขืจืข' ืึธืคืืงืืึทื, VMware ืืืื ืกืืจืืืขืจื ืื GetTimePrecise ืจืขืืืืืึทื.
- ืืื ืึท ืืขืจืฉื, ืืึธืก ืืื ื ืืฉื ืึท ืคึผืจืึธืืืขื, ืกืืึทืื ืขืก ืืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืึทื ืจืืงืืืขืก ืื ืคึผืื ืืืขื ืฆืืื ืืืืืึทื ื ืคืื ืืื ืคึผืขืจ ืกืขืงืื ืืข, ืืื SQL ืกืขืจืืืขืจ.
- ืึธืืขืจ ืืึธืก ืืื ื ืืฉื ืกืงืขืจื, ืืืืึทื ืื SQL ืกืขืจืืืขืจ ืืื ื ืืฉื ืฉืืขื ืืืง ืืึธื ืืึธืก (ืืขื ืืกืงื ื)
ืืืขืจ ืขืก ืืขื ืขื ืงืึทืกืขืก ืืืขื ืืขื ืืจืึทืืืืข ืืืฅ ืฉืืืขืจ. ืืื ื ืึธื, ืืึธ, ืืืจื ืืึทืคึผืื ื ืืืืฃ ืื ืจืึธื (ืืืจื ืืฉืึทื ืืื ื ืขืคึผืขืก ืืื ืื VM ืกืขืืืื ืืก) ืืื ืืขืฆืืืื ืืขื VMware ืฆื 'ืจืืงืึทืืงืืึทืืืื' ืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืืื ืื ืึธืคืืงืืึทื ืคืื ืื ืงืจืึทื ื ืืึทืืขืืึธืก ืืื ืืขืืืืจื ืื 'ืืขืืืืจื' ืึธืคืืงืืึทื ืคืื ืื ืืึทืฉืื.
ืืึทืฉืืื
ืืืขื ืืืจ ืืืกืืืืึทื ืืืืจืืืึทืืืืึทืืืึธื ืคืื ืื TSC, ืืืืขื ืขื ืื TSC ืคึฟืื ืื ืืืืจืืืึทื ืืึทืฉืื ืงืขืจื ืื TSC ืืืขืจื ืคืื ืื ืืฉืืืืช ืืึทืฉืื, ืืื ืฉืจืืืื ืื TSC ืคึฟืื ืื ืืืืจืืืึทื ืืึทืฉืื ืืื ืงืืื ืืืืจืงืื ื. ืืืืจืืืืื ื ืื ืืืืจืืืึทื ืืึทืฉืื ืฆื ืื ืื ืืขืจ ืืึทืืขืืึธืก, ืจืืืืืื ื ืขืก ืคืื ืกืืกืคึผืขื ืืขื ืฉืืึทื, ืึธืืขืจ ืฆืืจืืงืงืืืขื ืฆื ืึท ืืึธืืขื ืืืืื ื ืื TSC ืฆื ืฉืคึผืจืื ืืขื ืืืกืงืึทื ืืื ืืืึทืกืื. ืขืืืขืืข ืืึทืกื ืึธืคึผืขืจืืืืื ื ืกืืกืืขืืขื ืคืึทืจืืึธืื ืฆื ืฉืืืืื, ืึธืืขืจ ืืืกืฉืืขืืื ื ืื ืืขืจืข ืืืืขืงืืคึผืื ื ืคึผืจืึธืืืขืืก ืืืขื TSC ืืืืจืืืึทืืืืึทืืืึธื ืืื ืคืึทืจืงืจืืคึผืื. ืืื ืืขืจ ืคืึทืจืืึทื ืืขื ืืืื, ืืขื ืฉืืจืื ืืื ืืื ืจืขืงืึทืืขื ืืื ืฆื ืคึฟืึทืจืืขืกืขืจื ืื ืคืึธืจืฉืืขืืื ื ืคืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืึธืก ืืืืขื ืขื ืื TSC ืึธืคื, ืึธืืขืจ ืื ืคืึธืจืฉืืขืืื ื ืคืื ืื ืืืืจืืืึทื TSC ืืื ืืืคึผืจืืืื ืืืืืืืืง ืืื ืงืจืึทื ื ืคึผืจืึธืืืงืื. ืืขืจ ืฉืืจืื ืืื ืืืื ืจืขืงืึทืืขื ืืื ืคึฟืึทืจ ื ืืฆื ืืืขื ืคึผืขืจืคืึธืจืืื ื ืืขืืฉืขืจืืึทื ืฅ ืืืึธืก ืืึทืจืคื ืึท ืืขื ืื ืืงืืจ ืคืื ืคืึทืงืืืฉ ืฆืืื ืืื ืื ืืืืจืืืึทื ืืึทืฉืื.
ืืื ืงืืจืฅ, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืืขื ืคึผืึทืจืึทืืขืืขืจ
monitor_control.virtual_rdtsc = ืคืึทืืฉ
ืกืึธืฃ
ืืืจ ืืืกืืึธืืข ืืึธืื ืึท ืงืฉืื: ืคืืจืืืืก ืจืืคื SQL GetTimePrecise ืึทืืื ืึธืคื?
ืืื ืืึธื ื ืื ืืึธืื ืื SQL ืกืขืจืืืขืจ ืืงืืจ ืงืึธื, ืึธืืขืจ ืื ืืึธืืืง ืืืื ืืึธืก. SQL ืืื ืึผืืขื ืึทื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืืื ืงืึธืึธืคึผืขืจืึทืืืืืข ืงืึทื ืงืขืจืึทื ืกื, ืืื ืืขืืขืจ ืคืึธืืขื ืืืื "ืืขืื ืืื" ืคืื ืฆืืื ืฆื ืฆืืื. ืืืื ืืื ืืขืจ ืืขืกืืขืจ ืคึผืืึทืฅ ืฆื ืืึธื ืืึธืก? ืืื ืขืก ืืื ืึท ื ืึทืืืจืืขื ืืืึทืจืื - ืฉืืึธืก ืึธืืขืจ ืืึธ. ืึธืืงืื, ืึธืืขืจ ืืืึธืก ืืืื ืืืจ ืืขื ืขื ืกืคึผืื ื ืื ื ืงืึทืืคึผืืืืืืฉืึทื ืึทื ืืืคึผืก? ืืขืจื ืึธื ืื ืงืืึธืจ ืืื ืืขืจ ืืึธื ืืื ืึผืืขื ืืืืื ืึธืจื ืืื ืืื ืื ืืืขืจืืขืฆืขืจ (ืืึธืก ืืื ื ืืฉื ืืึทืงืข ืึทื ืืืขืจืืขืฆืขืจ), ื ืึธื ืขืงืกืึทืงืืืืื ื ืื ืืืืึทืืขืจ ืืขืจืงืืขืจืื ื.
ืืืื, SQL ืกืขืจืืืขืจ ืืื ื ืืฉื ืืขื ืืฆื ืคึฟืึทืจ ืจืืื ืงืึทืืคึผืืืืื ื ื ืืืืื ื ืืื ืืึธืก ืืื ื ืืฉื ืึท ืคึผืจืึธืืืขื. ืึธืืขืจ ืืืคึผืก ืืืึธืก ืึทืจืืขื ืืื ืึทืืข ืกืึธืจืฅ ืคืื ืฆืืึทืืืืืึทืืืง ืืืฉื (ืืืึธืก ืืขื ืขื ืืืืื ืงืึทืฉื) ืืืขื ืื ืื ืงืึธื ืืื ืึท ืกืืงืืืึทื ืก ืคืื ืืืืขืจ ืืขืฉืืืื ื ืขืงืกืึทืงืืืืึทื ืกืืืืืืึทื ืฅ.
ืืืจื ืืขื ืืืขื, ืืืื ืืืจ ืืึทื ืืืืงืืขื ืื ืคึฟืื ืงืฆืืข ืืื NATIVELY COMPILED, ืืขืืึธืื ืขืก ืกืืึทืคึผืก ืึทืกืงืื ื ืคึฟืึทืจ ืฆืืื, ืืื ืื ืืืืงืืึทื ืื ืงืจืืกืื ืืื 10 ืืื. ืืืึธืก ืืืขืื ืงืึธืึธืคึผืขืจืึทืืืืืข ืืืืืืืึทืกืงืื ื? ืึธืืขืจ ืคึฟืึทืจ ื ืึทืืืืืข ืงืึทืืคึผืืืื ืงืึธื, ืืืจ ืืึธืื ืฆื ืืึธื PREEMPTIVE MULTITASKING ืืื SQL.
ืืงืืจ: www.habr.com