Oracle ACE,腾讯云TVP,墨天轮MVP,Oracle 10g/11g OCP,11g OCM,Exin DevOps Master,OCMU成员,Oracle YEP成员,微信公众号:bisal的个人杂货铺
前两天碰到一个问题,在EDB数据库中创建的一张分区表,需要使用分区本地索引和分区剪裁,但查看执行计划发现没能用到分区剪裁的功能。
从感官上,外键用于限制主子表的关联关系,是一种强关联关系,那么子表的外键值不应该为空,而是都会关联到主表对应的记录上,但实际上,至少在Oracle中,外键是可以为空的,打个比方,班级是主表,学生是子表,一个班级有多名学生,一名学生肯定会关联到一个存在的班级,但来了一个转校生,还没有分班,他现在属于学生子表,但还没有关联到班级主表中的任何一条记录。
使用如下命令执行导出操作: exp user/pwd@db file=/home/a.dmp log=/home/a.
近来有一个应用,连接11g的库,自身逻辑大致是根据日期和其他条件删除表中对应的历史记录,此处日期条件判断未使用to_date(),其中日期和另外一些条件是个复合主键,然后再插入一条新记录(此处日期字段使用to_date(XX, ‘DDMONYY’))。
最近在看一本《WEB全栈工程师的自我修养》一书,其中涉及到了npm这个词的意义,非常有意思。 一般人可能以为npm是Node Package Manager的缩写,但实际上不是这样的,npm不是Node Package Manager的首字母缩写,所以不能全大写。
使用Hibernate Tool可以根据已有的数据库结构,反向创建PO、DAO等类,方便于开发,最近正好有个工作内容,需要用这个,所以重新捡起来学习下。
由于某项目的特殊性,开发数据库环境有两套,两边都可能对表结构进行一些修改,因此写了一个工具,比对两边的结构元数据,其中碰到一个问题,很细微,但确实值得注意,在此记录下。
最近需要写一个抽取表结构的工具,类似于powerdesigner中的表图,其中有一步用到了itext这个第三方jar包来生成pdf文件,碰到了一个问题,记录于此。
这几天和同事一直在讨论关于表设计中主键选择的问题,用sequence作为主键究竟有什么好处,又有什么缺点,尤其是有些事务场景上下文需要用到创建的序列值,如何用?其实我想说的是,可能只是一个很简单的概念,可能深入理解,还是有很多未知的知识,当然也就可能会有一些容易忽略但又可能很关键的坑,只有碰了才知道。
今天读了一篇MOS文章,《ORA-01722, ORA-01839, ORA-01841, ORA-01847 or ORA-01858 from Queries with Dependent Predicates (文档 ID 232243.
监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。Oracle官方对其的定义为:A process that listens for incoming client connection requests and manages network traffic to the database.本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。
(1) 依赖包的安装 Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作。 本次安装碰到了几个包的问题: (a) rpm -Uvh gcc-4*提示: 02.
盖总(eygle)在刚结束的甲骨文大会的演讲中,通过一个简单的UPDATE语句,为我们展示了什么叫由点及面的优化,什么叫由点及面的知识覆盖度,不在于这个案具体如何操作,更应关注或更值得我们借鉴的是这种学习态度和方法思路,大师是如何炼成的?我想这个案例可以带给我们一些启迪。
在物理机上使用虚机搭建RAC环境时碰到了很多“坑”和关键点,这里慢慢一一回味总结下。 物理机:Intel(R) Core(TM) i7-5600U CPU @ 2.
新发的笔记本,Windows 7 Pro,需要安装Oracle Client,同事给了一个10g的版本。安装过程中提示: “正在检查操作系统要求… 要求的结果: 5.0,5.1,5.2,6.0 之一实际结果: 6.1 检查完成。
需要重启Tuxedo应用时,提示:LIBTUX_CAT:577: ERROR: Unable to register because the slot is already owned 此时执行tmadmin命令,有报错: $ tmadmintmadmin - Copyright (c) 1996-1999 BEA Systems, Inc.
今晚办公楼停电维护,需要提前关闭服务器,为防止异常关闭导致的各种问题,有个测试库,使用shutdown normal停库,结果就是很常见的hang住了。
使用JDBC时,会有这么一个错误:java.sql.SQLException: 索引中丢失 IN或OUT 参数::x 如下示例中insertLog.execute();这行会抛出这个异常: String logSQL = "insert into t...
主外键是数据库提供的一种两表之间强制关联的方法,也可以从应用层实现。 优点 缺点 数据库实现的主外键 由数据库层机制保证,无需应用额外实现 强关联,不易扩展变更 应用实现的主外键 易扩展变更 完全由应用控制,要求较高 我认为需要根据实际情况进行取舍,例如表不复杂,可以由应用实现,若表之间关联较多且复杂,那么交由数据库处理,至少保证不会错。
今天做键上线,得空总结一下。 前两天和同事一块看一个夜维程序执行异常慢的问题,是一个比较典型的问题,同时也是一个比较头疼的问题。 背景描述: 1. 当天上线了一个夜维程序,逻辑很简单,就是执行类似delete from table where ro...
这两天和广分的兄弟看了一个问题,比较有意思,过程也比较曲折。。。 问题现象: 1. 11g的库,话说有一个应用程序新上线,应用中使用了绑定变量的方式执行一条简单的SQL,例如select a from b where c = :x,c列是该表复合主键的前导列,表定义是varchar2类型,从spotlight监控看这条SQL的执行计划是全表扫描,一次执行要1个小时,这张表是运行很久的引用分区表,数据量是亿级,测试的时候正常,但很显然测试的数据量可能和生产非常不一致,导致没察觉。
expdp/impdp是10g推出的导入导出工具,9i下是没有该工具的,有人提议用10g的expdp,通过dblink导出9i的数据,乍一听感觉是那么回事,但究竟行不行,咱们实验说明。
前两天,需要将远程一个测试库用expdp导出的数据dump导入到本地的一个测试环境中,其中碰到了一些问题,值得小结下。 环境介绍: 1. 数据量:10+表,
很久以前就有个疑问,见过一些表设计时会留出几个reverse的字段,目的是为了以后扩展,但此时设计的字段类型、长度等都是预计的,未来是否可用,不好说,那为什么会这么做呢?可能的原因是:“我现在设定好字段,需要的时候直接用就行了,不需要新增字段的操作”。
经过一番周折,终于查到了使用YEP考试券参加的“Oracle Database 11g Administrator Certified Professional”,即11g OCP升级考试的成绩。
ORA-00911,"911"看着很霸气的错误号,虽然我还是Oracle的初学者,但每次碰到一个未见过的ORA错误号后,都有一种查案的赶脚,根据错误号、OERR、相关错误信息,判断错误原因以及找到解决方案或替代方案,虽然大部分可能还是参考前辈或官方,但碰到一次后,至少是似曾相识了,再次碰到时即使不记得,大概也能有个方向。
DTCC大会上,阿里江疑的演讲中提到一个:select from update hot row; 不明白如何在Oracle中实现的,他的意思是在一条SQL中实现update和select这条update的字段信息。
背景: 前段时间,需要从异地一个测试数据库中将测试数据(一张表)导入本地库,表数据量大约500万,字段160多个,开始用了exp/imp方式,速度奇慢,不能忍,于是转而使用expdp/impdp方式。
曾经在http://blog.csdn.net/bisal/article/details/42496583这篇博文中提到一个端口连接的验证: “ora10g@localhost.
11g的DDL_LOCK_TIMEOUT参数的作用,从字面上看,就是DDL获取锁的超时时间。 先看下官方文档的介绍: DDL_LOCK_TIMEOUT Property Description Parameter typ...
问题背景: 一个旧应用,原先应用是用proc写的,9i的库,现在应用需要改为使用OCCI,其中有一段查询逻辑:select ... where upper(state)=upper(:1)。
都说Oracle存在NUMBER和VARCHAR2类型的隐式转换,严格意义上需要避免,但为何需要避免,从下面的实验进行验证。1. 创建测试表和索引 create table tn (id number, name varchar2(1)); create index idx_tn on tn (id); create index idx_tn on tn (name); 分别对NUMBER类型的id字段,VARCHAR2类型的name字段创建索引。
昨天大半夜装一个RH5+Oracle版本,期间碰到了几件事情,陈述如下,以此为据。 1. 安装前需要配置内核参数,可参考Oracle官方文档推荐的最低值来设置,但往往机器自身有些参数值已有了,例如kernel.
前两天,看到论坛中有位兄弟说设置了用户对表空间的quota限额,但仍可以插入超过限额大小的数据量到表空间。 也是觉得很奇怪,那quota起什么作用? 用实验来说明: 1.
1. 创建分区表 create table range_part_range(id number, deal_date date, contents varchar2(1000))partition by range(deal_date)( ...
很幸运被推荐参与到了Oracle YEP计划,虽然和各位相比,我的实际经验和能力还有很大的不足,但至少是对自己的一种激励,坚持兴趣、坚持梦想,即使困难重重,总会能看到一些不一样的风景。
建了一个库,想通过Oracle Net访问,需要配置监听器和tnsnames.ora,接下来碰到一系列的问题。。。 1. 添加监听器配置,listener.
登录数据库,提示: ora11g>sqlplus dcsopen/dcsopen1 SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:49:31 2015Copyright (c) 1982, 2009, Oracle.
1. 创建测试表TBL_STAT,及索引,但不插入记录 SQL> create table TBL_STAT as select * from dba_objects where 11; Table created.
Oracle 11.2.0.1 1. 创建新的用户默认表空间DCSOPEN_TBS: 注: (1) 这里设置初始数据文件大小是200M,AUTOEXTEND属性默认自动增长,每次申请新的表空间时会分配32M,最多分配1024M。
1. 查看表空间大小: SELECT tablespace_name, SUM(bytes)/1024/1024 total FROM DBA_FREE_SPACE GROUP BY tablespace_name ORDER BY 2 DE...
最近登录一台Solaris的服务器时,总提示:”couldn't set locale: correctly“的信息。 碰巧执行一个shell脚本,执行的开始还是出现了”couldn't set locale: correctly“的信息,但未影响后面的逻辑。
使用GRANT赋予用户权限的时候通常有ADMIN OPTION和GRANT OPTION这两个OPTION。下面使用简单的实验来体会下这两种授权的用途。
测试库执行startup时提示(11.2.0.1): 查询ORA-27154的错误: Error: ORA-27154 Text: post/wait create failed ---------------------...
SHUTDOWN有几个参数可以使用: SHUTDOWN NORMAL:NORMAL也是默认的子句,执行的条件是 No new connections are allowed after the statement is issued. Before the database is shut down, the database waits for all currently connectedusers to disconnect from the database. 下次启动时不需要任何实例恢复过程。
Oracle的强大之处就在于他能总帮助让你选择正确的执行计划,即使你给了它错误的指示。 实验: 1. 创建测试表: 收集统计信息: 创建B树索引: 2. 执行select id from tbl_plan;查看它的执行计划: 因为创建了B树索引,正常讲可以从索引中获得id的值,不用全表扫描,但这里使用了全表扫描的方式。
《查看Oracle执行计划的几种常用方法-系列1》(http://blog.csdn.net/bisal/article/details/38919181)这篇博文中曾提到一个隐藏问题: “隐藏问题2: 实验这部分内容发现使用select * from table(dbms_xplan.
用户A包含表TBL,如果用户A将TBL的访问权限给用户B(grant select any table to B),则在用户B中要想引用用户A的表,不使用同义词,则需要用select * from A.
昨天搭建Tuxedo环境时碰到一个问题,涉及到不同shell环境下变量的写法。 问题背景: 操作系统版本是SunOS e2900i-t 5.9 Generic_122300-12 sun4u sparc SUNW,Netra-T12 创建用户后,向.profile中添加环境变量: #for Tuxedo export TUX_HOME=/opt/app/tux; ... 重登陆时就报: -sh export TUX_HOME=/opt/app/tux: is not an identifier 这样的错误。
http://blog.csdn.net/bisal/article/details/38919181 这篇文章中曾谈到一个隐藏问题: 引用原文: “使用@dbsnake大牛的SQL可以知道SQL_ID和HASH_VALUE的一一对应关系: 隐藏问题1: 这里的截图可能有点问题,结果并不准确,问题就出在这个SQL中使用的算法中,在另一篇博文中会仔细说明这个问题。