我被要求根据特定ID(此处为406f-871b-a3ee71f7038)获取信息,如下所示:
select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'
效率低吗?等待它完成需要多长时间?我等了30秒才感觉那太长了,就取消了它。
答案 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'
关于多长时间,如果不了解您的环境和期望的更多细节,这是主观的,难以量化。
关于您使用NOLOCK
:Is the NOLOCK (Sql Server hint) bad practice?