最近接手维护一个项目,其中有3个表的数据特别大,其中有个表的数据已经去到 2000W了。6.57 G
有什么方法可以尽量优化一下。

解决方案 »

  1.   

    单表查询也要看你要什么数据,如果你是select * from 表,那基本上没优化空间,具体要看where和查询的字段进行优化,主要是索引和统计信息。
      

  2.   

    2000w的数据,不到7G的空间实际上是没啥问题的。
    另外问下,你的服务器内存多少?硬盘是否raid?转速多少?空间多大?
      

  3.   

    服务器硬件 8G内存,2核cpu。系统开始时的设计就没做好,字符列的类型都是 NVarchar(max),连索引都加不了
    现在系统从登录开始就慢。用户表有50W数据,在查询分析器直接查
    select * from USER where username='xxx' and password='xxx' 返回一条数据都要 2秒钟,之后还到2千万的表去查数据。进入第一个界面就差不多要1分钟。
      

  4.   

    1、硬件方面应该没问题。主要问题在设计
    2、把字符列改了,用alter table来改,反正绝大部分也不可能存满,所以改了没问题。
    3、username、password(这个可以考虑不加,如果是varbinary的话),加上索引
    4、看看是否有毕业去除select * 而改用需要的列。
    5、试一下把一些逻辑合起来,进入一个界面看看有没有可能一步到位。