Показать сообщение отдельно
Старый 18.10.2023, 16:06   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,877 / 3127 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Коллеги, а можете у себя сделать замер и поделиться ?
Я попробовал вот такой вариант на 3 разных серверах (все виртуальные)
X++:
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
Итог 35 +-3 секунды.
Поспрашивал друзей. У одного от 7 до 14 секунд но в основном 8
У другого - 9 секунд.

Как-то тоскливо стало.

У кого еще медленно выполняется ?
За это сообщение автора поблагодарили: sukhanchik (6).