1.1. 关键字:联机重定义/SYNC_INTERIM_TABLE/GATHER_TABLE_STATS 1.2. 需求:数据表的清理机制需要优化 离线消息表采用delete的方式定期对过期的数据进行清理,在数据库检测日志中发现每次清理时间都特别长,且清理过程中数据库服务器IO和CPU使用率超高,希望对清理机制进行优化. 1.3. 分析:数据量大 1.涉及到的表有50张,从OFFMSG_0到OFFMSG_49,数据量比较大,最少的一张有一千多万数据,35G左右,最大的一张有几亿数据,超过300G…
一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name VARCHAR2(254) default '', content CLOB default '', create_time VARCHAR2(26) default '', cindex NUMBER default 0, status VARCHAR2(4) default '0' not n…
创建表 建表语法: CREATE TABLE 表名 ( 列1 数据类型 [primary key], 列2 数据类型 default 默认值 [not null], …, constraint 约束名 约束类型(列), … ) / 例如,创建学生信息表: --创建表 CREATE TABLE INFOS( STUID VARCHAR2(7) NOT NULL, --学号 学号=‘S’+班号+2位序号 STUNAME VARCHAR2(10) NOT NULL, --姓名 GENDER VARCH…
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值. AD:WOT2015 互联网运维与开发者大会 热销抢票 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值. 创建序列需要CREATE S…
一.问题描述:根据更新时间倒序排序然后分页查询数据,但是点击分页操作的时候,会出现数据重复看似没有操作的情况 二.问题错误原因分析 分页查询的SQL语句: select * FROM (select rownum rn,tmp_tb.* ' order by UPDATE_TIME desc) tmp_tb ) ; 怎么分析都觉得没有错啊,通过网上查询才发现问题所在,参考地址:https://jingyan.baidu.com/article/7908e85ca2d929af491ad260.h…
修改表PTLOG的列TYPE的char(1)为varchar(2)类型? 在PTLOG 表新增一列 TYPE_2:ALTER TABLE PTLOG ADD TYPE_2 VARCHAR2(2) default NULL; 更新TYPE_2与TYPE一致: update PTLOG SET TYPE_2 = TYPE ; 删除TYPE列ALTER TABLE PTLOG DROP COLUMN TYPE; renameTYPE_2列为TYPEALTER TABLE PTLOG RENAME CO…
使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('LIJIAMAN','BSTEST', DBMS_REDEFINITION.CONS_USE_PK); 如果表上没有主键,则会报错:SQL> exec dbms_redefinition.start_redef_table('LIJI…
Oracle 支持在线重定义表,也就是说我们可以在修改表结构(DDL)的同时进行相关的DQL.DML操作,使得前端的DML根本感觉不到表结构实际上已经发生了变化,对于用户而言是完全透明的.当然在线重定义期间,前端性能会稍微有所下降.Oracle提供的重定义包dbms_redefinition即是用与完成此操作.其实质是Oracle使用了智能物化视图及物化视图日志的方式.在对象结构重组期间,表现为一个本地对象的复制,重组期间发生的任何变化都会被刷新到最新. 1.在线重定义表的主要功能:     修…
为了最大限度保障数据的安全性,同时能在不可预计灾难的情况下保证数据的快速恢复,需要根据数据的类型和重要程度制定相应的备份和恢复方案.在这个过程中,DBA的职责就是要保证数据库(其它数据由其它岗位负责)的高可用和高性能,比如:如何避免数据库发生常规错误.如何增加MTBF.如何降低MTTR.使用使用哪些冗余技术保护关键组件以及如何做到最小化数据丢失. 在社区最近的在线交流中集中讨论了Oracle数据库备份恢复相关的问题,同时也拓展到了其它方面,比如性能问题.案例分析.RAC相关的备份问题及生产环境中…
笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Load_Count,T.Read_Count) desc 2.取两列之和 select t.*,(nvl(T.Load_Count,0)+nvl(T.Read_Count,0 )) as c FROM t_doc T order by c desc 3.取两列字符串连接 select T.Load_Co…