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

Sql server 2008 在远程数据库服务器上等待查询完成需要多长时间?,sql-server-2008,query-optimization,Sql Server 2008,Query Optimization,我被要求根据特定的ID(这里是406f-871b-a3ee71f7038)获取信息,如下所示: select * from BIG_Session (nolock) where SessionSID like '%406f-871b-a3ee71f70386%' 这是低效的吗?要等多久才能完成?我等了30秒,觉得时间太长了,于是取消了它。您将使用前缀通配符%进行扫描。如果您知道406f…将是字符串的开头,您可以利用可能的搜索: select * from BIG_Session where S

我被要求根据特定的ID(这里是406f-871b-a3ee71f7038)获取信息,如下所示:

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

这是低效的吗?要等多久才能完成?我等了30秒,觉得时间太长了,于是取消了它。

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

select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'
注意我去掉了第一个百分号

要等多久才能完成


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

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

select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'
注意我去掉了第一个百分号

要等多久才能完成


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

如果您正在搜索特定ID,我认为
=
将比
之类的
更有效:

select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'
至于多长时间,这是主观的,在不了解环境和期望的更多细节的情况下很难量化


关于你使用NOLOCK的这个问题也值得一读:

如果你正在搜索一个特定的ID,我认为
=
会比
这样的
更有效:

select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'
至于多长时间,这是主观的,在不了解环境和期望的更多细节的情况下很难量化


关于您使用
NOLOCK

非常感谢Shark,这个问题也值得一读!我记笔记了!非常感谢鲨鱼!我记笔记了!非常感谢,巴里!我记下来了!非常感谢,巴里!我记下来了!