系统要求我根据特定的ID(这里是406f-871b-a3ee71f7038)获取信息,如下所示:
select * from BIG_Session (nolock)
where SessionSID like '%406f-871b-a3ee71f70386%'这是不是很低效?等待它完成需要多长时间?我等了30秒,觉得时间太长了,就取消了。
发布于 2012-06-15 22:52:57
您将使用前缀通配符%进行扫描。如果您知道406f...将是字符串的开头,则可以使用可能的seek:
select * from BIG_Session
where SessionSID like '406f-871b-a3ee71f70386%'注意,我去掉了第一个百分号。
等待它完成需要多长时间?
这取决于您、您的环境、您的用户,以及您的业务需求的可接受持续时间。30秒在某些情况/环境中是可以接受的,但在其他情况/环境中则是有害的。
发布于 2012-06-15 22:54:05
如果你正在搜索一个特定的ID,我认为=会比LIKE更有效
select * from BIG_Session (nolock)
where SessionSID = '406f-871b-a3ee71f70386'至于持续多长时间,这是主观的,如果不知道更多关于环境和期望的细节,就很难量化。
关于您使用NOLOCK:Is the NOLOCK (Sql Server hint) bad practice?这个问题可能也值得一读
https://stackoverflow.com/questions/11053043
复制相似问题