先用条件一和条件二生成view吧。
要不就换数据库。

解决方案 »

  1.   

    可以把结果放在java的容器里面,asp不清楚有没有
      

  2.   


    同意楼上,,先建 view 要不太麻烦了,还不一定搞定。。
      

  3.   

    这种方法最好在数据库里面写成存储过程或者视图来做,建议使用带参数的存储过程。
    可以提高查询效率。
    另:如果你的数据库记录很多,建议建立适当的索引,优化你的数据库。大数据量的情况如果在页面拼sql文再去查数据库的话速度会很慢的。
      

  4.   

    把符合前两个条件的记录取出来放到对象中(自定义一个自己的对象也可,能存放自己的所需的字段就行),然后把对象逐个放到list对象中,这样可以对list中的对象进行操作,不要再对数据库进行读取操作,实现第三个条件只需对list中的对象操作就行了。
    但有个前提,如果想一次都取出来,服务器的内存一定要大,如果内存较小,可以分条数取出,分条取记录sql语句就能实现,而且速度还可以
      

  5.   

    在你这个问题上
    1.视图没用
    2.存储过程好像没用,我写得不是很多,可能有些有功能我还没用到,不敢包票有用的方法
    硬件:
    1.换台更好的机器
    2.磁盘阵列
    软件:
    3.多建几个表,比方每个省一个表,男女各一个表
    4.每个要查的字段都建索引
    3.字段类型能用char不用varchar,能用number不用char
    4.查询语句的where子句中,过滤得最多的放在最前
    5.如果可能,用数据沉余换速度,比方对某些查询条件过滤出的数据存在临时表中.
      

  6.   

    楼主的意思我大概看了一下,首先我想说的是如你提到的完全可以通过ADO.NET来实现。不能让多个客户端同时在服务器上进行查询处理,这样如果客户端比较多的时候,服务器肯定受不了。我主要说一下大概实现办法:
    将a、b、c表的数据读取到客户端的缓存--DataSet中,这样以后的处理就都在客户端本身了。可以通过DataTable.Select 方法(获取 DataRow 对象的数组)和DataTable.Rows.Find方法(获取包含指定主键值的行)进行过虑处理,就是你上面提到的条件一、二、三。具体怎么使用这两个方法你可以查一下MSDN的帮助。这是asp.net的方法,请大家想想jsp的方法!!感激!!