Oracle学习篇之SQL语句的优化
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Oracle学习篇之SQL语句的优化①在使用SELECT语句查询时,不要用"*"代替所有列名,因为这样的写法对Oracle系统来说会存在解析的动态问题。Oracle系统会通过查询数据字典来将"*"转换
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
科技互联网
科技与互联网
科技互联网政务服务
互联网科技金融
互联网的科技创新
喔噻互联网科技
美国互联网科技
互联网科技小贷
郑州华宇互联网科技
互联网科技股午盘股票涨跌
无锡溥仪互联网科技有限公司
现代科技和互联网有关系吗
互联网经济与金融科技
互联网和黑科技的看法
中国航天科技大学国际工业互联网
亳州好赞互联网科技有限公司
佛山市拉法互联网科技有限公司
爱医互联网络科技
山东有哪些互联网科技公司
互联网高科技行业有哪些企业
互联网金融监管科技数据
科技与互联网哪个更好
重庆威客帮互联网科技
花神(南京)互联网科技有限公司
移动互联网年度科技创新
浙南科技城互联网大厦建设工程
翼展科技 首家互联网医院
湖北辰鑫科技互联网
银川新华互联网科技学校原画
互联网科技职业技能培训学校