Не, все вышесказанное - не суть.
declare @d datetime;
set @d=getdate();
select permissions(id),
object_name(id),
user_name(uid),
type
, ObjectProperty(id, N'IsMSShipped')
from sysobjects where type in (N'U', N'S',N'v')-- and permissions(id) & 4096 <> 0
select datediff(ms, @d, getdate());
set @d=getdate();
select --permissions(id),
--object_name(id),
uid,
type
--, ObjectProperty(id, N'IsMSShipped')
from sysobjects where type in (N'U', N'S',N'v')-- and permissions(id) & 4096 <> 0
select datediff(ms, @d, getdate());
SQL 2008
250мс
3мс
100 (сто) раз разницы. Вызов функции - дело затратное.
SQL 2005
20 мс
3 мс
10 (десять) раз разницы.