现需要远程查询sql数据库表内容,表中有 “ leibie、 时间、a1、a2、a3 ”等等列
同一 “时间” 有多个 “leibie”现在想统计 n 个不同leibie 的a1的平均值、a2的和显示在本地datagrid内我这样写的查询子程序
一次查询一个类别:
例如查一个类别名为L1的查询语句为“ select avg(a1),sum(a2) from sql.table1 where leibie=’L1‘ and 时间 between ’t1‘ and ’t2‘ ”查询的结果写入本地数组或放在本地access数据表内,然后再重新调用子程序查询L2但若leibie较多如上千个时,程序访问时间太长,如何改善?请高手赐教。

解决方案 »

  1.   

    建立索引的方法 CREATE INDEX 索引名字(自己随便起) ON table1(leibie,时间)
    如果现在表中数据量很大的话,建立索引的时间可能长一些,耐心等待,等索引建立起来以后,根据这两个字段的查询,删除,修改的速度都会大大提高。
      

  2.   

    select
     avg(a1),sum(a2) 
    from
     sql.table1 
    where
     leibie=’L1‘ and 时间 between ’t1‘ and ’t2‘ ”--leibie和时间字段加索引
      

  3.   


    USE AdventureWorks;
    GO
    IF EXISTS (SELECT name FROM sys.indexes
                WHERE name = N'IX_ProductVendor_VendorID')
        DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
    GO
    CREATE INDEX IX_ProductVendor_VendorID 
        ON Purchasing.ProductVendor (VendorID); 
    GO