Oracle
VincentQB
就是一混子
展开
-
环境变量NLS_LANG 语言_地区.字符集的获取
环境变量NLS_LANG 语言_地区.字符集的获取原创 2018-01-07 10:35:20 · 3282 阅读 · 0 评论 -
Oracle dbms_random 随机函数用法简单摘录
oracle dbms_random 随机函数用法简单摘录原创 2018-01-08 11:36:11 · 977 阅读 · 0 评论 -
Oracle regexp_substr函数简摘
语法格式:REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)样例1:select regexp_substr('ALLEN,JAMES,TURNER,BLAKE,MARTIN,WARD', '[^,]+', 1, 1, 'c') from dual;--原创 2018-01-08 12:33:36 · 1661 阅读 · 0 评论 -
Oracle regexp_substr 字符串切割转换小例两则
Oracle regexp_substr 字符串切割转换小例两则原创 2018-01-08 13:37:39 · 1656 阅读 · 0 评论 -
Oracle trunc 和 round 函数对 date 字段的截取
Oracle trunc 和 round 函数对 date 字段的截取原创 2018-01-08 14:36:41 · 1196 阅读 · 0 评论 -
Oracle connect by level 小结(一)
Oracle connect by level 小结(一)原创 2018-01-15 18:19:05 · 29694 阅读 · 1 评论 -
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(一)—— 函数列表
简介Oracle从8.1.6开始提供分析函数。 Oracle分析函数的语法:FUN_NAME(arg1...) OVER([PARTITION BY ... ] [ORDER BY ... ] [WINDOWING ...])-- PARTITION BY 开窗子句-- ORDER BY 窗内是否排序算累计-- WINDOWING 之窗子句,一般有RANGE/ROWS原创 2018-01-23 10:28:51 · 684 阅读 · 0 评论 -
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(二)—— 类聚合函数用法
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(二)—— 类聚合函数用法原创 2018-01-23 12:29:42 · 1278 阅读 · 3 评论 -
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(三)—— 排序顺序相关函数用法
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(三)—— 排序顺序相关函数用法原创 2018-01-23 15:53:17 · 534 阅读 · 0 评论 -
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(四)—— 多维度分组统计函数用法
Oracle分析函数 OVER(PARTITION ORDER WINDOWING)(四)—— 多维度分组统计函数用法原创 2018-01-23 18:48:45 · 3783 阅读 · 0 评论 -
Oracle 业务用户创建简录
首先需要创建表空间create tablespace ts_test_datadatafile '/oradata/orcl/ts_test_data01.dbf'-- 路径要先存在且oracle用户拥有权限-- datafile '+DATADG' -- 如果是ASM,使用此句做替换size 1G autoextend on next 100M maxsize 30GEXTEN...原创 2018-03-27 10:02:48 · 307 阅读 · 0 评论 -
Oracle 表空间增加数据文件 修改数据文件容量上限
查询已存在表空间信息col "表空间名" for a20col "数据文件全路径" for a50set linesize 150set pagesize 1000select f.tablespace_name "表空间名", f.file_name "数据文件全路径", f.bytes / 1024 / 1024 / 1024 "当前容量/G"原创 2018-03-27 10:22:01 · 11283 阅读 · 2 评论 -
Oracle 查询已存在账号的创建语句、权限信息
set linesize 200set long 100000set wrap oncol "Create_User_DDL" for a200 wrapped worddefine UserName="'VINCENT'"-- 修改 UserName,查询其他的已存在账号select dbms_metadata.get_ddl('USER',&UserName) ...原创 2018-03-27 11:03:58 · 5471 阅读 · 0 评论 -
Oracle 统计信息过期的表重新收集统计信息
查看当前库中统计信息过期的表:set linesize 150set pagesize 1000EXEC DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;SELECT OWNER, TABLE_NAME, PARTITION_NAME, OBJECT_TYPE, STALE_STATS, LAST_ANALYZED FROM ...原创 2018-04-03 11:17:42 · 6337 阅读 · 0 评论 -
Oracle 查看当前所有会话SQL和等待事件
Oracle 查看当前所有会话SQL和等待事件原创 2018-04-03 12:05:30 · 12086 阅读 · 0 评论 -
Oracle 依据进程的系统资源消耗查询对应的SQLID
相关说明:ps aux 命令结果的第三列即是进程的CPU使用率 命令结果的第四列即是进程的内存使用率 这两列可以作为进程高系统资源消耗的依据Oracle动态性能视图v$process的spid即是系统的进程PID信息 同时联查v$session,即可得到SQL_ID和PREV_SQL_ID脚本间隔5秒搂取一次对应系统资源消耗的SQLID 根据SQLID可以进一步查询出对应的S...原创 2018-04-03 13:55:38 · 664 阅读 · 0 评论 -
Oracle 自动创建range分区表DDL的脚本
Oracle 自动创建range分区表DDL的脚本原创 2018-04-03 14:15:33 · 1474 阅读 · 0 评论 -
Oracle expdp include 泵出部分表
cat >exp.par<<EOFdirectory=dmpdumpfile=outdump.dmplogfile=outdump.loginclude=table:"in (select table_name from cat where table_name like 'EMP%' ...原创 2018-04-03 14:32:54 · 2522 阅读 · 0 评论 -
Shell和SQL的1970-01-01间隔秒数计算
date命令对时间纪元的计算date -d@'0' +%F_%T# 1970-01-01_08:00:00date -d'19700101 08:00:00' +%s# 0date -d'19700101 00:00:00' +%s# -28800md5sum /etc/localtime /usr/share/zoneinfo/Asia/Shanghai # 3214d0ed7...原创 2018-04-12 11:33:54 · 577 阅读 · 0 评论 -
Oracle 时间戳timestamp格式掩码相关
Oracle 时间戳timestamp格式掩码相关原创 2018-04-12 11:50:23 · 1997 阅读 · 0 评论 -
CentOS5u11 Oracle 10g 安装部署的内核参数设置简析
简单说明:内核参数配置文件 /etc/sysctl.conf 配置项可以重复出现,以最后一次出现的配置项为最终生效项 生效方法:重启主机,或者使用命令 sysctl -p 官档地址:https://docs.oracle.com/cd/B19306_01/install.102/b15667/pre_install.htm 查看 Configuring Kernel Parameters...原创 2018-04-20 14:38:53 · 295 阅读 · 0 评论 -
CentOS5u11 Oracle 10g 静默安装手工建库统一配置方案
环境相关:OS:CentOS release 5.11IP:192.168.77.10MEM:16GDISK:50G1. 简单说明本篇博文实际就是在用的生产环境上的CentOS5系统oracle10g静默安装的方案 本博文包括oracle的软件静默安装、软件升级、打PSU、手工建库、归档备份策略配置 如果是虚拟机装库,因为虚拟机的内存配额可以调整,因此SWAP的划分未必...原创 2018-04-21 20:37:14 · 613 阅读 · 0 评论 -
Oracle 自连接小例 查询在任意10分钟内登陆超过10次的IP
需求说明有一张记录登录行为的表:loginfo(ID,IP,LOGTIME),其中ID是主键,IP记录登录地址,LOGTIME记录登录时间 查询需求:查询在任意10分钟内登陆超过10次的IP测试数据准备create table loginfo as (select 01 ID,'192.168.1.1' IP, to_date('2014-10-01 07:30:00','...原创 2018-04-26 12:13:11 · 1211 阅读 · 0 评论 -
Oracle dblink 创建简录
本博文只是dblink的创建简录,曾经使用到的dblink场景不多 一些注意点,诸如权限、同名dblink优先级、GLOBAL_NAMES参数的影响不做讨论用户级别的私有dblink:conn / as sysdbagrant create database link to vincent;-- 非DBA用户授权conn vincent/vincentcreate datab...原创 2018-04-27 16:33:13 · 176 阅读 · 0 评论 -
Oracle dbms_metadata.get_ddl 获取对象DDL
常用的通过dbms_metadata.get_ddl查询对象DDL的语句,简录一下:set linesize 200 set pagesize 0set long 90000set heading offset feedback offcol ddl for a200 wrapped wordEXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBM...原创 2018-04-27 17:12:30 · 725 阅读 · 0 评论 -
CentOS5u11 Oracle 10g 生产RMAN备份可用性恢复测试
简单说明参照《CentOS5u11 Oracle 10g 静默安装手工建库统一配置方案》克隆一台10g单机库,调整内存尽可能大,如16G根据生产库大小和Rman备份文件增加两块磁盘比如增加一块1.5T的动态盘放数据文件,1块500G的动态盘放备份文件做备份可用性恢复测试的前提是,你的备份和备份策略没问题...恢复主机预处理1° 手动删除orcl库:echo 'shutdo...原创 2018-04-28 13:03:39 · 241 阅读 · 0 评论 -
CentOS6u9 Oracle11g 安装部署的内核参数设置简录
简单说明:官档地址:https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm查看 Configuring Kernel Parameters 章节部分参考文档《CentOS5u11 Oracle 10g 安装部署的内核参数设置简析》已经在上一篇博客中解释了所有官档要求的参数的功能本篇博文只是根据CentOS6u9对1...原创 2018-05-04 12:26:52 · 615 阅读 · 0 评论 -
CentOS6u9 Oracle 11g 静默安装手工建库统一配置方案
环境相关:OS:CentOS release 6.9IP:192.168.77.10MEM:16GDISK:50GSWAP:20G1. 简单说明本篇博文实际就是在用的生产环境上的CentOS6系统oracle11g静默安装的方案 本博文包括oracle的软件静默安装、打PSU、手工建库、归档备份策略配置 官方文档地址:https://docs.oracle.com/c...原创 2018-05-17 12:29:09 · 1001 阅读 · 0 评论 -
CentOS6u9 Oracle11g 内存策略选择和大页内存优化
简单说明:Oracle 内存管理模式:AMM(Automatic Memory Management) 该模式对Oracle使用的总内存(SGA+PGA)进行统一自动管理 该模式是完全托管模式,当库不重要或缺少专门的维护DBA的时候可以使用 该模式与HugePage大页内存优化冲突ASMM(Automatic Shared Memory Management) 该模式是...原创 2018-06-08 12:56:20 · 1494 阅读 · 0 评论 -
Oracle 特殊字符拼接方法 变量转义关闭 空行识别
# SQL级别的特殊字符表:chr(10) 换行符chr(33) ! chr(43) + chr(53) 5 chr(63) ? chr(93) ]chr(34) " chr(44) , chr(54) 6 chr(64) @ chr(94) ^chr(35) # chr(45) - ...原创 2018-06-12 15:39:13 · 1937 阅读 · 0 评论 -
Oracle expdp query 泵出表部分数据
cat >exp.par<<EOFdirectory=dmpdumpfile=expBig.dmptables=(py.order,py.transation)query=(py.order:"where id<=14000 or id>=134520000", py.transation:"where id<=15000 or id>...原创 2018-06-15 10:51:49 · 2124 阅读 · 0 评论 -
Oracle 根据主表查找定位主外键关系
使用SYS用户定位全库的主外键关系:select f.OWNER || '.' || f.TABLE_NAME || '.' || f.COLUMN_NAME father_col, c.OWNER || '.' || c.TABLE_NAME || '.' || c.COLUMN_NAME children_col from dba_cons_columns f, dba_...原创 2018-06-16 14:23:22 · 1557 阅读 · 0 评论 -
Oracle 查询非库默认账户
select USERNAME, ACCOUNT_STATUS, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, CREATED, PROFILE from dba_users where username not in ('MDDATA', 'MDSYS', 'ORDSYS', 'CTXSYS', 'ANON...原创 2018-06-16 14:30:22 · 925 阅读 · 0 评论 -
Oracle 计算字段选择性 判别列的索引潜力
select a.owner, a.table_name, a.column_name, b.num_rows, a.num_distinct Cardinality, round(a.num_distinct / decode(b.num_rows, 0, 1, b.num_rows) * 100, 2) selectivity from dba_tab_col_...原创 2018-06-16 15:14:07 · 1168 阅读 · 0 评论 -
Oracle 根据SQLID查询绑定变量的传入值
select b.NAME, b.POSITION, b.DATATYPE_STRING, b.VALUE_STRING, b.LAST_CAPTURED from v$sql_bind_capture b where b.sql_id = 'XXXXXX';--查询当前select b.name, b.datatype_stri...原创 2018-06-16 15:20:04 · 5279 阅读 · 0 评论 -
Oracle 查询锁和对应的对象信息 以及强制释放句
select '-------------------------------------------------------------------------------', 'OS/ORA user: '||ls.osuser||'/'||ls.username, 'Obj_name: '||o.owner||'.'||o.object_name, 'Sub_name: '||o.su...原创 2018-06-16 15:28:52 · 589 阅读 · 0 评论 -
添加唯一性约束 延迟生效
已存在数据的表,发现某字段缺失唯一性约束,现在要添加唯一性约束,操作如下:-- 添加唯一性约束,延迟生效alter table t add constraint uq_t_col1 unique (col1) using indexdeferrable enable novalidate;-- 查看重复数据select col1,count(*) from t group by c...原创 2018-06-27 10:59:11 · 562 阅读 · 0 评论 -
带有主外键关系的父表数据滤重
问题分析:这是一个真实的生产洗数据操作,生产洗数据就是耍杂技,需谨慎!谨慎!!谨慎!!!表CHANNEL_MERCHANT主键列为ID调用sequence生成 唯一性列CARD缺失唯一性约束,造成该列数据重复 该表是父表,主键列ID被表CHANNEL_TRANSATION列MERCHANTID参照处理步骤:1° 父表CARD列添加唯一性约束 添加唯一性约束,延迟生效,使新入库...原创 2018-06-27 12:04:24 · 169 阅读 · 0 评论 -
表缺失唯一性约束造成的数据滤重需求,处理思路总结
最不负责任的答案,或者一个初级DBA的处理方法:delete from t where rowid not in (select min(rowid) from t group by 唯一列 having count(*)&gt;1);问题点简单总结:你咋不提交这个表是不是被其他表参照这个表数据量多少,该方法需要多少执行时间如果表上亿记录数且需要删除90%以上数据,能成功么当...原创 2018-06-27 12:51:37 · 209 阅读 · 0 评论 -
Oracle 闪回查询简录
select * from t as of timestamp sysdate-1/(24*60)*N where ...;-- 查询t表N分钟前的状态原创 2018-06-28 11:22:24 · 215 阅读 · 0 评论