首页 > 数据库 >oracle优化器SQL

oracle优化器SQL

时间:2023-12-07 09:34:18浏览次数:31  
标签:INDEX USE NO SQL 使用 索引 表名 oracle 优化

注解必须紧跟在select、update、merge、insert或delete关键字后面。

select empid,
       ename /*+ index(e emp_pk) */
  from emp e
where empid in(1001, 1002);

访问路径提示:
/*+ FULL(表名)*/                      全表扫描
/*+ INDEX(表名)*/                     特定索引扫描
/*+ NO_INDEX(表名)*/                  不使用索引
/*+ INDEX_ASC(表名)*/                 在升序模式使用索引
/*+ INDEX_DESC(表名)*/                在降序模式使用索引
/*+ INDEX_JOIN*/                      索引合并
/*+ INDEX_FFS(表名)*/                 索引快速全扫描
/*+ NO_INDEX_FFS*/                    不使用索引快速全扫描
/*+ INDEX_SS(表名)*/                  索引跳扫
/*+ INDEX_SS_ASC(表名)*/              在升序模式使用索引跳扫
/*+ INDEX_SS_DESC(表名)*/             在降序模式使用索引跳扫
/*+ NO_INDEX_SS(表名)*/               不使用索引跳扫

合并提示:
/*+ USE_NL(表名A  表名B)*/                              使用嵌套循环合并的方法
/*+ NO_USE_NL(表名A  表名B)*/                           不使用嵌套循环合并的方法
/*+ USE_NL_WITH_INDEX(表名A  表名B)*/                   使用带索引的嵌套循环合并的方法
/*+ USE_MERGE(表名A  表名B)*/                           使用排序归并合并的方法
/*+ NO_USE_MERGE (表名A  表名B)*/                       不使用排序归并合并的方法
/*+ USE_HASH(表名A  表名B)*/                            使用散列合并的方法
/*+ NO_USE_HASH (表名A  表名B)*/                        不使用散列合并的方法

并行提示:
/*+ PARALLEL(4)*/             使用并行
/*+ NO_PARALLEL*/             不使用并行
/*+ PARALLEL_INDEX(4)*/       使用并行化索引范围扫描
/*+ NO_PARALLEL_INDEX*/       不使用并行化索引范围扫描

杂项提示:
/*+ APPEND*/                       启动直接路径插入模式,以使数据插入表末端
/*+ NOAPPEND*/                     不启动直接路径插入模式
/*+ CACHE(表名)*/                  将查询访问的数据块放置在LRU列表最近使用的一端
/*+ NOCACHE(表名)*/                将查询访问的数据块放置在LRU列表最早使用的一端
/*+ PUSH_SUBQ*/                    在尽可能最早的时间计算子查询
/*+ NO_PUSH_SUBQ*/                 在尽可能最晚的时间计算子查询
/*+ DRIVING_SITE*/                 使分布式查询中另一个数据库成为该查询的驱动者

 


————————————————
链接:https://blog.csdn.net/zhibin_086/article/details/73563574

标签:INDEX,USE,NO,SQL,使用,索引,表名,oracle,优化
From: https://www.cnblogs.com/Pro-Cyon/p/17880974.html

相关文章

  • CMC-ORACLE-函數row_number() over(partition by )函数用法
    row_number()over(partitionby)函数用法row_number()over(partitionby),作为oracle常用的分析函数,身为数据开发时必须要掌握的。不过一段时间不用,难免会有些忘记,今天整理一下一些场景下的用法。现有表(test_rownumber)有如下数据:RUSER(用户名)RID(用户编号)RSAL(用户消费)RD......
  • SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
    SQLALTERTABLE语句SQLALTERTABLE语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。ALTERTABLE-添加列要在表中添加列,请使用以下语法:ALTERTABLE表名ADD列名数据类型;以下SQL向"Customers"表添加了一个"Email"列:ALTERTABLECustomersA......
  • MySQL基础命令笔记
    MySQL基础命令笔记上学期间学习记录的笔记,放这里方便查阅。--创建数据库--CREATE创建;DATABASE数据库;CREATEDATABASEstuinfo--默认字符集DEFAULTCHARACTERSETutf8mb4--排序规则DEFAULTCOLLATEutf8mb4_general_ci;--显示当前服务器下,所有数据库SHOWDA......
  • 【数据库概论】第三章 SQL简述、数据定义和索引
    3.1SQL概述3.1.1产生与发展最早在IBM的关系数据库管理系统原型SystemR上实现,后来美国国家标准局(ANSI)批准SQL作为关系数据库语言的美国标准,同年公布了SQL标准文本。近些年来SQL标准的内容越来越丰富和复杂。目前没有任何一个数据库系统能够支持SQL标准的所有概念和特性,同时不少......
  • Java 操作 MySQL 数据库
    Java入门-获取MySQL数据java代码/***@Author编程无忧*@Date2022/1/1313:17*@Desc*/publicclassmysqlTest{@TestpublicvoidgetMysqlCon(){//声明Connection对象Connectioncon;//驱动程序名Stringdriver=......
  • SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
    SQLALTERTABLE语句SQLALTERTABLE语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。ALTERTABLE-添加列要在表中添加列,请使用以下语法:ALTERTABLE表名ADD列名数据类型;以下SQL向"Customers"表添加了一个"Email"列:ALTERTABLECustomers......
  • python连接mysql、oracle数据库
    python版本:3.10.5mysql版本:8.0.27oracle版本:oracle12c一、python连接mysql数据库安装第三方依赖PyMySQL,终端执行如下命令:pipinstallPyMySQLPyMySQL使用importpymysqlconfig={'host':'127.0.0.1','port':3306,'u......
  • 开发者的福音:TinyVue 组件库文档大优化!类型更详细,描述更清晰!
    你好,我是Kagol。前言从今年2月份开源以来,有不少朋友给我们TinyVue组件库提了文档优化的建议,这些建议都非常中肯,我们也在持续对文档进行优化,并且从中总结出了大家对于文档优化的一些共性问题,形成了一份《组件demo和api文档编写规范》为了提升开发者阅读文档的体验,从9月......
  • Tetadata性能优化案例
    1.不当使用SET表问题描述:建表不指定MULTISET关键字,默认SET表(不允许重复记录),如果建了SET表又未指定UPI,则每次在插入数据时都会进行Duplicaterowcheck操作消耗额外的系统资源建议:建表时统一加上MULTISET关键字如果需要保证表中没有重复记录,则可在设置PI时指定UNIQUEPRIMARYIND......
  • 大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据库
    写在前面这篇文章被搁置真的太久了,不知不觉拖到了周三了,当然,也算跟falsk系列说再见的时候,真没什么好神秘的,就是个数据库操作,就大家都知道的CRUD吧。FlaskSQLAlchemy的使用1、FlaskSQLAlchemy简介FlaskSQLAlchemy是基于Flaskweb框架和SQLAlchemyORM(对象关系映射)的工具......