表的字段有: userID [int], Enname [varchar50], imoName [varchar50],cnName [varchar(50)] 等20个字段
 
 表中的数据量:50W    每秒都会有根据Userid来更新记录 每秒大约更新1000条左右
 查询时分两种情况
    1. 根据userid查询
    2. 根据userID ,Enname ,imoName ,cnName 模糊查询 如:
      select top 8 userID ,Enname ,imoName ,cnName  from tbdevice where UserID like '4137%' or Enname like '413%' or  imoName like '4137%' or  cnName like '4137%' 
       即:查询的条件值是相同的, 只要这四个字段中有一个符合条件就可以   
    最好能保证查询速度的前提下,也能保证我的每秒更新1000条数据, 

解决方案 »

  1.   

    userid建聚集索引,userID ,Enname ,imoName ,cnName 这四个建一个组合非聚集索引
      

  2.   

    表 一直在不停更新? 如果是这样的话 ,查询 改一下  select top 8 userID ,Enname ,imoName ,cnName from tbdevice with(nolock) where UserID like '4137%' or Enname like '413%' or imoName like '4137%' or cnName like '4137%'  
      

  3.   

    这个表里的字段除了userid不更新外,其它的字段都可能会存在更新。。 每次更新的字段不一样,根据设备传来的信号来定。。
      

  4.   

    频繁更新还可以接受脏读,这系统比较....那就加with nolock吧,高并发的时候块很多的。