oracle采用物理读和逻辑读,第一次查询数据库采用的是物理读,以后如果使用相同的sql语句查询,那么它会采用逻辑读,直接从内存中读取数据。

采用执行计划查看执行顺序和耗时:一般查看object name、cost、time、Cardinality;先查看执行顺序,一般层级最小的description最新执行,然后调优cost最大的句子(一般是用等价代换和采用索引)。

1.尽量使用视图。

2.参考网上调优经验,使用等价代换替换查询速度慢的sql语句,一般like,not in或in,order by,group by等比较耗时。

3.不要一次性全部查询出来,要多少个列,就从查询的表中取出多少个列,这样会减少检索时间。

4.使用索引会大大的提高检索速度,如果一张表中存在主键,那么它默认是索引;如果在where语句存在多个组合条件,试着添加联合索引(不过要尽量少使用联合索引)或者单索引。

  1)Oracle的一般使用B-Tree索引。

5.使用sqlplus查看执行时间和追踪执行过程,set timing on:查看时间,set autotrace traceonly追踪执行过程,执行这两句sql以后,再执行查询的sql;不过要注意,如果服务器上跑着其他业务消耗cpu,所以可能会消耗查询时间,这个要视具体情况而定。

创建视图:

create or replace view view_name as

select * from table_1 where id=1;

视图就是相当于一些sql语句,也可以把查询结果理解为视图。

创建数据库连接(dblink):

CREATE DATABASE LINK DBLINK

CONNECT TO USERNAME IDENTIFIED BY PASSWORD

USING '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTIP)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =ORCL)

)

)';

存储过程:

存储过程就是相当于在查询时,可以传入参数,并且可以进行判断来进行组合sql语句,存储过程一般配合Cursor使用。

插入数据:

insert into table(column1,column2)

select column1,column2 from table2;

insert into table(colunm1,column2) values(value1,value2);

左连接:

select t1.* from table_1 t1 left join (select * from table_2 ) on t1.id=t2.id。

这个是以table_1为主表,会列出table_1中所有的行,然后再用table_1的id去检索table_2的表,如果存在一行记录table_1的id等于table_2的id,那么就在table_1中的id这一行的后面加上table_2中相等的行的列。如果table_2中多行相等于table_1中的id,那么就添加多行。

更改表字段属性:

alter table table1 modify column varchar(64);

删除表索引:

drop index IDX_NAME;

使用over函数去除重复内容:

select * from (select * ,row_num() over(partition by column1 order by column2) as rn from table1) where rn=1

可以使用as来对列进行重命名。

Oracle数据库调优总结的更多相关文章

  1. c 语言写的高级Oracle®数据库调优及监控工具

    http://www.lab128.com.cn/lab128_why.html ###另外一款ORALCE Monitor tool freee https://www.myorasql.com/ ...

  2. Oracle SQL 调优健康检查脚本

    Oracle SQL 调优健康检查脚本 我们关注数据库系统的性能,进行数据库调优的主要工作就是进行SQL的优化.良好的数据架构设计.配合应用系统中间件和写一手漂亮的SQL,是未来系统上线后不出现致命性 ...

  3. MySQL面试必考知识点:揭秘亿级高并发数据库调优与最佳实践法则

    做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟 ...

  4. Oracle SQL调优记录

    目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太 ...

  5. [转]10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则

    转:https://mp.weixin.qq.com/s/RYIiHAHHStIMftQT6lQSgA 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离 ...

  6. Mysql数据库调优和性能优化的21条最佳实践

    Mysql数据库调优和性能优化的21条最佳实践 1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开 ...

  7. 记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?)

    记一次数据库调优过程(IIS发过来SQLSERVER 的FETCH API_CURSOR语句是神马?) 前几天帮客户优化一个数据库,那个数据库的大小是6G 这麽小的数据库按道理不会有太大的性能问题的, ...

  8. [转]oracle性能调优之--Oracle 10g AWR 配置

    一.ASH和AWR的故事 1.1 关于ASH 我们都知道,用户在ORACLE数据库中执行操作时,必然要创建相应的连接和会话,其中,所有当前的会话信息都保存在动态性能视图V$SESSION中,通过该视图 ...

  9. 一个InnoDB性能超过Oracle的调优Case

    年前抽空到兄弟公司支援了一下Oracle迁移MySQL的测试,本想把MySQL调优到接近Oracle的性能即可,但经过 @何_登成 @淘宝丁奇 @淘宝褚霸 @淘伯松 诸位大牛的指导和帮助(排名不分先后 ...

随机推荐

  1. Android-自定义联系人快速索引

    效果图: 布局去指定 view.custom.shangguigucustomview.MyCustomIndexView 自定义View对象 <!-- 自定义联系人快速索引 --> &l ...

  2. Oracle 程序中超好用的日志记录TYPE,可以直接Copy使用

    创建类型名称:LOGGER_FACTORY Type 说明: CREATE OR REPLACE TYPE "LOGGER_FACTORY" AS OBJECT( v_progra ...

  3. 【原创】在Windows系统中使用VC9、VC11编译32位、64位PHP及其扩展

    项目中需要使用runkit模块实现AOP,但是团队成员的开发环境都是Windows,而runkit模块官方没有提供Windows环境下的dll扩展,只能自己编译. 下面是编译过程的分类总结.(操作系统 ...

  4. sql 常用基础查询

    *查询第一条记录:select   top   1   *   from   tablename *随机查询N条记录:select top N * from table order by newid( ...

  5. SQL语句优化 (二) (53)

    接上一部分 (4)如果不是索引列的第一部分,如下例子:可见虽然在money上面建有复合索引,但是由于money不是索引的第一列,那么在查询中这个索引也不会被MySQL采用. mysql> exp ...

  6. “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. JSP的介绍及语法详解

    一.简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅长显示一个完整的 ...

  8. day 08 课后作业

    # -*- coding: utf-8 -*-# @Time : 2018/12/27 17:27# @Author : Endless-cloud# @Site : # @File : day 8课 ...

  9. iOS9下UICollectionViewCell的awakeFromNib问题

    最近项目测试出一个隐藏已久的bug,经过多番测试,发现在iOS9下自定义的一个UICollectionViewCell只走一次awakeFromNib. 具体情况是,项目中有一个控制器用到了自定义的U ...

  10. JVM调优总结 -Xms -Xmx -Xmn -Xss(转自:iteye unixboy)

    堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...