SQL 语句查询与性能
2007-12-28 00:42
148 查看
1、筛选记录:
Where,最好用单个表中的主键进行筛选。
当条件为Not、<>时将忽略索引。
like运算符将进行全表扫描。
Where子句中的函数将可能禁用某字段的索引。
如
SELECT * FROM EDITION WHERE To_char(Print_Date,'DD-MON-YYYY')='01-jan-2005';
用索引的方法-->
SELECT * FROM EDITION WHERE PRINT_DATE=TO_DATE('01-jan-2005','DD-MON-YYYY');
2、当表很小时,读取表要比读取表上的索引更加高效。
3、复合索引的使用:WHERE 子字句的条件中 复合索引的顺序也决定是否启用复合索引。
4、Having 与WHERE
WHERE 子句在数据库读取记录是(发生I/O活动后)筛选记录。Having 子句(GROUP BY 子句的一部分)
会筛选聚合组,并在数据库所有I/O活动之后进行筛选.以下两句 第二句更高效
SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10 AND PUBLISHER_ID>5
后面一个条件移到WHERE子句下,将少读5条记录
SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION WHERE PUBLISHER_ID>5
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10
===============
SQL语句连接查询的几个规则:
1、先进性大的筛选--对最大的几个表进行筛选,以此减少记录连接。
2、使用索引。较小的表除外。读取的大表的记录的百分比较高的也不用索引。
3、嵌套子句半连接---使用子查询能够调整连接,至少能够简化连接。这种调整对高度规范化的OLTP数据库模型非常适合。
(...此处待请教)。
Where,最好用单个表中的主键进行筛选。
当条件为Not、<>时将忽略索引。
like运算符将进行全表扫描。
Where子句中的函数将可能禁用某字段的索引。
如
SELECT * FROM EDITION WHERE To_char(Print_Date,'DD-MON-YYYY')='01-jan-2005';
用索引的方法-->
SELECT * FROM EDITION WHERE PRINT_DATE=TO_DATE('01-jan-2005','DD-MON-YYYY');
2、当表很小时,读取表要比读取表上的索引更加高效。
3、复合索引的使用:WHERE 子字句的条件中 复合索引的顺序也决定是否启用复合索引。
4、Having 与WHERE
WHERE 子句在数据库读取记录是(发生I/O活动后)筛选记录。Having 子句(GROUP BY 子句的一部分)
会筛选聚合组,并在数据库所有I/O活动之后进行筛选.以下两句 第二句更高效
SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10 AND PUBLISHER_ID>5
后面一个条件移到WHERE子句下,将少读5条记录
SELECT ISBM,PUBLISHER_ID,AVG(LIST_PRICE)
FROM EDITION WHERE PUBLISHER_ID>5
GROUP BY ISBN HAVING AVG(LIST_PRICE) >10
===============
SQL语句连接查询的几个规则:
1、先进性大的筛选--对最大的几个表进行筛选,以此减少记录连接。
2、使用索引。较小的表除外。读取的大表的记录的百分比较高的也不用索引。
3、嵌套子句半连接---使用子查询能够调整连接,至少能够简化连接。这种调整对高度规范化的OLTP数据库模型非常适合。
(...此处待请教)。
相关文章推荐
- 巧用sql语句以提高数据库查询性能
- Oracle性能-查询统计信息的SQL语句
- 对多表联合查询的SQl语句的改进,大幅提高查询性能
- Sql语句与存储过程查询数据的性能测试实现代码
- 【MySql性能优化二】利用explain进行查询和分析sql语句
- 【SqlServer2005+ 查询优化】MSSQL优化SQL语句 提高数据库的访问性能
- .Net+SQL Server企业应用性能优化笔记3——SQL查询语句
- Sql语句与存储过程查询数据的性能测试实现代码
- SQL Server SQL性能优化之--pivot行列转换减少扫描计数优化查询语句
- 怎样用SQL语句查看查询的性能指标
- 使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- sql查询语句性能问题及编写时需要注意的地方
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- 查询Oracle性能差的、正在执行或执行过的SQL语句
- SQL 查询语句性能对比分析
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
- Oracle--查询正在执行和执行过的SQL语句及语句执行性能
- 对多表联合查询的SQl语句的改进,大幅提高查询性能
- sql server性能分析--查询死锁和阻塞的sql语句
- 对多表联合查询的SQl语句的改进,大幅提高查询性能 (转)