如何让oracle的select强制走索

大多数情况下,oracle数据库内置的查询优化策略还是很成功的,但偶尔也有糊涂的时候,即使有索引,也会做全表扫描,可以参考以下语句的写法,强制让select语句使用索引。

(注意:走索引不一定是最优的,不走索引不一定有问题,具体问题具体分析,看执行计划)

例如:

select /*+INDEX(xe emp_postproperty)*/  * from xemployee xe where xe.POSTPROPERTY=‘1‘

格式:

1、/*+INDEX(xe emp_postproperty)*/  这里的/*...*/中间不要有空格

2、表名要用别名,即:以上面的sql语句为例,要使用xe ,而不是xemployee 

3、数据类型不同也会影响索引,例如 where xe.POSTPROPERTY=‘1‘ where xe.POSTPROPERTY=1

时间: 2024-10-08 18:40:34

如何让oracle的select强制走索的相关文章

效率优化--并行和强制走索引

SELECT/*+parallel(T 16) parallel(B 16) parallel(D 16)*/ T.POLICY_NO, T.DEPARTMENT_CODE, T.PLAN_CODE,   FROM EPCIS_AUTO_POLICY_BASE_INFO T ,        EPCIS_AUTO_POLICY_VEHICLE_INFO B,       EPCIS_AUTO_A_PRE_MID_RESULT D WHERE T.POLICY_NO = B.POLICY_NO  

Oracle 数据库(oracle Database)Select 多表关联查询方式

Oracle数据库中Select语句语法及介绍 SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…] FROM <表名1>,<表名2>[,…] [WHERE <筛选择条件表达式>] [GROUP BY <分组表达式> [HAVING<分组条件表达式>]] [ORDER BY <字段>[ASC | DESC]] 语句说明: []方括号为可选项 [GROUP BY <分组表达式&g

配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离

配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离http://www.linuxmysql.com/14/2019/1008.htm 原文地址:https://blog.51cto.com/rscpass/2423421

Oracle 查询(SELECT)语句(二)

?  简介 在前面的 Oracle 查询 SELECT 语句(一) 中介绍了 SELECT 常用的一些基本查询语法,接下来再来看 SELECT 更深入的一些查询功能和技巧,包括以下内容: 1.   All 与 Any 运算符 2.   分页查询(rownum) 3.   集合操作符(UNION.UNION ALL.INTERSECT.MINUS) 1.   All 与 Any 运算符 1)   All 运算符,表示满足给出列表中的所有值.通常用于以下场景: 1.   查出大于30号部门所有员工最

oracle中 SELECT INTO 和INSERT INTO ... SELECT区别

在Oracle中,将一张表的数据复制到另外一个对象中.通常会有这两种方法:insert into select  和 select into from. 前者可以将select 出来的N行(0到任意数)结果集复制一个新表中,后者只能将"一行"结果复制到一个变量中.这样说吧,select into是PL/SQL language 的赋值语句.而前者是标准的SQL语句. 做一个简单测试,我们就可以很容易地看出两者的差别. 首先,我们创建两个表,一个作为源表,一个作为目标表. create

Oracle给Select结果集加锁,Skip Locked(跳过加锁行获得可以加锁的结果集)

1.通过select for update或select for update wait或select for update nowait给数据集加锁 具体实现参考select for update和select for update wait和select for update nowait的区别 2.Skip Locked(跳过加锁行获得可以加锁的结果集) Skip locked是oracle 11g引入的. 通过skip locked可以使select for update语句可以查询出(

mysql 强制走索引

查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端.虽然过程很简单,但不同的查询方式和数据库设置,对查询的性能将会有很在的影响. 因此,本文就在MySQL中常用的查询优化技术进行讨论.讨论的内容如:通过查询缓冲提高查询速度:MySQL对查询的自动优化:基于索引的排序:不可达查询的检测和使用各种查询选择来提高性能. 一. 通过查询缓冲提高查询速度 一般我们使用

Oracle中Select语句完整的执行顺序

oracle Select语句完整的执行顺序: 1.from 子句组装来自不同数据源的数据: 2.where 子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5.使用having子句筛选分组: 6.计算所有的表达式: 7.使用order by对结果集进行排序.

Oracle的select检索数据

--Select语法 select [distinct | All] select_list from table_list [where_clause] [group_by_clause] [Having condition] [order_by_clause] --语法说明 select:查询动作关键字,必须要有的. [distinct | All]:查询字段是否除重.Distinct除重,All全部查询. select_list:查询字段列表. From:关键字,必须要有. table_l