为了账号安全,请及时绑定邮箱和手机立即绑定

如何从SQL Server表中查询同IP不同用户名的资料

如何从SQL Server表中查询同IP不同用户名的资料

猛跑小猪 2018-08-13 10:09:24
公司的业务有个功能需要查询哪些用户在某个时间内跟指定的某个用户使用相同的IP登录,也就是查询条件是 userid='xxx', addtime>'2018-06-06 00:00:00'Log表的结构是:id int pk,userid varchar(20),ip varchar(50),addtime datetime目前做了组合索引索引1:ip索引2:userid,addtime索引3:userid,addtime,ip当数据达到25W条的时候,根据查询的条件所消耗的时间很长下面是我目前使用的语句select top 50 [userid],[ip],[addtime] from logwhere [userid]<>'xxx' and addtime>'2018-06-06 00:00:00' and ip in (select ip from log where [userid]='xxx' and addtime>'2018-06-06 00:00:00' group by ip)大家如果有好的办法,请帮我解决一下,谢谢。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

我有一个跟你差不多结构的表,45W记录,按你的需求查询,200毫秒,甚至连非聚集索引都没建。

 

建议:先把索引去掉,然后跑这个SQL,再看 执行计划。


查看完整回答
反对 回复 2018-09-06
  • 1 回答
  • 0 关注
  • 770 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信