等待查询在远程数据库服务器上完成需要多长时间?

时间:2012-06-15 14:50:54

标签: sql-server-2008 query-optimization

我被要求根据特定ID(此处为406f-871b-a3ee71f7038)获取信息,如下所示:

select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'

效率低吗?等待它完成需要多长时间?我等了30秒才感觉那太长了,就取消了它。

2 个答案:

答案 0 :(得分:2)

您将使用前缀通配符%进行扫描。如果您知道406f...将是字符串的开头,您可以使用可能的搜索:

select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'

注意我拿出了第一个百分号。

  

等待它完成需要多长时间?

这取决于您,您的环境,您的用户以及您的业务需求的可接受持续时间。在某些情况/环境中30秒是可以接受的,但在其他情况下是有害的。

答案 1 :(得分:1)

如果您要搜索特定ID,我认为=将比LIKE更有效:

select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'

关于多长时间,如果不了解您的环境和期望的更多细节,这是主观的,难以量化。

关于您使用NOLOCKIs the NOLOCK (Sql Server hint) bad practice?

,也值得一读这个SO问题