有一个表tb有50万笔记录,其中qm字段是bit型,qm=0的记录只有几条。select top 10 aaa,bbb,ccc,ddd,qm from tb where qm=0这样一个简单的查询需要花费60秒左右的时间,实在是没法忍受。我想对于qm字段建一个索引,但在SQL中不允许给bit字段建索引,请问如何提高查询速度?

解决方案 »

  1.   

    select top 10 aaa,bbb,ccc,ddd,qm from tb where qm=0 
    加条件排序呀,在排序上加个索引
      

  2.   

    楼主用的是sql2000吗?
    如果是sql2005bit上应该是可以建索引的。http://www.cnblogs.com/alic/archive/2009/02/19/1393993.html
      

  3.   

    结论:
    1、毋庸置疑,Bit可以建立索引;
    2、在10万条数据时,Bit是否建立索引成本消耗相差不大;
    3、强烈推荐用Tinyint代替Bit,10万条数据时,成本降低近3倍,相信随着数据量的增加,与Bit相比成本降低会更多,有兴趣的朋友可以再深入测试一下。结论来源:http://www.cnblogs.com/zhubo/archive/2008/02/27/index_performance_between_bit_and_tinyint.html