http://blog.chinaunix.net/uid-13552913-id-3028644.html

Oracle 修改字段顺序的两种方法

如果要修改字段顺序,一般情况可以使用以下步骤:
--(1)备份目标表数据
create table 临时表 as select * from 目标表;
--(2)drop 目标表
drop table 目标表;
--(3)再重新按照要求的字段顺序建表;
create table 临时表 (col1,................coln);
--(4)之后用select将数据从临时表导回。

----------------------------------------------

伪列rownum,连接操作符,别名,select list(select之后,from之前的部分)

select user_id,user_account||','||user_type aa
from tis_ft_user
where rownum<5;

--------------------------------------------

select systimestamp - 7 from dual;

systimestamp这个函数返回的数据类型是TIMESTAMP WITH TIME ZONE.

The return type is TIMESTAMP WITH TIME ZONE.

systimestamp -7这个表达式

通常一个表达式不能包含不同数据类型的值,那么上面这个表达式发生隐式的数据转换,将7转成datetime类型,

数据类型优先级,datetime和interval数据类型>binary_double>binary_float>number>character>所有其它的内置数据类型。

select * from e1 as of timestamp systimestamp - interval '6' minute
where id not in(select id from e1);

这个表达式是一个函数减去一个间隔常量

两种数据类型进行运算

systimestamp - interval '6' minute

------------------------------------------

select * from tis_ft_recharge_record t
where
t.waybill_id is not null
and instr(t.audit_time,'2017-04-26')>0
and t.status='99';

where condition

一个条件指定了一个组合,这个组合是由一个或多个表达式和逻辑操作符,并返回true,false,unknown值。

t.waybill is not null这是一个null条件  格式是 expr is not null

instr(t.audit_time,'2017-04-26')>0这是一个比较条件,而且前面是一个函数表达式,后面是一个常量表达式,由一个比较条件构成一个简单比较条件。

格式是 expr1 >|<|=|<>|... expr2

t.status='99'这是一个比较条件,等号两边都是一个简单表达式,左边是一个列,右边是一个字符串。

三个条件用逻辑条件and结合起来构成一个条件。

1=1总是计算为true

----------------------------------------------------

表结构

desc TMP_UPSTATE_CASEKEY
Name                Null     Type       
------------------- -------- ----------
TMP_UPSTATE_CASEKEY NOT NULL CHAR(14)   
TMP_NUM_STATUS_ID   NOT NULL NUMBER(38)
UPDATED_DATE        NOT NULL DATE

需要生成的SQL

insert into TMP_UPSTATE_CASEKEY values('TMP0000001', 1, sysdate);

存储过程实现

create or replace procedure proc_casekey_upstate
as
  casekey char(14);
begin
  for i in 1..10000000 loop
    casekey := 'TMP'||lpad(i,7,0);   -- TMP0000001
    insert into TMP_UPSTATE_CASEKEY values(casekey, 1, sysdate);
  end loop;
  commit;
end;

begin
  proc_casekey_upstate();
end;

测试发现生成一千万条数据用了14分钟左右,性能还是可以了,如果先去掉TMP_NUM_STATUS_ID的外键估计更快。

下面的方式速度更快,我测试插入一百万条记录十秒左右,当然了,这跟机器性能也有关系。

insert into TMP_UPSTATE_CASEKEY select 'TMP'||LPAD(rownum,7,0),1,sysdate from dual connect by level <= 1000000;

oracle-sql分析练习的更多相关文章

  1. 数据治理中Oracle SQL和存储过程的数据血缘分析

    数据治理中Oracle SQL和存储过程的数据血缘分析   数据治理中的一个重要基础工作是分析组织中数据的血缘关系.有了完整的数据血缘关系,我们可以用它进行数据溯源.表和字段变更的影响分析.数据合规性 ...

  2. Oracle sql语句执行顺序

    sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...

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

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

  4. MySQL SQL分析(SQL profile)

    分析SQL优化运营开销SQL的重要手段.在MySQL数据库.可配置profiling参数启用SQL分析.此参数可以在全局和session水平集.级别则作用于整个MySQL实例,而session级别紧影 ...

  5. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...

  6. Oracle SQL优化[转]

    Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...

  7. Oracle SQL调优记录

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

  8. Oracle SQL高级编程——分析函数(窗口函数)全面讲解

    Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...

  9. Oracle SQL语句执行步骤

    转自:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762345.html Oracle中SQL语句执行过程中,Oracle内部解析原理如下 ...

  10. 品味性能之道<六>:图形化SQL分析工具

         在上一章里,重点分享了命令行SQL分析工具的使用方法.在本章将重点分享PL/SQL的SQL分析工具. 一.如何打开PL/SQL执行计划      开启PL/SQL这工具,推荐如下方法: 点击 ...

随机推荐

  1. Linux学习 : 移植qt 5.6.3 及 tslib 1.4

    (一) 移植 qt5.6.3 一.qt简介: Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具 ...

  2. loadrunner json参数化

    因为json格式有{},所以LR参数化时如果也用默认的{}的话,会冲突,这样脚本运行时就无法识别,导致不能正确的读取参数化文件里的内容,此时把参数化的{}改成其他符号即可,比如<>

  3. Zabbix4.0添加端口和进程监控

    一:Zabbix设置主动模式: vim /etc/zabbix/zabbix_agent.conf Server=192.168.1.10 #被动模式的serverip地址,如果设置纯被动模式,可以注 ...

  4. 201621123001 《java程序设计》 第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之s间的联系.步骤如下: 1.1 写出 ...

  5. angular2组件通讯的几种方式

    最近刚刚接触angular2,对ng2也是一知半解,如有说得不对的地方欢迎指出,欢迎加q共同探讨学习991085978: 1.通过输入型绑定把数据从父组件传到子组件 HeroChildComponen ...

  6. SharePoint online Multilingual support - Settings

    博客地址:http://blog.csdn.net/FoxDave This post will talk about how to enable sharepoint online site mul ...

  7. JAVA基本类型和包装类

    JAVA的包装类 Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表 ...

  8. Array.apply(null, {length: 20})和Array(20)的理解

    话说今晚在学习Vue.js教程里:Render函数,这一章节是发现了一个问题,就是利用下面的这个render函数可以渲染20个重复的段落: render: function (createElemen ...

  9. 2019-03-08 RF 调试Zibee 数据

  10. python生产者消费者模型优点

    生产者消费者模型:解耦,通过队列降低耦合,支持并发,生产者和消费者是两个独立的并发体,他们之间使用缓存区作为桥梁连接,生产者指望里丢数据,就可以生产下一个数据了,消费者从中拿数据,这样就不会阻塞,影响 ...