SQL数据库查询的优化

WEB服务器 上安装的 SQL2005
请问各位 如何使 数据库的查询优化 使其查询速度更快

1,使用合理的表结构,尽量减少表关联,有时宁愿多占用些空间,存储些在别的表中存在的重复字段。

2,合理使用索引。

3,使用存储过程。

4,注意SQL语句的写法。针对“从下而上”解析的数据库系统,将关键性语句条件(比如主键、索引,确定的值等)放置在后面。反之,放置在前面。比如SQLSERVER数据库,你应当将首先去除了大部分记录的条件放置在where的前面部分。
举例:
假设主键为key;创建日期为 c_date,你的条件中包含对key和c_date的范围查询,那么你应当写成:
where
key >= @from_key and key <= @to_key and
c_date >= @from_date and c_date <= @to_date
而不应该写成:
where
key c_date >= @from_date and c_date <= @to_date and
>= @from_key and key <= @to_key

它们速度是不一样的。

以上几点都将提高查询速度!

第二次回答:
有人对第三条“使用存储过程”提高效率有异议,那么请问,你认为存储过程除了可以完成复杂的判断和较复杂的运算、集中控制之外的主要作用是什么?

在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。

任何一个设计良好的数据库应用程序都应当尽可能地用到存储过程。

我提到的以上几点,是针对入门者而言,也是比较容易做到的,对于要深入研究这个问题的,那么这些远远不够,但是,做好这些,可以将速度提高一大截了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-31
3,使用存储过程。是提高查询效率的方法?胡扯 回答问题前自己懂点再回答
单纯的一条查询语句 存储过程能提高效率我把服务器吃下去
对下面的回答补充一点 加内存加cpu能提高性能? 你自己试过没 我可以很负责的告诉你 如过内存和cpu的比例没协调好的话乱加cpu反而会变慢 因为cpu快了就要请求更多的处理 而内存没跟上 反而导致了系统的瓶颈

提高查询效率
合理使用索引(如果需要使用方法那么建立函数索引) 这是最能优化的地方
where结果集少的放前面
提高共享池的命中率 不要追求最高 相对高就行
设置最佳的数据库块的尺寸
必要时建立分区
还有很多
第2个回答  2009-03-31
这方面的问题很难用几句话来描述.说是设计合理的表结构,合理使用索引,写高效的查询语句,但什么样的结构设计才是好的?什么样的索引才是合理的?什么样的查询才能够达到高效?
关于SQL数据库的查询优化,很多是要根据自己的经验总结.作为起步来说,我推荐你一本书<数据库系统性能调优--原理与技术>电子工业出版社的,里面讲了一些建表,建索引的样例,还有SQL语句优化的几种典型的情况.
这个书的作者曾经到中国人民大学上过一次课,我也去过,讲的不错,我现在有这个课程的PPT,需要的话可以给你发过去.
第3个回答  2009-03-31
这个问题太大了,不懂就加内存,加CPU,用RAID存储。本回答被提问者采纳
相似回答