Oracle学习篇之SQL语句的优化
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,Oracle学习篇之SQL语句的优化①在使用SELECT语句查询时,不要用"*"代替所有列名,因为这样的写法对Oracle系统来说会存在解析的动态问题。Oracle系统会通过查询数据字典来将"*"转换
千家信息网最后更新 2025年11月15日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安全错误
数据库的锁怎样保障安全
联想服务器sr860管理口
我国网络安全政策
国家网络安全保卫部门负责
bms数据库修改
软件测试软件开发成本
戴尔服务器r510 前面板拆卸
程序设计软件开发实训周周记
公网sip服务器
六盘水旅椿网络技术
软件开发的安全性如何保证
减肥瘦身app软件开发
互联网未来金融科技怎么走
一台服务器能用几块硬盘
软件开发交接协议
怎么查看服务器开25端口了吗
中国工业软件开发现况
我的世界手机版服务器无限矿
三级数据库技术 教程答案
软件开发记到什么科目
计算机网络安全是啥专业
互联网科技利弊六级作文
国家网络安全战略重要成员
网页游戏微端有的服务器进不了
深圳智能锁软件开发
查看当前数据库表空间元素个数
脉脉科技互联网考题
画数据库实体关系图
软件开发费用开票加几个点
软件开发技术报告
苏州培训软件开发