个人理解,数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化, 物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化  物理优化的一些原则:  1). Oracle的运行环境(网络,硬件等)  2). 使用合适的优化器  3). 合理配置oracle实例参数  4). 建
原创 2021-12-08 10:25:29
207阅读
其实用inner join这些连接的消耗也挺大
pp
原创 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阅读
oracle数据库性能优化 2012-4-24 09:20阅读(2) 下一篇:老板不称职该怎么... |返回日志列表 赞赞赞赞 转载 分享 评论 复制地址 更多 1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。 2、2、调整应用程序
转载 精选 2012-04-24 21:43:47
452阅读
内存优化: 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、优化器的优化方式   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阅读
SQL语句执行步骤语法分析>语义分析>视图转换>表达式转换>选择优化器>选择连接方式>选择连接顺序>选择数据的搜索路径>运行“执行计划”选用适合的Oracle优化器RULE(基于规则)COST(基于成本)CHOOSE(选择性)访问Table的方式全表扫描全表扫描就是顺序地访问表中每条记录,ORACLE采用一次读入多个数据块(databaseblock
原创 2020-10-31 12:33:26
1388阅读
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 1 select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: 1 select id fr
转载 2019-07-30 13:26:00
224阅读
2评论
整理一下网上所看到sql优化方法1、使用大写字母书写sql,因为oracle解释器会先将sql语句转换成大写后再解释2    减少访问数据库的次数,多数情况下一条sql可以达到目的的,就不要使用多条sql。当执行每条SQL语句时,ORACLE在内部执行了许多工作:解析SQL语句,估算索引的利用率,绑定变量,读数据块等等。由此可见,减少访问数据的次数,就能实际上减少ORACLE的工作量。例如:以下有
转载 2013-07-31 15:38:00
92阅读
2评论
1. 排序合理查询条件Oracle自下而上分析顺序WHERE收条,从优化性能的角度。它建议,这些条件将能够过滤掉大量行书写的WHERE在条款结束,之间的连接条件置于其它WHERE子句之前,即对易排查的条件先做推断处理。这样在过滤掉尽可能多的记录后再进行等值连接,能够提高检索效率。比如:SELECT ...
转载 2015-10-02 14:16:00
105阅读
2评论
1 not exist 比 not in 效率高很多2 UNION ALL 比 UNION 效率高很多3 Select*,Order by,Group by,Distinct, UNION,MINUS,INTERSECT操作是相当耗时的,在View中能不使用就不要使用4 通常联接查询比子查询的...
转载 2012-06-14 09:26:00
78阅读
2评论
在 Linux 系统下使用 Oracle 数据库时,很多用户都会碰到一些性能优化的问题。为了最大程度地发挥 Oracle 数据库的性能优势,我们可以通过一些方式来对 Linux 系统进行优化。下面我们将介绍一些有关 Linux 系统下 Oracle 数据库的优化方法。 首先,我们可以通过调整 Linux 系统的内核参数来优化 Oracle 数据库的性能。在 Linux 系统中,可以通过修改 /e
原创 2024-05-17 11:10:55
102阅读
优化器(optimizer)是oracle数据库内置的一个核心子系统。优化器的目的是按照一定的判断原则来得到它认为的目标SQL在当前的情形下的最高效的执行路径,也就是为了得到目标SQL的最佳执行计划。依据所选择执行计划时所用的判断原则,oracle数据库里的优化器又分为RBO(基于原则的优化器)和C
原创 2021-08-06 16:16:44
572阅读
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):     ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection tab
转载 2010-11-09 20:32:33
404阅读
  • 1
  • 2
  • 3
  • 4
  • 5