0

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

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

这是低效的吗?等待它完成需要多长时间?我等了 30 秒,觉得太长了,就取消了。

4

2 回答 2

2

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

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

请注意,我取出了第一个百分号。

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

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

于 2012-06-15T14:52:57.160 回答
1

如果您正在搜索特定的 ID,我认为=会比LIKE

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

至于多长时间,这是主观的,并且在不了解您的环境和期望的更多细节的情况下难以量化。

关于您的使用,也可能值得一读这个 SO 问题NOLOCKNOLOCK (Sql Server hint) 是不好的做法吗?

于 2012-06-15T14:54:04.977 回答