C# 我可以在fn\u listendedproperty上优化SQL选择吗?
我有一个c项目,在启动时很少运行查询。我试图找出是否可以优化执行时间。其他查询耗时不到100毫秒,但此查询速度稍慢C# 我可以在fn\u listendedproperty上优化SQL选择吗?,c#,sql,sql-server,C#,Sql,Sql Server,我有一个c项目,在启动时很少运行查询。我试图找出是否可以优化执行时间。其他查询耗时不到100毫秒,但此查询速度稍慢 SELECT * FROM fn_listextendedproperty(default, default, default, default, default, default, default) where name = 'CUSTOM_EX_PROP' 301毫秒 这正常吗?这个查询可以优化吗?有没有更快的方法读取数据库扩展属性 这是我的c代码以防万一 var
SELECT * FROM
fn_listextendedproperty(default, default, default, default, default, default, default)
where name = 'CUSTOM_EX_PROP'
301毫秒
这正常吗?这个查询可以优化吗?有没有更快的方法读取数据库扩展属性
这是我的c代码以防万一
var watch = System.Diagnostics.Stopwatch.StartNew ();
using (SqlDataAdapter sda = new SqlDataAdapter (new SqlCommand (query, _con))) {
sda.Fill (dt);
}
watch.Stop ();
var elapsedMs = watch.ElapsedMilliseconds;
System.Diagnostics.Debug.Print (query + "\r\n" + elapsedMs.ToString () + " ms");
编辑-正如@Liam指出的那样,这是一个XY问题,让我告诉你实际情况。数据库的版本存储在其扩展属性中,当我连接到数据库时,我只想确保版本正确。这就是我在启动时读取其扩展属性的原因。您无法优化系统功能 如果您不喜欢它,请编写您自己的函数并使用它来代替此函数 此函数的文本可以通过执行
exec sp_helptext 'fn_listextendedproperty'
检查fn_listendedproperty的代码表明它是从一个视图中获取的..但是有一堆其他参数,您可能不需要这些参数
insert @ids select object_id, name from sys.objects
where schema_id = @major
and parent_object_id = 0
and 0 <> charindex( '.'+type+'.',
case @level1type
when 'TABLE' then '.U .'
when 'VIEW' then '.V .'
when 'RULE' then '.R .'
when 'DEFAULT' then '.D .'
when 'QUEUE' then '.SQ.'
when 'SYNONYM' then '.SN.'
when 'AGGREGATE' then '.AF.'
when 'FUNCTION' then '.TF.FN.IF.FS.FT.'
when 'PROCEDURE' then '.P .PC.RF.X .'
when 'SEQUENCE' then '.SO.'
end )
end
-- Now get properties from id-s obtained, and return
--
insert @tab select @basetype, i.nam, p.name, p.value
from sys.extended_properties p join @ids i on p.class = @class and p.major_id = i.maj
where p.minor_id = 0 and (@name is null or @name = p.name)
这整件事闻起来像是你想在这里实现什么?你能以xml的形式共享执行计划吗,我不能在我的系统上重新处理这个问题,我不到一秒钟就完成了,它必须是特定于您的系统的,或者查询可能正在等待某些资源。因此,请查看这是否适用于您的案例。从sys.extended\u properties中选择*这真的是个问题吗?我的意思是301ms仍然很快,眨眼可能需要400ms,用户不会注意到额外的200ms作为一次性动作。如果有多个这样的查询减慢了加载过程,那么建议并行执行这些查询和/或延迟加载一些数据,直到表单/页面加载完毕(假设不需要)immediately@TheGameiswar .. 从sys.extended_properties中选择*这就像一个符咒。。。现在需要5毫秒。。。你可以把它贴成答案。。。。
select * from
sys.extended_properties