แแก แแ แแก แแฃแกแขแแ แแก แฉแแแแแแแ, แ แแช แแ แแแแแกแแแแ แฉแแแแ แแแแแแแแแ แแแแกแแแ. แงแแแแแแ แกแแแแขแแ แแกแ แแก แแ แแก, แ แแ แแก แกแแแแ แแแ แแฆแแแฉแแแ, แ แแแแช แแแแแแฌแแแ แฎแแแแ แซแแแแ แแแแแซแแแแ. แฉแแแ แแแกแแฃแแ แแแ SQL แกแแ แแแ แแแแ, แ แแแแแแแช แแฃแจแแแแแ VMware-แแ.
แกแแแแแแแแแแจแ, แแแแแแแ แแแแก แฃแแ แฃแแแแแงแแคแ, แ แแ แฌแแ แแแแแแก แกแแ แแแ แ แฃแแแแแแ แแแแก แแแแขแแแแก แฃแแแ. แจแแแกแ แฃแแแ (แแ แ tempdb-แแ แแ แแ แ แแแแแชแแแแ แแแแแจแ แฉแแ แแฃแแ Delayed Durability) แแแแ:
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 แขแ /แฌแ, 0.065ms/io แแ แแฎแ แแแ
PROD - 360 แฌแแแ, 1600 แขแ /แฌแ, 0.6 ms
แฃแแแ แจแแแแแฉแแแ, แ แแ แซแแแแแ แกแฌแ แแคแ แแงแ)
แแฃแแชแ, แแ แจแแแแฎแแแแแจแ แกแแฅแแ แแแแฅแแก แ แแแแแแก แแแขแ แคแฃแแฅแชแแแก แขแ แแแแแแฃแ แแฃแแแแแแ แขแ แแแแแแฃแ แ แแแแแแแแแ. แแ แแแแแแแแจแ, แ แแแแแแช แแแแแแแแแ แแแแ แแแแแขแแแแก, แกแฎแแแแแแ แแ แแงแ. แแ แแแแ แฌแแฃแแแ, แ แแ แแกแแแ แแแ แแแแแ แแงแแแแ แแ แแแแแฌแงแ แแแแแแแแแแแ แแแแฆแแแ แแแแ แงแแแแ แกแแแชแแคแแแแก, แ แแแแแแช แแแแแแจแแ แแแฃแแแ แแแแแแก แแแแแแแกแแแ. แ แแฆแแช แแแแแแขแจแ แแแแฎแแแ, แ แแ แจแแแแซแแ แแแแแแแแ แแแแแแแแแ แแแแ แแแแ แแ แแแแฌแแ แ แฉแแแ - แ แแช แแแแแ แแ แแแแแแแก แแฉแแแแแแก - แฌแแ แแแแแแจแ แแก 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, แงแแแแแคแแ แ แกแแแแแ แแกแ แแงแ, แขแแกแขแแก แแ แแก แ แแแแ แช แกแฌแ แแค, แแกแแแ แแแ แกแแ แแแ แแแแ CPU = 100 แแ แ vCPU-แแ. แแ แแแแแแ แ แขแแกแขแ, แ แแ แแแแแแแแแแ Pi แ แแชแฎแแ - แขแแกแขแแ แแฉแแแแ แแแแแ แจแแแแแแแ แแแแแกแแแแ แกแแ แแแ แแ. แจแแแ แแแแแแก แกแฃแแ แกแฃแ แฃแคแ แ แซแแแแ แแแแแแ.
แ แแแแ แช แแ DEV แคแแ แแแจแ แแแแแแ, แแแแแฌแงแ แกแแ แแแ แแแแ แแแแแจแ. แแฆแแแฉแแแ, แ แแ vMotion-แแแ แฐแแกแขแแแแ แฐแแกแขแแแแ แจแแฃแซแแแ แกแแ แแแ แแก โแแแแแฃแ แแแแโ, แแแแ แแ แแกแแแ แจแแฃแซแแแ โแกแฌแ แแคแโ แกแแ แแแ แแก โแแแแโ แแแแแฅแชแแแ. แ แแแแ แช แฉแแแก, แแก แแ แแก - แแแแแแ แ แแแกแแแแซแแแก แแ แแแแแแ แแฅแแก... แแแแ แแ... แแ แ. แแแแแแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ แแแแ แแงแ แฐแแกแขแแ, แแแฅแแแ A-แแ, แแแแ แแ แกแฌแ แแคแแ แแฃแจแแแแแ B แฐแแกแขแแ. แแแแ แ แแแ แขแฃแแแฃแ แ แแแแฅแแแ, แแแ แแฅแแ, แกแฌแ แแคแแ แแฃแจแแแแแ A-แแ แแ แจแแแแแแ B-แแ! แแแกแแแแซแแแแ แฎแจแแ แแ แขแ แแแแแแแแแ แ แแแแ แช โแกแฌแ แแคแโ แแ โแแแแโ แแแแฅแแแแแ!
แแ แแแแแแขแแแแ แฐแแแ แจแ แแแแแ แแแก แแแแแแ แ แกแฃแแ แแแแ. แงแแแแแแแ แแแแก แจแแแแแ, แแ แแแแแแ แแ แจแแแซแแแแ แแแแแฃแแแแแแแแแก แแแ แขแฃแแแฃแ แแแแฅแแแแก (แแแแแแแแแ, Windows แแแขแฉแแแ) - แแแแแก แแ แแแแแก, แแก แแแแแแฅแชแ "แกแฌแ แแคแแ" 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!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-แแก แแฎแแ แแแญแแ แแก แจแแ แแก แแแญแแแแแก แกแแคแ แแฎแ แแ แแ แกแแแแแแ, แ แแแ แแแ แแกแ แแแ แแ แแแแแแแแ แแแแแกแชแแแแแแ.
แจแแแแแ แแ แแแ แแกแ แจแแฉแแ แแ - แแ แแแแแแแแ, แแแแจแแแแแแแแแ แกแแแแแฎแแแ, แแแ แฃแกแฃแแ แแกแขแแ แแ แแ แแแขแแแ แแแแก แแแแแแ แ แแ แแ. แแ แฎแจแแ แแ แแแฎแกแแแแแแ แฉแแแก แแแแแแแแก แฏแแแแกแแฃแ แแ แแแแแแแก, แแแแ แแ แแแแฏแแ แแแฉแแแแแแแแ, แ แแ แแแ แงแแแแแแแแก แแ แกแฏแแ แแแแ แฉแแแ - แแแแชแฎแแแแแ, แ แแ VMware แแแแแแแก แแแแก 10-20-แฏแแ , แซแแแแแ แแแแแ แแแแ แแงแ.
แแชแแแแแแแ แแแแแแแขแแแ, แ แแช แแแแแแแแแ. แแแแฏแแ แแแฉแแแแแแแแ, แ แแ แแแแแแ แแแแแกแแแแแ - แชแฎแแแ แจแขแแคแกแแแแแก แฉแแ แแแ แแ แแแแแ แแแ, แแแฎแกแแแ แแแแก แ แแแแแแแแแก แจแแชแแแ แแ แแ แแชแแกแแ แแแแก แ แแแแแแแแ แฎแจแแ แแ แแฅแชแแแแ แแแแฅแแแแก "แกแฌแ แแคแแ". แแแแ แแ แแ แ แกแแแฃแแแแแ. แแแแ แแ แ แแช แแแ แแแแ แแฆแแแฉแแแ, แกแแแแแ แแกแแ แแแกแแแ แแ แกแแญแแแ แแแแแแฃแแแแ - แแแฃ แแแแแชแแแ แแแแแกแแแแ แ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แแแ แแแแขแ แ
แกแแแแแแแ, แฉแแแแ แแแแ แแแแแแ แแแแแแแแแ แแแฃแแแแแแแแ แแแแแแก แซแแ แแแแแ แแแแแแ.
แแแกแแแแซแแแแ แแแแกแฎแแแแแแแแแแแ แกแแฎแจแแ แแ!
- แ แแแแ แช แฌแแกแ, แแก แแ แแ แแก แแแแ แกแแฅแแ. แแแแ แแ: "แแจแแแแแฃแ แ" แฐแแกแขแแแแ "แกแฎแแแแแกแฎแแ" แกแแฎแจแแ แแก แฐแแกแขแแ แแแแแกแแแแกแแก, VMware-แแ แฃแแแ แแแแ แแแฃแแแ แแก GetTimePrecise แจแแแแแ.
- แ แแแแ แช แฌแแกแ, แแก แแ แแ แแก แแ แแแแแแ, แแฃ แแ แแ แแก แแ แแแ แแแ, แ แแแแแแช แแแฎแแแก แแฃแกแข แแ แแก แแแแแแแฏแแ แฌแแแจแ, แ แแแแ แแชแแ SQL แกแแ แแแ แ.
- แแแแ แแ แแก แแ แแ แแก แกแแจแแแแแ, แ แแแแแ SQL แกแแ แแแ แ แงแแแแแแแแก แแ แแแแแแแก แแแแก (แแฎ. แแแกแแแแ)
แแแแ แแ แแ แแก แจแแแแฎแแแแแแ, แ แแชแ แแก แ แแแ แซแแแแ แแ แฃแ แขแงแแแก. แแ แแแแแช, แแแแฎ, แกแแญแแแ แแแญแแ แแ (แแแ แขแฃแแแฃแ แ แขแแฅแแแแแก แแแ แแแแขแ แแแจแ แ แแฆแแชแแก แจแแชแแแแ) แแแแซแฃแแ VMware-แก แแแแคแแแฃแ แแชแแแก โแฎแแแแฎแแ แแแแแแแแโ แแ แแแแแแแแ แ แฐแแกแขแแก แกแแฎแจแแ แ แแแฎแแ แแแแ แแขแแก โแแจแแแแแฃแ แโ แกแแฎแจแแ แ.
แแแแแฌแงแแแขแแแแแ
แ แแแแกแแช แแฅแแแ แแแแแ แแแแ TSC-แแก แแแ แขแฃแแแแแแชแแแก, แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แจแแแแแแแ TSC-แแก แฌแแแแแฎแแ แแแ แฃแแแแก แคแแแแแฃแ แ แแแแฅแแแแก TSC แแแแจแแแแแแแแก แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แจแแแแแแแ TSC-แแก แฉแแฌแแ แแก แแ แแแแแ แ แแคแแฅแขแ แแ แแฅแแก. แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แกแฎแแ แฐแแกแขแแ แแแแ แแชแแ, แแแกแ แจแแฉแแ แแแฃแแ แแแแแแแ แแแแแแแ แแฆแแแแแ แแ แกแแแแจแแขแแ แแแแ แฃแแแแ แแฌแแแแก TSC-แแก แจแแฃแฌแงแแแขแแ แแแแแฎแขแแแแก. แแแแแแ แแ แกแขแฃแแแ แ แแแแ แแชแแฃแแ แกแแกแขแแแ แแแ แฉแแแขแแแ แแแแ แแ แแแแแแก แแ แแแก แแฆแ แแชแฎแแแก แกแฎแแ แแ แแแแแแแแก, แ แแแแกแแช TSC แแแ แขแฃแแแแแแชแแ แแแแแ แแฃแแแ. แฌแแ แกแฃแแจแ, แแก แคแฃแแฅแชแแ แแแแฏแแ แแงแ แ แแแแแแแแแแฃแแ แแแแแแแชแแแแแก แแฃแจแแแแแก แแแกแแฃแแฏแแแแกแแแแแ, แ แแแแแแแช แฎแจแแ แแ แแแแฎแฃแแแแแ TSC-แก, แแแแ แแ แแแ แขแฃแแแฃแ แ TSC-แแก แจแแกแ แฃแแแแ แแ แกแแแแแแ แแแฃแแฏแแแแกแแ แแแแแแแแ แ แแ แแแฃแฅแขแแแจแ. แคแฃแแฅแชแแ แแกแแแ แ แแแแแแแแแ แแแฃแแแ แแแแแกแแงแแแแแแแ แแแแแแแแแแก แแแแฎแแ แชแแแแแแแกแแก, แ แแแแแแแช แกแแญแแ แแแแแ แ แแแแฃแ แแ แแจแ แแฃแกแข แฌแงแแ แแก แแแ แขแฃแแแฃแ แแแแฅแแแแจแ.
แแแแแแ, แแฅแแแ แฃแแแ แแแแแแขแแ แแแ แแแแขแ แ
monitor_control.virtual_rdtsc = FALSE
แแแกแแแแ
แแฅแแแ แแแแแ แแแฅแแ แจแแแแแฎแแ: แ แแขแแ แฃแฌแแแแแก SQL แแกแ แฎแจแแ แแ GetTimePrecise-แก?
แแ แแ แแแฅแแก SQL แกแแ แแแ แแก แฌแงแแ แแก แแแแ, แแแแ แแ แแแแแแ แแแแก แแแแแแก. SQL แแ แแก แแแแฅแแแก แแแแ แแชแแฃแแ แกแแกแขแแแ แแแแแแ แแขแแฃแแ แแแแแฃแ แแแขแฃแแแแแ, แกแแแแช แงแแแแแ แแแแ แแ แแแแแ แ แฃแแแ โแแแแแแแแแกโ. แกแแ แแ แแก แกแแฃแแแแแกแ แแแแแแ แแแแก แแแกแแแแแแแแแ? แกแแแแช แแ แแก แแฃแแแแ แแแ แแแแแแ - แฉแแแแขแแ แแ IO. แแแ แแ, แแแแ แแ แ แ แแแฎแแแแ, แแฃ แฉแแแ แแขแ แแแแแแ แแแแแแแแแ แแแ แงแฃแแแแก? แแแจแแ แแจแแแ แ แแ แแแแฅแแแก แแ แแแแแ แแ แแแแแแ แแ แแก แแแ แฏแแแแแ (แแก แแแแแแแแแ แแ แแ แแก แแแ แฏแแแแแ), แจแแแแแแ แแแแชแฎแแแแแแก แจแแกแ แฃแแแแแก แจแแแแแ.
แแแแแแแ, SQL แกแแ แแแ แ แแ แแแแแแงแแแแแ แกแฃแคแแ แแแแแแแแแแ แแแแแแกแแแแก แแ แแก แแ แแ แแก แแ แแแแแแ. แแแแ แแ แแแ แงแฃแแแแ, แ แแแแแแแช แแฃแจแแแแแ แงแแแแ แกแแฎแแก แแ แแแแแ แชแฎแ แแแแแแแ (แ แแแแแแแช แแแจแแแแ แฅแแจแแ แแแฃแแแ) แแฅแชแแแก แแแแก แซแแแแแ แกแฌแ แแคแแ แจแแกแ แฃแแแแฃแแ แแแแชแฎแแแแแแแแก แแแแแแแแแแ แแแแ.
แกแฎแแแแ แจแแ แแก, แแฃ แคแฃแแฅแชแแแก NATIVELY COMPILED-แจแ แแแแแแฎแแแแ, แแก แฌแงแแแขแก แแ แแแก แแฎแแแแแก แแ แแแกแ แกแแฉแฅแแ แ 10-แฏแแ แแแ แแแแ, แ แแช แจแแแฎแแแ แแแแแแ แแขแแฃแ แแ แแแแแแแแแแแแแก? แแแแ แแ แแจแแแแแฃแ แแ แจแแแแแแแแ แแแแแกแแแแก แฉแแแ แฃแแแ แแแแแแแแแแแแแ PREEMPTIVE MULTITASKING SQL-แจแ.
แฌแงแแ แ: www.habr.com