oracle hints】的更多相关文章

在向大家详细介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家有用.基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比.此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行.例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我…
在向大家具体介绍Oracle Hints之前,首先让大家了解下Oracle Hints是什么,然后全面介绍Oracle Hints,希望对大家实用.基于代价的优化器是非常聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了非常差的运行计划,使某个语句的运行变得奇慢无比. 此时就须要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成运行计划,从而使语句高效的运行.比如,假设我们觉得对于一个特定的语句,运行全表扫描要比运行索引扫描更有效…
普及下Oracle hints的语法:{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */ 1.hint只能出现在诸如select.insert.update.delete等关键字的后面,否则将视为无效提示.2.+号必须紧跟着*号,且中间不能有空格,否则视为无效提示(也就是会把它当普通注释处理啦).hint跟+号之间是否有空格就无所谓啦.3.如果包含多个提示,看网上有人说需要在每个提示间用一个或多个空格隔开.测试结果,不…
oracle hints 今天是2013-10-08,对于oracle hint有很多,具体可以参考联机手册: http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements006.htm#BABIJGJF http://docs.oracle.com/cd/E11882_01/server.112/e41573/hintsref.htm#PFGRF501 刚刚开始,我进行hash join连接发现如下: SQL> selec…
特别介绍给大家Oracle Hints之前,让我们知道下Oracle Hints什么,然后好Oracle Hints,我们希望实际.基于成本的优化器是很聪明,在大多数情况下,将选择正确的优化,减少DBA负担. 但有时它也是聪明智慧的错.行计划,使某个语句的运行变得奇慢无比. 此时就须要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成运行计划.从而使语句高效的运行. 比如,假设我们觉得对于一个特定的语句,运行全表扫描要比运行索引扫描更有效,则我们就能够指示优化器使用全表扫描.…
在SQL语句优化过程中,经常会用到hint, 以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消…
PQ_DISTRIBUTE是并行的hints中稍微复杂一点的一个 下面就这个hints做以下说明: 1.使用格式 /+ PQ_DISTRIBUTE(tablespec outer_distribution inner_distribution )/ tablespec:表名 outer_distribution:外表如何分割 inner_distribution:内表如何分割 2.选项说明 (1)HASH, HASH 当两个表大小相当而且是采用hash-join 或 sort merge joi…
oracle数据库plsql developer   目录(?)[-] 一     SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外键 创建删除索引 创建修改删除视图 二     SQL查询 基本的SQL语句 unionminusintersect 内连接外连接 子查询关联子查询 betweeninexists 复制表insert into selectselect into from 三     SQL查询优化 尽量少用 IN…
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从而使语句高效的运行.例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全表扫描.在Oracle 中,是通过为语句添加 Hints(提示)来实现干预优化器优化的目的.不建议在代码中使…
背景 每当交易高峰时期,可能会暴露一些平时无法发现的问题,机遇和挑战并存.下面聊聊最近解决的一个案例,因为执行计划走错导致慢查询,进而引发应用线程阻塞.线程池爆满,最后应用功能瘫痪.如何标本兼治的解决问题,需要很多思考. 问题分析 step1 应用瘫痪 用户反应某查询功能一直处于加载中,并出现错误提示.查看后台应用日志,调用远程查询服务出现大量超时. step2 线程池爆满 通过jstack命令来分析查询服务jvm线程堆栈,发现设定的线程池已经满了,而且大部分线程阻塞在了数据库查询阶段(如下图)…