一、硬件方面:
1、添加更多内存。当服务器运行许多复杂查询且其中几个查询执行很慢时,此解决方案尤其有用。
2、使用多个处理器。多个处理器使 SQL Server 数据库引擎 可以使用并行查询。
二、分表(水平、垂直分割)或分区处理
三、语句优化:
通过分析执行计划去定位查询瓶颈;然后参照下面采取具体措施:
1、如果没必要,尽量少用模糊查询。%
2、不要通过通配符 * 查询所有列,明确要查询的字段列。
3、在查询中,尽量少用类型转换操作。
4、根据查询具体要求,适当的建立索引。
5、使用临时表。尽量减少对物理表的访问。
6、尽量避免在WHERE子句中对字段进行函数或表达式操作,这将导致引擎放弃使用索引而进行全表扫描。
即:任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。
7、避免使用!=或<>、IS NULL或IS NOT NULL、IN 、NOT IN等这样的操作符,因为这会使系统无法使用索引,而只能直接搜索表中的数据。
8、能缩小查询范围的条件字段尽量靠前。
更多参考:sql查询优化该文
外延阅读:数据库设计原则:十四条
外延阅读中“总之,要提高数据库的运行效率,必须从数据库系统级优化、数据库设计级优化、程序实现级优化,这三 个层次上同时下功夫。”这句话总结很好。
2012年11月26日
Kevin.Chen 苏州太仓
O(∩_∩)O~