á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·á áá±á¬á·ááºáá²áá±ážáá¬ážáá°áá»á¬ážáá¶á០ááŒá¬ážááá¯ááºááá±á¬ ááá¯ááºááŒá¬ážá á¬áá»á¬ážááŒá áºáááºá á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá¡áá»ááºááŸá¬ á€á¡áá¬ááẠá¡ááŸááºááŒá áºáá¬ááŒá®áž ááŸááºáá»á¬ážáá±á¬ á á¯á¶á ááºážá á áºáá±ážááŸá¯ááᯠááŒá áºáá±á«áºá á±ááŒááºážáááºááŒá áºáááºá VMware ááœááºáááºáááºáá±á¬ SQL áá¬áá¬áá»á¬ážá¡ááŒá±á¬ááºážááŒá±á¬áá«áááºá
ááááºáá±á¬á·á áá¯ááºáá¯ááºááŸá¯áá¬áá¬ááẠáááºááºáá±á¬á·ááá±á¬ááºááœááºááœáẠáá»áŸá±á¬áºááá·áºáá»ááºáááŸáááŒá±á¬ááºáž áá±áá»á¬á
á±ááẠááœááºáá°áááºá áá¯ááºááᯠáá¯ááºáá±á¬ááºáá« (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
áá»áœááºá¯ááºááááºá áºáá±á¬á·ááœáẠá á áá¹ááá·áºááŒá¬ááŒá®áž áá¯ááºáá¯ááºááŸá¯áá¬áá¬ááœáẠáá á áá¹ááá·áºááŒá¬áááºá á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áº SQL ááẠááœá±áá±ážááœá±áá° ááŸááºáááºážáááºáá±á¬ááºááŸá¯á áá¯ááºááá¯ááºážááá¯ááºáá¬á¡áá¯á¶ážááᯠá á±á¬áá·áºááááºááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠá€áá±áá¬ááœáẠá¡ááœááºááá¯áá±á¬ááºážáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá á¡ááŒááºážáá»ááºážááŒá±á¬ááá»áŸáẠáá»áœááºá¯ááºááá¯á·ááẠááŒá®ážáá¬ážááŒá®áž á¡á¬ážáá±á¬ááºážáá±á¬ ááááºáá¬ážááᯠááŒáá¯á·ááœááºážá¡ááœá¬ážá¡áá¬ááá¯á· áá±á¬ááºážááŸááºáᬠá áá°áá¬áá±á«áºááŸá áá®áá¬áá±ážááá¯á·áá°áá»á¬ážá á¡ááŸáááºááŒááºážááŒááºážááŒáá·áº áá»á±á¬áºáááºááœá¬ážáááºááᯠá á±á¬áá·áºááŒáá·áºáá²á·ááẠ- ááŒááºáááºážááŸá¯ááẠá€áá±áá¬ááœáẠá¡áá±ážáááŒá®ážáá«á latency áá¬áá»áŸáẠá¡áá±ážááŒá®ážáá«áááºá áááºážáá á»á±ážááŸá¯ááºážááœáẠáá¯ááááºáá»áŸááŸááááºááŒá áºá á± ááœááºáááºááá¯ááŸá±á¬ááºááŸá¯áááºáá»áŸáááºáááŸáá á±áá¬áá°á latency áááºááŸááºáá»ááºááŒáá·áº ááŒááºááœááºáž SSD ááᯠá¡ááá¯ááºáá°ááá¯ááºáááºá
(ááŸááºáá»ááºáá»á¬ážááœáẠáá»áœááºá¯ááºááááºáá¬áááááº- áá»áœááºá¯ááºááẠáá±áá¬ááŸá áºáá¯áá¯á¶ážááœáẠáá¬ááŸááºáá¶ááŸá¯ááᯠááŸá±á¬áá·áºááŸá±ážá á±áá«áááºá ááŸá±á¬áá·áºááŸá±ážááŒá¬ááŸááºáá¶ááŸá¯áááŸááá² áá±á«áºáá¬áááº-
áááºá áºáá±á¬á· - 39 á áá¹ááá·áºá 15K tr/secá 0.065ms /io á¡ááœá¬ážá¡ááŒááº
PROD - 360 á áá¹ááá·áºá 1600 tr/secá 0.6ms
á¡áááºážááŒááºáá¬ááᯠáááááŒá¯ááááá·áºáá«áááº)
ááá¯á·áá±á¬áºá á€ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá±ážá¡ááœá² á¥ááá¬áá áºáá¯ááŒáá·áº Riemann zeta áá¯ááºáá±á¬ááºáá»ááºá á¡áá±ážá¡ááœá²áá¯áááŸáá·áº áááºáá¶áá±áá«áááºá developer áá»á¬ážááá»áœááºá¯ááºááá¯áá°áá±á¬ááºáá²á·áá±á¬á¥ááá¬ááœááºá ááœá²ááŒá¬ážáááºá áá°ááá¯á·ááŒá±á¬áá¬ááŸááºáááºááá¯á· áá»áœááºáá±á¬áºáá¯á¶ááŒááºáá²á·ááŒá®áž á á®ážááœá¬ážáá±ážáá¯áá¹áááá²á·áááºáááºáá²á· áá°ááá¯á·áá²á·á¡áá±ážá áááºá¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠá¥ááá¬ááá± áááºááŸá¬ážáá²á·áááºá áá áºáá»áááºáá»áááºááŸá¬áá±á¬á· áá°ááá¯á·áá²á· áá¯ááºááœá±ááᯠáá¯á¶ážá á áœáá·áºáá áºááŒá®áž áá°áá®áá²á· ááŒá¿áá¬ááᯠááá¯ááºááŒáá²á· áá«á·ááá¯ááºááá¯áẠáá±ážáá»ááá¯ááºáááºááá¯áᬠáááá¬ááẠ- áá¯ááºáá¯ááºááŸá¯ááŸá¬ 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
á¡á¬ážáá¯á¶ážá¡áááºááŒá±áá«á áá¶áá«ááºáá áºáá¯á primality ááá¯á á áºáá±ážááŒááºážááẠ6-7-8 á áá¹ááá·áºááŒá¬áááºááŒá áºáááºá áááºážááẠáá¬áá¬áá»á¬ážá áœá¬ááœáẠááŒá áºááœá¬ážáá²á·áááºá ááá¯á·áá±á¬áº á¡áá»áá¯á·áá±á¬á á áºáá±ážááŸá¯ááẠ25-40 á áá¹ááá·áºááŒá¬áááºá á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá¬áá áá¯ááºá 14 á áá¹ááá·áºááŒá¬áá²á· execution áá¯ááºááá·áºáá¬áá¬ááœá±áááŸááá²á·áá°áž - áá¯ááºá á¡áááºážááŒááºááẠáá«ááŸááá¯áẠá¡áááºážááŸá±ážááẠááá¯ááá¯áá¬á ááŒá¿áá¬á á¡ááŒá°á¡áááºážááá¯áá«á áá¯á·á
áá«áá¬ááœá±áá¯ááºááŒá®ážááŒá®áá²á VMware ááá¯ááºážáá¬ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ážáááºá á¡á²áá®ááŸá¬ á¡áá¬á¡á¬ážáá¯á¶ážá¡áááºááŒá±áá«ááẠ- á¡áááºážá¡ááŒá áºáá»á¬ážá áœá¬ááŸááá«áááºá á¡áááºááá·áºá¡áá»ááẠ= 0á á¡á¬ážáá¯á¶ážáá¯á¶áá±á¬ááºáá«áááºá á¡ááŒááºááŸáá·áºááŸá±ážáá±á¬áá¬áá¬ááŸá áºáá¯áá¯á¶ážááœááºá ááºážáááºáá±á áẠCPU = 100 vCPU áá áºáá¯áááºážááœááºááŒá áºáááºá Pi áá¶áá«ááºááᯠááœááºáá»ááºááẠá ááºážáááºááŸá¯áá áºáᯠááŒá¯áá¯ááºáá²á·ááẠ- á ááºážáááºááŸá¯ááẠáááºááá·áºáá¬áá¬ááœááºáááᯠáá°áá®áá±á¬ááááºáá»á¬ážááᯠááŒááá²á·áááºá á¡á±á¬ááºáááºážááá¬á á¡áá¶á·ááẠááá¯á ááŒááºážáááºáá¬áááºá
áá»áœááºáá±á¬áº DEV ááŒá¶ááá¯áá±á¬ááºáá¬áá²á· áá¬áá¬ááœá±áá²á· á áááºáá á¬ážáá²á·áááºá host áá áºáá¯á០host áá áºáá¯ááá¯á· vMotion ááẠáá¬áá¬áá áºáá¯á¡á¬áž "áá¯á" ááá¯ááºáá±á¬áºáááºáž áááºážááẠ"fast" server ááᯠ"slow" áá áºáá¯á¡ááŒá áºááá¯á·áááºáž ááŒá±á¬ááºážáá²áá±ážááá¯ááºáááºá áá®ááá¯áá¯á¶áááẠ- ááá»áá¯á·á¡áááºááŸááºááœá±ááŸá¬ ááŒá¿áá¬ááŸááá±ááá·áº... ááá¯ááºáá°ážá á¡áá»áá¯á·áá±á¬ virtual machine ááẠhost ááœááºááŸá±ážááœá±ážáá±áááºáᯠA áááŒá±á¬áá±á¬áºáááºáž host B ááœááºáá»ááºááŒááºá áœá¬á¡áá¯ááºáá¯ááºáááºá á¡ááŒá¬áž virtual machine ááẠA ááœááºáá»ááºááŒááºá áœá¬á¡áá¯ááºáá¯ááºááŒá®áž B ááœááºááŸá±ážááœá±ážáááºá "ááŒááº" ááŸáá·áº "ááŸá±ážáá±á¬" á ááºááŸá áºáá¯áá¯á¶ážááẠá¡áááºááŸááºá¡áá±á«áº áááŒá¬áá áááºáááºáá±áá«áááºá
ááá¯á¡áá»áááºááŸá á áá±áá¯áá²ááœáẠáá¬ááá¬á áá°ážááŒá¬ážáá±á¬ á¡áá¶á·áá áºáᯠááœááºáá±á«áºáá¬áááºá áá±á¬ááºáá¯á¶ážááœááºá ááŒá¿áá¬ááᯠvirtual machine (á¥ááá¬á Windows áá¬áá±ážááŸá¯áá»á¬áž) ááŒá±á¬áá·áºáᯠáááºááŸááºááááá« - ááŒá®ážáá±á¬ááºá áááºážááẠvMotion ááŒáá·áº "ááŒááº" á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáááºá ááá¯á·áá±á¬áº ááŒá¿áá¬ááᯠá¡áááºááŸááºáᯠáááºááŸááºááááá« - ááŒá®ážáá±á¬ááºá áááºážááœáẠ"ááŒááº" ááŸáá·áº "ááŸá±ážáá±á¬" á ááºáá»á¬áž ááŸá áºáá»áá¯ážáá¯á¶ážááŸáááá¯ááºáááºá ááá¯á·á¡ááŒááºá áááºážáááºáááºááŸáá·áºááááºááá¯ááºáá« - áá»áœááºá¯ááºááẠhost ááœáẠ"ááŸá±ážááœá±ážáá±á¬" á ááºááá¯áááá¯ááºáááºá áááºážááŸááœá²ááá¬ááŸáááŸááá«á
á áááºáá»ááºá¡á¬ážáááºá áœá¬ááŒáá·áº Sysinternals á០Process Explorer ááá¯ááœáá·áºááŒá®áž SQL stack ááá¯ááŒáá·áºááŸá¯áá²á·áááºá ááŸá±ážááœá±ážáá²á· á ááºááœá±ááŸá¬ ááá¯ááºážá áá»ááºáá»ááºáž áá»ááºá ááá»ááœá¬ážáááºá
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 á¡á (!!!) ááŒá áºáááºá áá«áᬠáá±ážáááºáá²á· á¡á±á¬ááºááœá²áá áºáᯠááŒá áºáá±áá«ááŒá®- áááºááá¯áá²ááŒá áºááŒá áºá Microsoft áá²á· VMware áá¶á·ááá¯ážááŸá¯ááŒá¬ážáá²ááŸá¬ ááŒáŸá¬ážááœá± ááŸááºáá áºááá¯á· ááŒáááºážááŒá±á¬ááºááŸá¯ áááŸááá«áá°ážá
ááá¯á·áá±á¬áẠááá¯ážáááºááŸá¯áááºááá·áºááœá¬ážááẠ- á¡á¬ážáááºáááºáá»á¬ážá á¡áá±ážááŒá®ážáá±á¬ááá á¹á áá»á¬ážá ááá¯ááºážáááºáá±á«áá°áá¯ááºáááŒááºážááŸáá·áº á¡áá¯ááºáá¬áááºáá»á¬áž áááááá¬áá¬ááá¯ážáá¬áááºá áá»áœááºá¯ááºááá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážá¡á¬áž ááŸá±á¬áºááŒá¿áá¬ááᯠáááŒá¬ááááŒá±á¬ááŒáá±á¬áºáááºáž áá áºáá«áá áºáá¶ááœáẠáááºážááá¯á·ááẠáá»áœááºá¯ááºááᯠá¡ááŒá²ááẠááá¯á¶ááŒáá¯á¶áááẠ- VMware ááẠáá¯ááºááᯠá¡ááŒááẠ10-20 ááŒáá·áº ááŸá±ážááœá±ážá á±áááºáá°áá±á¬ á áá¬ážááẠá¡ááœááºáááºáá²ááŸáááºá
ááŸá±á¬áá·áºááŸá±ážá á±áá²á·á¡áá¬ááœá±ááᯠááá¯áá·áºááá¯ááºááá¯áẠáá±á¬áºáá¯ááºááá¯á· ááŒáá¯ážá á¬ážáá²á·áááºá áá áºáá«ááá±ááŸá¬ á¡ááŒá±áá áºáá¯ááᯠááŸá¬ááœá±á·áá²á·ááẠ- Hot plugs ááœá±ááᯠá¡ááœáá·áºá¡ááááºáá¯ááºááŒááºážá memory ááá¬áááᯠááŒá±á¬ááºážáá²ááŒááºáž ááá¯á·ááá¯áẠáááá¯áááºáá¬á¡áá±á¡ááœááºááᯠááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº á ááºááᯠ"fast" á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²áá±ážáá±á·ááŸááá«áááºá áá«áá±ááá·áº áá¬ááááá¯ááºáá°ážá áá«áá±ááá·áº á¡ááŸááºááŒá áºáá¬áá¬ááá±á¬á· á¡ááŒááºááœááºááŒá®áž áá®ážáá±á«ááºáᬠáá¯á¶áá±á¬ááºáá«ááŒá® - ááá¯ááá¯áááºááŸá¬ ááŒá±á¬ááºážáá²ááŒááºážáááºááŒá áºáááºá áááºááá·áº virtual machine parameter
áá±á¬ááºáá¯á¶ážááŸá¬áá±á¬á· áá»áœááºáá±á¬á·áºáá²á· á¡áá±áááááºáá¯ááºáá±á¬áºááá¯ááºáááºááœá±á á¡ááŒá±á¬ááºážáááºážááᯠáá¯ááºáááẠááœá±á·ááŸááá²á·áá«áááºá
á¡áááºááŸááºáá»á¬ážááẠá¡ááŒáááºáá± ááœá²ááŒá¬ážáááºá
- á ááºážáááºážá¡áá áá«á ááŒá®ážááŒá®ážáá¬ážáá¬ážáá±á¬á· ááá¯ááºáá«áá°ážá ááá¯á·áá±á¬áº- 'áá¬áá' áááºáá±á¬ááºá០'ááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬' ááŒáááºááŸá¯ááºážááŸááá±á¬ host ááá¯á·ááŒá±á¬ááºážáá±á¬á¡áá«á VMware ááẠGetTimePrecise ááááºááᯠáá»áááºááŸáááá«áááºá
- á ááºážáááºážá¡áá SQL server áá²á·ááá¯á· áá áºá áá¹ááá·áºáá»áŸáẠá¡ááŒáááºáá±á«ááºáž áááºážááŸáá·áºáá»á®áá±á¬ á¡áá»áááºá¡ááá¡áá»ááᯠáá±á¬ááºážááá¯ááá·áº á¡ááá®áá±ážááŸááºážáá áºáá¯á០áááŸááá»áŸáẠáááºážááẠááŒá¿áá¬ááá¯ááºáá«á
- áá«áá±ááá·áº SQL server á áá«ááᯠá¡ááŒá²ááá¯ááºáá²á·á¡ááœáẠááŒá±á¬ááºá áá¬ááá¯ááºáá«áá°áž (áááá¯á¶ážááá¯ááŒáá·áºáá«)
áá«áá±ááá·áº áá®áá±á¬áá·áºááᯠááŒááºážááŒááºážáááºááẠáááááá²á· ááá á¹á ááœá±áááºáž ááŸááááºá ááá¯á·ááá¯ááºá áá¯ááºáá«áááºá áá®ážááá¯ááŸáááºááŒááºážááŒáá·áº (VM áááºáááºáá»á¬ážááœáẠáá áºáá¯áá¯ááá¯ááŒá±á¬ááºážáá²ááŒááºážááŒáá·áº) áá»áœááºá¯ááºááẠVMware áááœá²á·á ááºážáá¯á¶ááᯠ'ááŒááºáááºááœááºáá»ááºáááº' ááá¯ááºážá á±áá²á·ááŒá®áž áááºááŸááááºáá¶áá°áááŒáááºááŸá¯ááºážááẠá ááºá 'áá¬áá' ááŒáááºááŸá¯ááºážááŒá áºáá¬áá²á·áááºá
áá¯á¶ážááŒááºáá»ááº
TSC á virtualization ááᯠáááºááááºáá¬ážáá±á¬á¡áá«á TSC ááᯠvirtual machine á¡ááœááºážááŸáááºááŒááºážááẠáá¯ááºááá¯ááºážááá¯ááºáá¬á ááºá TSC áááºááá¯ážááᯠááŒááºáá±ážáááºá ááŸáá·áº TSC ááᯠvirtual machine á¡ááœááºážááŸáá±ážáá¬ážááŒááºážááẠá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯áááŸááá«á virtual machine ááᯠá¡ááŒá¬áž host ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážá áááºááá¯ááºážáá¬ážáá±á¬ á¡ááŒá±á¡áá±á០ááŒááºáááºá áááºááŒááºáž ááá¯á·ááá¯áẠáá»áŸááºáá áºááŒááºáá¯á¶áá áºáá¯ááá¯á· ááŒááºááœá¬ážááŒááºážááẠTSC ááᯠá¡áááºáááŒááºáá¯ááºááœá¬ážá á±áá«áááºá TSC virtualization ááá¯ááááºáá¬ážáá±á¬á¡áá« á¡áá»áá¯á·áá±á¬á§áá·áºáááºáááºáááºááŸá¯á áá áºáá»á¬ážááẠá áááºáááºáá»ááºááœááºááŒááºáž ááá¯á·ááá¯áẠá¡ááŒá¬ážá¡áá»áááºááááºážááŒááºážááŒá¿áá¬áá»á¬ážááá¯ááŒáááŒááºážáááŒá¯áá«á ááááºáá á€á¡ááºá¹áá«áááºááẠTSC ááᯠáááŒá¬áááááºááŸá¯ááá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá á áœááºážáá±á¬ááºáááºááᯠááŒáŸáá·áºáááºááẠáá áºáá«áá áºáᶠá¡ááŒá¶ááŒá¯áá¬ážáááºáááá¯á·áá±á¬áº áááºááŸá áá¯ááºáá¯ááºáá»á¬ážááœáẠvirtual TSC á á áœááºážáá±á¬ááºáááºááᯠáááááá¬áᬠááŒáŸáá·áºáááºáá¬ážáááºá virtual machine ááœáẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áááá»áá±á¬á¡áááºážá¡ááŒá áºááá¯á¡ááºáá±á¬ ááá¯ááºážáá¬ááŸá¯áá»á¬ážáá¯ááºáá±á¬ááºááá·áºá¡áá«ááœááºáááºáž á¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá¬ážáá«áááºá
á¡ááá¯áá»á¯ááºááŒá±á¬ááááºá ááẠparameter ááá¯ááá·áºááá¯á·ááá¯áá«áááºá
monitor_control.virtual_rdtsc = FALSE
áá±á¬ááºáá»ááº
ááá·áºááœááºáá±ážááœááºážáá áºáá¯ááŸáááá¯ááºáááº- SQL ááẠGetTimePrecise ááá¯á¡áááºááŒá±á¬áá·áºá€áá»áŸáááŒá¬áááá±á«áºááá¯ááááºážá
áá»áœááºá¯ááºááœáẠSQL áá¬áá¬áááºážááŒá áºáá¯ááºáááŸááá±á¬áºáááºáž áá±á¬á·áá»á áºá á€ááá¯á·ááá¯áááºá SQL ááẠáá»áááºáááºááŸá¯áá áºáá¯á á®á¡á¬áž á¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ âáá±ážáá±á¬ááºááááºâ ááŒá áºááá·áº áá°ážáá±á«ááºážáá±á¬ááºááœááºáá±á¬ áá±á«ááºážá ááºááœá±ááŒá±ážááŒáá·áº áááºáááºááá·áºá áá áºáá®ážáá«ážááŒá áºáááºá áá®ááá¯áá¯ááºááá¯á· á¡áá±á¬ááºážáá¯á¶ážáá±áá¬á áááºááŸá¬áá²á ááá¬áá¡ááá¯ááºáž á á±á¬áá·áºááá¯ááºážááŒááºáž - áá±á¬á·áááºááŒááºáž ááá¯á·ááá¯áẠIOá áá±á¬ááºážááŒá®á áá«ááá¯á·á ááœááºááŒá°áá¬ááŸáá·áºáááºáá±ááẠáááºááá¯áá¯ááºááá²á ááá¯á·áá±á¬áẠááŸááºážááŸááºážáááºážáááºážááŸáá·áº áá áºáá¯áááºážáá±á¬áá±áá¬ááẠá áá¬ážááŒááºááœáẠ(á€á áá¬ážááŒááºááá¯ááºáá«)á
áá±áá°áá»á¡á¬ážááŒáá·áºá SQL server ááᯠá á áºááŸááºáá±á¬ ááœááºááŒá°áᬠáááºááœá²ááŒááºážá¡ááœáẠá¡áá¯á¶ážááá»áá«á áááºážááẠááŒá¿áá¬ááá¯ááºáá«á ááá¯á·áá±á¬áº áá¬áá®ááá¬ážáá»á¬áž (áá»ááºáá»ááºáž áááºááŸáºáá¬ážááá·áº) á¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº á¡áá¯ááºáá¯ááºááá·áº ááœááºáá»á¬ážááẠáá¯ááºááᯠá¡ááœááºáá»ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºááŒá®ážáá±á¬ áá¯ááºááŒááºáá»ááºáá»á¬ážá á ááºážááá¯ážáá áºáá¯á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáááºá
á
áá¬ážáá
ááºá á¡áááºá áááºááẠáá¯ááºáá±á¬ááºáá»ááºááᯠNATIVELY Compiled ááŒáá·áº ááŒá¯á¶áá¬ážáá«áá áááºážááẠá¡áá»áááºáá±á¬ááºážááŒááºáž áááºááœá¬ážááŒá®áž áááºážá á¡ááŒááºááŸá¯ááºážááẠ10 á ááá¯ážáá¬áááºá áá«áá±ááá·áº áá°áááºážá
á¯á
ááºážáá¬ážáá²á· code á¡ááœáẠSQL ááŸá¬ PREEMPTIVE MULTITASKING áá¯ááºááá«áááºá
source: www.habr.com