现在数据库的交易记录表记录快要有2000万行了,最初设计可能没有考虑到这么大,没有做索引,甚至是主键都没有,现在做统计报表时,查询很慢,所以想优化一下。
CREATE TABLE [paylist] (
[payDate] [datetime] NULL , --支付时间
[payUser] [int] NULL ,--支付账户
[payMoney] [float] NULL ,--支付金额
[payAdd] [int] NULL ,--支付地点
[sysUser] [int] NULL ,--收款员账号
[Solde] [money] NULL --支付后余额
) ON [PRIMARY]
GO请教高手,此表的优化方法?

解决方案 »

  1.   

    支付时间+支付账户
    做索引!
      

  2.   

    查询很慢  用什么条件查询加什么索引
      

  3.   

    还有不应该在这张表上做实时查询呢
      

  4.   

    这主要看你常用的查询都用到哪些条件了,在我看来:
    在 支付账户+支付时间 上做个主键,
    在 支付地点 和 收款员账号 上分别做个索引
      

  5.   

    应该主要是支付帐户用得很多哦。
    支付账户+支付时间 索引
      

  6.   

    在支付时间上建立主键,在支付时间上建立聚集索引
      

  7.   

    个人感觉还是在支付时间字段上进行索引建立比较好。
      

  8.   

    这种表增加一个短日期字段(如:2011-1-1)来做索引会不会更好呢?  因为查询一般是按天进行的,如某天到某的支付统计。