Sql优化和体系结构

时间:2022-12-15 08:59:50
01、SQL优化与体系结构 本章目标: 1.了解sql优化基本技巧 2.掌握使用索引提高查询效率 3.了解对表进行分区操作 4.了解常见数据库对象   1.sql优化技巧 1)一般优化技巧:      不要用*代替所有列名      删除所有数据用truncate代替delete      用not exists 代替 not in       用exists 代替 in      用exists代替distinct 注:后三点在11g之前有用,11g之后本身进行了优化   第5条的实例如下:查询出出现在教师表里的不同的部门编号   select distinct t.deptno from teacher t where t.deptno is not null ; select * from dept where exists (select 1 from teacher where teacher.deptno = dept.deptno)   2)表链接方法      驱动表的选择      where子句的连接顺序:表连接关系放在前面,过滤记录越多的条件字句应放置到后面   sql执行顺序是从右往左进行。   驱动表: from后面靠右的那个表就是驱动表(两张表都没有索引的情况);有索引的情况下,应该是没索引的那张表是驱动表      驱动表要选择小表   3)索引 索引分为逻辑分类和物理分类,逻辑分类包括:单列或组合索引、唯一或非唯一索引、基于函数索引;物理分类包括:分区或非分区索引、B树索引、正常或反向键索引、位图索引   什么情况下可以创建索引?一般主要包括:频繁搜索的列、经常排序分组的列、经常链接的列、指定单独的表空间(可以增加IO性能)   索引使用原则:表中导入数据后再创建索引;在适当的表和字段上创建索引,如果经常检索的数据少于表中15%则需要创建;限制表中索引的数目   4)表分区   把表中数据划分成若*分,并存储在不同的位置。表分区的有点是能改善查询的性能,而且表也更容易管理,便于备份和恢复同时也提高了数据的安全性。
1 select * from jx0404 partition(pt_2016-2017-1);