Oracle学习篇之SQL语句的优化
发表于:2024-10-03 作者:千家信息网编辑
千家信息网最后更新 2024年10月03日,Oracle学习篇之SQL语句的优化①在使用SELECT语句查询时,不要用"*"代替所有列名,因为这样的写法对Oracle系统来说会存在解析的动态问题。Oracle系统会通过查询数据字典来将"*"转换
千家信息网最后更新 2024年10月03日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安全错误
数据库的锁怎样保障安全
常州运营网络技术优势
泗阳自动化网络技术解决方案
湖北台家庭教育与网络安全视频
软件开发职业的要求
软件开发学什么语言最好
职教计算机网络技术难不难
软件开发能开发什么软件
软件开发本质 豆瓣
海康存储服务器更换散热风扇
软件开发年度目标分解
刺客传说服务器可以换吗
番茄数据库怎么查基因
360网络安全代理
GALE数据库技术工作
数据库测试效果
对照检查部队网络安全
足球经理数据库加载太慢
杭州管理系统软件开发
如何进行数据库维护
苏州果盘网络技术有限公司网站
扫黑除恶网络安全知识点
合肥八八六软件开发公司怎么样
软件开发信创要怎么注意
鹏程科技互联网
秦淮数据库的法人是谁
qt读达梦数据库
深圳dell服务器代理
德宏手机软件开发
2021网络安全管理员头像
辽宁苹果软件开发定制