一般优化技巧

  建议不用"*"代替所有列名

  删除所有数据用TRUNCATE代替DELETE

  用NOT EXISTS 代替NOT IN

  用EXISTS代替IN

  用EXISTS代替DISTINCT

表连接方法

  驱动表的选择

  WHERE子句的连接顺序

    表连接关系放在前面

    过滤越多的条件子句应放置到后面

索引

  索引分类

    B树索引

    语法:CREATE [UNIQUE]INDEX index_name ON tablename (column_list)

       [TABLESPACE tablespace_name];

    其他索引:

      唯一索引

      反向键索引

      位图索引

      组合索引

      函数索引

    索引原则: 

      创建索引原则:

        频繁索引的列

        经常排序、分组的列

        经常连接的列

        指定单独的表空间

      不适合建立索引原则

        数据量小

        仅包含几个不同值的列

        数据表操作特别频繁、业务性能要求高

    管理索引

      索引使用原则:

         表中导入数据后再创建索引。否则每次表中插入数据时必须更新索引。

        在适当的表和字段上创建索引。如果经常检索的数据少于表中的15%则需要创建索引。

        限制表中索引的数目。索引越多,在修改表时对索引做出修改的工作量越大。

      索引常见错误用法:

        LIKE

        函数

        运算

表分区

  把表中数据划分称若干部分,并存储在不同的位置

  优点:

    改善查询性能

    表更容易管理

    便于备份和恢复

    提高数据安全性

  表分区分类

    范围分区:

      列值的范围作为划分条件

    散列分区:

      列的hash值自动分配

    列表分区:

      列值必须明确指定

      一个分区列

    复合分区:

      先按第一分区方法分区

      再按第二分区方法划分子分区

    其他分区

小结:

  一般SQL优化有哪些手段?

  建议不用"*"代替所有列名

  删除所有数据用TRUNCATE代替DELETE

  用NOT EXISTS 代替NOT IN

  用EXISTS代替IN

  用EXISTS代替DISTINCT

  索引起到什么作用?索引有哪些分类?

  逻辑分类:

    单列或组合索引

    唯一或非唯一索引

    基于函数索引

  物理分类:

    分区或非分区索引

    B树索引

    正常或反向键索引

    位图索引

  表分区使用情况?表分区有哪些分类?

    表分区:

      把表中数据划分称若干部分,并存储再不同的位置

    优点:

      改善查询性能

      表更容易管理

      便于备份和恢复

      提高数据安全性

    表分区分类:

      范围分区:

        列值的范围作为划分条件

      散列分区:

        列的hash值自动分配

      列表分区:

        列值必须明确指定

        一个分区列

      复合分区:

        先按第一分区方法分区

        再按第二分区方法划分子分区

      其他分区:

20170623_oracle_优化与体系结构的更多相关文章

  1. gcc 优化选项 -O1 -O2 -O3 -Os 优先级

    http://hi.baidu.com/xiaole10368/item/7cea9b1369cc240db88a1a5c 少优化->多优化: O0 -->> O1 -->&g ...

  2. gcc都做了什么优化

    直接上程序: setjmp和longjmp是处理函数嵌套调用的,goto语句不能跨越函数,所以不选择goto. #include <setjmp.h> int setjmp(jmp_buf ...

  3. Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用

    catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...

  4. SharePoint咨询师之路:设计之前的那些事一:容量

    提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识. 咨询师更多的时候是解决方案提供者,那么他们如何能够提供有效的SharePoint ...

  5. 编译:一个 C 程序的艺术之旅(转载)

    C 程序为什么要编译才能执行?一个 C 程序在变成可执行文件的过程中,为什么要经过预处理.编译.汇编.链接这四道工序?让我们从这段简单的 C 程序开始. 为什么要编译 这并不是一个简单的问题.我们知道 ...

  6. Java面向对象 IO (一)

     Java面向对象  IO  (一) 知识概要:                (1)IO概述 (2)IO流的常用基类 (3)IO程序的书写 (4)字符流  写入  读取  文本文件的两种读取方式 ...

  7. 性能学习随笔(1)--负载均衡之f5负载均衡

    负载均衡设计涉及软件负载和硬件负载,下文转自CSDN中一篇文章涉及f5硬负载知识 ----转载:https://blog.csdn.net/tvk872/article/details/8063489 ...

  8. 论文笔记系列-Neural Network Search :A Survey

    论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...

  9. CPU性能过剩提升乏力影响未来行业发展吗?

    导读 虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了.和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题. 虽然CPU仍然在 ...

随机推荐

  1. 阿里云报错Redirecting to /bin/systemctl restart sshd.service

    转:http://blog.csdn.net/caijunfen/article/details/70599138 云服务器 ECS Linux CentOS 7 下重启服务不再通过 service  ...

  2. ORACLE in与exists语句的区别(一)

    select * from Awhere id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B ...

  3. live555简介

    live555 编辑   目录 1live555简介 2Live555 Streaming Media整体框架 3openRTSP客户端流程     1live555简介编辑 Live555 是一个为 ...

  4. [C语言]输入一行整数,用空格分开,回车结束。

    在屏幕一行中的字符会保留在缓冲区,例如 1 2 3 4 5 6 ; i < n; i++) { scanf("%d",&cur); array[i] = cur; c ...

  5. GNU编译器学习 --> 如何链接外部库【Linking with external libraries】

    库也就是我们常说的library,一个库是若干个已经编译过的目标文件(.obj)的集合,它可以被链接到程序里.那么我们最常见的使用就是,我们在编程时会调用一些函数,这些函数别人已经写好了,它就放在库里 ...

  6. C++中const与constexpr区别

    对于对象来说 const指的是编译期常量和运行时常量,两者并没有区分 constexpr特指编译期常量 对于函数来说 const可以修饰类的成员函数,被修饰的函数在执行期间不会改变对象的值. clas ...

  7. [Python3网络爬虫开发实战] 6.2-Ajax分析方法

    这里还以前面的微博为例,我们知道拖动刷新的内容由Ajax加载,而且页面的URL没有变化,那么应该到哪里去查看这些Ajax请求呢? 1. 查看请求 这里还需要借助浏览器的开发者工具,下面以Chrome浏 ...

  8. 一次ORA-01555问题分析,及SQL优化。

    前言 客户说: 我在数据库上继续运行昨日的脚本,但发现有个子过程在运行10个小时后报错: 烦请协助看看... 错误码是:ORA-01555: snapshot too old: rollback se ...

  9. linux性能优化cpu-01性能指标

    学习性能优化的第一步,一定要了解性能指标. 性能指标是什么? 当我们看到性能指标时一定先想到“高并发”.“响应快”,这个两个指标也对应着性能优化的两个核心指标—— “吞吐率”和“低延迟”. 这两个指标 ...

  10. c++基础_杨辉三角形

    #include <iostream> using namespace std; int main(){ int n; cin>>n; ][]; ;i<n;i++){ a ...