Hint(暗示)属于Oracle的SQL优化技巧之一,一般开发人员很少会接触到,多用于“走投无路”的时候(不敢修改代码或SQL逻辑时,同时新增索引后效果不显著时)。
原创
2022-09-15 14:58:18
525阅读
今天早上在做数据库的安检时候,发现一个ORA-01555错误:
这个SQL语句明显运行了很长时间而没有完成。在观察Statspack报告中这个SQL也在top
SQL中占用了大量的db cache。物理读很大。
下午做完其他的就打算优化一下这个SQL
首先查看这个SQL的执行计划
在PL/SQL Developer中的执行计划窗口中执行这个SQL然后得到执行计划:如下
可
推荐
原创
2010-12-27 17:25:31
2677阅读
点赞
2014-06-20 Created By BaoXinjian一、摘要手工指定SQL语句的执行计划尽管oracle优化器很智能,但有时候你想自己选择执行计划,可以通过hint实现。在开发测试环境中,可以通过hint测试不同执行计划的性能。Hint的缺点是增加了管理代码的额外负担,当数据库或环境发生变化时,如果不修改hint,可能导致性能下降。例如,代码中用hint指定索引,但重建索引时索
原创
2022-03-09 14:41:30
280阅读
oracle数据库性能优化 2012-4-24 09:20阅读(2)
下一篇:老板不称职该怎么... |返回日志列表
赞赞赞赞
转载
分享
评论
复制地址
更多
1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2、2、调整应用程序
转载
精选
2012-04-24 21:43:47
452阅读
个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化, 物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化 物理优化的一些原则: 1). Oracle的运行环境(网络,硬件等) 2). 使用合适的优化器 3). 合理配置oracle实例参数 4). 建
原创
2021-12-08 10:25:29
207阅读
其实用inner join这些连接的消耗也挺大
原创
2022-09-28 09:43:48
67阅读
Oracle SQL的优化规则:
[color=blue][b]尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替[/b][/color]
用IN写出来的SQL的优点是比较容易写及清晰易懂,但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
ORACLE 试图将其转换成多个表的连接
原创
2023-02-06 17:07:51
434阅读
系统基本优化
关闭selinux:
getenforce 查看selinux状态
setenforce 0 临时关闭
vim /etc/sysconfig/selinux 永久关闭
SELINUX=disabled
1.系统主机名优化
hostname 查看主机名,临时修改主机名
hostnamectl 查看主机
|本文来自:投稿文章 |作者:张涌 概念 日常工作中经常会用到分布式数据库查询,即通过DBLINK同时查询本地表和远程表。分布式查询一般有两种处理方式:一种将远程表数据取回本地,然后和本地...
原创
2021-04-16 22:09:54
491阅读
162.Oracle数据库SQL开发之 SQL优化——优化器传递提示欢迎转载,转载请标明出处:可以为优化器传递提示。提示是一个优化器指令,影响优化器对执行计划的选择。正确的提示可以改进SQL语句的性能。通过比较使用和不使用提示的SQL语句的执行计划成本,检查提示的有效性。 FIRST_ROWS(N)提示告诉优化器生成一个执行计划,来最小化查询中返回前n行所用的事件。
原创
2021-08-16 22:52:38
65阅读
内存优化:
SGA包括三个部分组成。数据缓冲区、日志缓冲区及共享池
数据缓冲区:大小由DB_Cache_Size参数决定。
select name,value from v$parameter where name in('db_cache_size','db_block_size','shared_pool_size','sort
转载
精选
2012-12-27 10:59:41
713阅读
一、事务1、简介事务是数据处理的核心,是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败。DBMS通过事务的管理来协调用户的并发行为,减少用户访问资源的冲突。 1)显示提交:当事务遇到COMMIT指令时,将结束事务并永久保存所有的更改的数据。2)显示回滚:当事务遇到ROLLBACK指令时,也将结束事务的执行,但是此时它回滚所有更改的数据到事务开始时的原始值
原创
2017-05-09 12:23:02
1223阅读
Linux下安装了数据库,安装完成后可以用,今天启动就不能用了,提示Oracle not available,后来查找资料,据说是oracle服务没有打开。如下方式可以解决问题。
[root@root~]$ su - oracle
[oracle@localhost~]$ sqlplus
Connected to an idle instance
转载
精选
2013-04-22 10:00:11
694阅读
1、优化器的优化方式
Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO)。
A、RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
转载
精选
2011-08-28 22:04:55
261阅读
1.普通方式:
select object_name,object_id,status
from
(
select object_name,object_id,status,rownum rn
转载
2011-10-19 10:44:16
600阅读
Oracle优化器存在两种优化方式:基于规则的优化方式RBO(Rule-Based Optimization)和基于代价的优化方式CBO(Cost-Based Optimization),其中RBO方式在oracle10g中已经摒弃。
RBO是一种基于规则的优化方式,优化器在分析SQL语句时遵循oracle内部预定的一些
原创
2012-04-18 15:08:45
1043阅读
一、在通常查询中,我们可以使用替代变量查询。
SQL>SELECT * FROM dept WHERE deptno = &&t;
在查询时,输入条件变量值。无论我们查询哪样信息,它都只安排一个查询计划,这样就能有效的提高查询语句的执行效率,这也是Oracle建议我们使用的查询方式。
如果不使用替代变量,而是直接输入查询条件,如:
SQL>SELECT * FR
原创
2012-10-23 11:48:47
670阅读
一、 update语句的语法与原理1. 语法单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值如:update&n
原创
2015-06-04 13:31:20
731阅读
本文的目的: 1、说一说Oracle的Optimizer及其相关的一些知识。 2、回答一下为什么有时一个表的某个字段明明有索引,当观察一些SQL的执行计划时,发现确不走索引的问题。 3、如果你对 FIRST_ROWS、 ALL_ROWS这两种模式有疑惑时也可以看一下这篇文章。 开始吧: Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行
转载
精选
2015-07-04 14:12:49
260阅读
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验。 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。 1. insert into tab1 select * from&n
转载
精选
2016-04-18 22:37:29
6360阅读