首页 > 数据库 >Oracle Hint(提示)之ORDERED

Oracle Hint(提示)之ORDERED

时间:2023-11-25 15:32:45浏览次数:34  
标签:ORDERED Hint 提示 次序 访问 所示 子句 Oracle

ORDERED提示的作用和使用方法

ORDERED提示是指导优化器,按照FROM子句中表出现的次序来访问。

ORDERED提示的使用语法如下图所示:

Oracle Hint(提示)之ORDERED_oracle

下面,我们通过实验来说明施加该提示时,优化器是如何选择表的访问次序的。

测试验证

首先,我们创建两个测试表TAB1、TAB2:

Oracle Hint(提示)之ORDERED_ordered_02

并在其上收集统计信息,如下图所示:

Oracle Hint(提示)之ORDERED_hint_03

然后我们在其这两个表上执行如下的查询:

select count(*) 
from tab1,tab2
where tab1.object_id=tab2.object_id;

当我们什么提示都不加时,其执行计划如下:

Oracle Hint(提示)之ORDERED_oracle_04

如上图所示,此时是先访问TAB1表,然后才是TAB2表。

下面,我们使用ORDERED提示,让优化器考虑先访问TAB2表。但如前所述,ORDERED提示是指定优化器,按照FROM子句中表出现的次序来访问表。所以,我们需要把TAB2表写到FROM子句中靠前的位置,如下图所示:

Oracle Hint(提示)之ORDERED_oracle_05

如果我们不加ORDERED提示,则表访问的次序,并不是一定接照FROM子句中表出现的次序来访问的。如下图所示:

Oracle Hint(提示)之ORDERED_sql优化_06

但是,ORDERED提示,并不会像LEADING提示那样,写多个会导致所有LEADING提示被忽略。如下测试所示:

Oracle Hint(提示)之ORDERED_ordered_07

知识总结

1、ORDERED提示是指导优化器,按FROM子句中表出现的次序来访问。先出现的表,先访问。

参考文档

《Oracle® Database SQL Language Reference》

标签:ORDERED,Hint,提示,次序,访问,所示,子句,Oracle
From: https://blog.51cto.com/u_13482808/8561223

相关文章

  • ORACLE: BULK COLLECT批量处理
    ORACLE批量更新大数据量操作bulkcollect与forall参考:https://blog.csdn.net/ITdevil/article/details/94582857%ROWTYPE类型声明:--规则:变量名表名%ROWTYPE(表示声明的变量类型与表OE_ORDER_HEADERS_ALL中的一条记录类型相同)v_order_header_recont.oe_order_headers_a......
  • Oracle DBA遇到的top150个问题
    作为OracleDBA(数据库管理员),以下是更多常见的Oracle数据库管理中可能遇到的150个问题案例:数据库备份和恢复失败数据库性能下降数据库连接问题长时间运行的查询和死锁数据库服务器崩溃或宕机数据库空间不足数据库日志文件过大数据库表空间损坏数据库安全漏洞数据库版本升......
  • Oracle ADG监控指标设计
    当监控OracleDataGuard环境时,以下是一些更详细的指标和监控方法,可用于确保环境的稳定性和可靠性:数据库角色和状态:主库角色和状态:查询V$DATABASE视图,获取主库的角色和状态信息。主要关注DATABASE_ROLE和OPEN_MODE列。备库角色和状态:查询V$DATABASE视图,获取备......
  • Linux下Oracle11G数据备份恢复(RMAN)
    数据库安装参考步骤1--14https://www.cnblogs.com/baixisuozai/p/17852235.html创建初始pfile文件$viminit.umpay.ora文件内容:umpay.__java_pool_size=4194304umpay.__large_pool_size=4194304umpay.__oracle_base='/DataBase/app/oracle'#ORACLE_BASEsetfromenv......
  • 【ORACLE】OALL8 处于不一致状态 SQL Error: 17447, SQLState: null
    2023-11-24[http-nio-8080-exec-9]WARNorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-SQLError:17447,SQLState:null2023-11-24[http-nio-8080-exec-9]ERRORorg.hibernate.engine.jdbc.spi.SqlExceptionHelper-OALL8处于不一致状态org.springframework.orm.jp......
  • Oracle 隐式数据类型转换的坑
    在执行sql时遇到了一个转换类型的错误 ORA-01722:invalidnumber...LEFTJOINAONB.BUSINESSID=A.ID...原因是在进行隐式数据类型转换时,BUSINESSID字段是VARCHAR2类型,其中有些业务数据包含了非数字字符,导致转换报错可以使用下面的sql查哪些数据的字段包含了非数......
  • 一键删除Oracle alert,audit,background,core,user,Clusterware logs脚本
    #!/bin/bash##ScriptusedtocleanupanyOracleenvironment.##Cleans:audit_log_dest#background_dump_dest#core_dump_dest#user_dump_dest#Clusterwarelogs##Rotates:AlertLogs#......
  • linux下安装oracle 11g(静默安装)
    关闭selinux关闭防火墙检查安装依赖包yum-yinstallbinutilscompat-libcap1vsftpdgccgcc-c++glibc-develglibcelfutils-libelfdevelcompat-libcap1libaio-develkshlibgcclibstdc++libstdc++-devellibaiolibaio-develmakesysstatunixODBCunixODBC-devel......
  • 解决python运行报错Hint: make sure your test modules/packages have valid Python n
    解决方案:在pycharm中的Terminal中运行:pip3install-ihttps://pypi.tuna.tsinghua.edu.cn/simple-rrequirements.txt问题解决优秀不够,你是否无可替代欢迎关注我的微信公众号:软件测试君......
  • oracle 日期时间函数使用总结
    常用日期数据格式获取年的最后一位,两位,三位,四位--获取年的最后一位selectto_char(sysdate,'Y')fromdual;--获取年的最后两位selectto_char(sysdate,'YY')fromdual;--获取年的最后三位selectto_char(sysdate,'YYY')fromdual;--获取年的最后四位select......