Oracle学习篇之SQL语句的优化
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,Oracle学习篇之SQL语句的优化①在使用SELECT语句查询时,不要用"*"代替所有列名,因为这样的写法对Oracle系统来说会存在解析的动态问题。Oracle系统会通过查询数据字典来将"*"转换
千家信息网最后更新 2025年02月07日Oracle学习篇之SQL语句的优化
Oracle学习篇之SQL语句的优化
①在使用SELECT语句查询时,不要用"*"代替所有列名,因为这样的写法对Oracle系统来说会存在解析的动态问题。Oracle系统会通过查询数据字典来将"*"转换成表的所有列名,这自然会消耗系统时间。
②在子查询中,[NOT] IN子句将执行一个内部的排序与合并,无论在那种情况下,[NOT] IN都是最低效的,因为他对子查询中的表执行了一个全表遍历。为了提高效率,我们可以把它改写成外连接、NOT EXISTS 或者 EXISTS 子句。
③驱动表是指被最先访问的表(通常以全表扫描的方式被访问)。而一般紧随FROM其后的表为驱动表,所以我们在表连接时要将有可用索引的表放在FROM后面,这样可以提高查询效率。
④创建主键和唯一索引的主要目的除了数据的完整性和一致性之外,还具有提高查询速度的作用。
⑤对于只从总行数中查询2%~4%的表,可以考虑创建索引。下面是创建索引的基本原则:
(1)以查询关键字为基础,表中的行随机排序。
(2)包含的列数相对比较少的表。
(3)表中的大多数查询都包含相对简单的WHRER从句。
(4)对于经常以查询关键字为基础的表,并且该表中的行遵从均匀分布。
(5)缓存命中率低,并且不需要操作系统权限。
⑥避免全表扫描大表,以下情况下Oracle就会使用全表扫描:
(1)所查询的表没有索引。
(2)需要返回所有的行。
(3)带like并使用"%"这样的语句就是全表扫描。
(4)对索引主列有条件限制,但使用了函数,则Oracle使用全表扫描。
(5)带有is null、is non null 或!=等字句也导致全表扫描。
查询
索引
系统
语句
关键
关键字
基础
子句
情况
效率
数据
排序
驱动
学习
最低
一致
操作系统
一致性
从句
作用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中文全文数据库有哪些
数据库作业疫苗预约系统
已经备案的域名换服务器
丽水工业软件开发自学步骤
软件开发的总体技术路线
ios系统软件开发方案
当前网络技术对生活的影响
电脑服务器有什么好处
郑州浪潮软件开发
茂名数据链软件开发供应商
cs自建服务器怎么添加地图
四川服务器维修价格
esight删除数据库
浙江网络技术服务咨询报价
逆战提示连接服务器失败什么问题
手游黑色沙漠获取服务器失败
泰拉瑞亚国服开服务器要花钱吗
上海鑫锘计算机软件开发
抓信息网络安全
网络安全哪年
网络安全术语拖库是什么意思
溧水区方便软件开发创新服务
打印服务器 win7
手机端的数据库软件开发
数据库查询姓刘的学生的个数
数据库三大定义语句
ceie数据库
机动都市阿尔法服务器哪个好
跨境电商网络技术风险
网联软件开发工程师