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. 6.1 C++ string类型变量的定义以及输入与输出

    参考:http://www.weixueyuan.net/view/6389.html 总结: 在C++中提供了一个型的内建数据类型string,该数据类型可以替代C语言中char数组. 与C风格的c ...

  2. HashMap和Hashtable有什么区别?

    HashMap和Hashtable都是实现Map接口的,但是: 1.HashMap允许键和值都是null的,而Hashtable不允许键和值为null 2.Hashtable是同步的,而HashMap ...

  3. BeanUtils.copyProperties方法,当属性Date为null解决

    问题描述:org.apache.commons.beanutils user对象和formBean对象都有属性birthday,而且都是java.sql.Date类型的 当进行BeanUtils.co ...

  4. spring源码研究2 自定义标签实现及使用

    1.自定义标签实现及使用参考: http://blog.csdn.net/fighterandknight/article/details/50112701 1)创建一个需要扩展的组件 User.ja ...

  5. L273 NCAA

    On Friday, the system that prevents college athletes from being compensated for their labor (beyond ...

  6. day 29 socket 理论

    网络编程(socket,套接字)   服务端地址不变 ip + mac 标识唯一一台机器 ip +端口 标识唯一客户端应用程序 套接字: 网络编程   网络编程 一.python提供了两个级别访问的网 ...

  7. nginx的相关配置记录和总结

    前言 本文旨在对nginx的各项配置文件和参数做一个记录和总结. 原因是在配置框架和虚拟目录,web语言解析的nginx环境的时候遇到各种问题和参数,有时百度可以解决,有时直接复制粘贴,大都当时有些记 ...

  8. js- 类数组对象

    JavaScript中,数组是一个特殊的对象,其property名为正整数,且其length属性会随着数组成员的增减而发生变化,同时又从Array构造函数中继承了一些用于进行数组操作的方法. 而对于一 ...

  9. json与cjson

    json安装: http://blog.csdn.net/u011641885/article/details/46755225 tar xvf json-c-0.9.tar.gz cd json-c ...

  10. 终极C语言指针

    // ex1.cpp : Defines the entry point for the console application. // #include "stdafx.h" # ...