本帖最后由 cciikk 于 2011-03-04 21:15:10 编辑

解决方案 »

  1.   

    select value,size,num form Item where page = 'north' or size='big' and group = 'strong' or local='yes' and ID = '12'
    误人子弟的sql语句,哈哈。
      

  2.   

    第一行和第二行都要返回 value列的值,怎么处理呢? 你这句只有一个value列的能返回...
      

  3.   


    这样对查询速度的提升有多大?  感觉先查出id全是12的到临时表,再从临时表里面去查其他的似乎还多了一步,这个速度能快些么?
    还有在sql 管理器中查询的速度貌似比 C# 写的用SqlDataAdapter查询的程序 要快几百倍...这是为啥? 
      

  4.   

    不多一步啊,我是说如果你同时查那几个字段的话,可以搞临时表,只扫描一次表,其他字段从临时表里取,数据就会少的多了。用SqlDataAdapter并不是慢了好多,是把数据库的数据拿出来加载到你的内存里,我猜你说的慢是不是页面绑定数据的时候的时间,这个肯定慢,那是你前台的问题。
      

  5.   

    前台机器配置很高的呀,而且是百兆的lanSqlDataAdapter 是把数据库中的数据全部储存到我本机内存后再查询?
      

  6.   

    按你的意思,我查了下,貌似SqlDataAdapter 可以离线将表一次性存入dataset,然后在本地查询操作吧?
      

  7.   

    dateset就是内存里虚拟的数据库,xml格式,包括列名,字段值。
      

  8.   


    之前有点错误...我这个不是表,是个视图,从400万数据中筛选出来的,最终是7500行乘以7列
    一个完整查询有400个循环,每个循环要做19次上面的那种select语句你觉得我这里查询速度慢的很是啥原因呢? C#的查询代码用的查询工具SqlDataAdapter 每次传输数据造成每次还是我这个视图没有索引造成的?还是我的select语句太烂?我因该从哪些方面改进呢?  我是新手...请多包涵
      

  9.   


    表和视图都没加索引那个6分钟是指 我的C#程序启动后那个去跑400次循环,每个循环select19次,并返回数据存入本地一个泛型数组的时间我用断点实验了,95%的时间都用在这个400*19次查询中
      

  10.   

    视图里面就是用 or 过滤器,将那写要select的数据整行 筛选出来
      

  11.   

    这么大的数据量为啥还要跑400次循环,你不光优化sql,程序也需要优化下,具体不知道你的意图,不过必须另寻他路。
      

  12.   


    select * from Item where (page = 'north' or page = 'big') and (group ='strong' or local ='yes') and ID = '12'