数据由4万增加到了10万,系统速度明显慢了下来,调试方法。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

?1,减少表的关联:当两个关联的表数据都很大时,主表关联子表,而主表只是要子表的一、两个字段的数据,此时可将子表的这一两个字段放在主表中,以增加冗余的方式来提高速度。
2,在取数据集时,特别在分页处,一次取出所有的数据速度是不合理的,应是只取当前页要求数量的数据,待用到下一页的时候再取。即:用到再取。
3,添加索引:数据表没有主键,搜索表中的数据时,数据库引擎必须进行全表扫描,效率极其低下。若必须进行全文扫描,可考虑全文检索,创建主键时,会自动创建聚集索引树,表中的所有行会在文件系统上根据主键值进行物理排序,当查询表中任一行时,数据库首先使用聚集索引树找到对应的数据页,然后在数据页中根据主键键值找到目标行
?为下列字段加索引:
 1)搜索时经常使用到的;

  2)用于连接其它表的;

  3)用于外键字段的;

  4)高选中性的;

  5)ORDER BY子句使用到的;
4,建历史表,bdorder ,bdorderhistory, 令bdorder只保持最近几天常用的资料,定时运行job将资料转进bdorderhistory中,
在取数据时:正常时间范围内查bdorder, 之外查询bdorderhistory, 例:
IF(@Adddate >= CONVERT(VARCHAR(10), DATEADD(day, -2, GETDATE()), 20))–3天以内查询
??? BEGIN
??? ??? SELECT *
??? ??? FROM visitCustomer(NOLOCK)
??? ??? WHERE 1 = 1
??? ??? and Adddate > @Adddate and Adddate < Dateadd(day, 1, @Adddate)
??? ??? and charindex(‘nxgao.com‘, href) = 0
??? ??? and charindex(‘nxtall.com‘, href) = 0
??? ??? and charindex(‘lvshou.com‘, href) = 0
??? ??? and charindex(‘lvshou.com.cn‘, href) = 0
??? ??? and charindex(‘lvshou.hk‘, href) = 0
??? ??? and charindex(‘?adsfrompipi’, href) > 0
??? ??? ORDER BY Adddate
??? END
??? ELSE
??? BEGIN
??? ??? SELECT *
??? ??? FROM visitCustomerBak(NOLOCK)
??? ??? WHERE 1 = 1
??? ??? and Adddate > @Adddate and Adddate < Dateadd(day, 1, @Adddate)
??? ??? and charindex(‘nxgao.com‘, href) = 0
??? ??? and charindex(‘nxtall.com‘, href) = 0
??? ??? and charindex(‘lvshou.com‘, href) = 0
??? ??? and charindex(‘lvshou.com.cn‘, href) = 0
??? ??? and charindex(‘lvshou.hk‘, href) = 0
??? ??? and charindex(‘?adsfrompipi’, href) > 0
??? ??? ORDER BY Adddate
??? END

5, sql语句利用构造式,对于小范围的数据,可以直接得到结果,然后查询。???? EXEC(@Query) ?