dbms_space.create_table_cost的unwrap解密和原理解析
Oracle提供了一系列PL/SQL package,包含了函数、存储过程,方便用户的使用,可以参考《Oracle? Database PL/SQL Packages and Types Reference》手册,但其中一些存储过程的实现细节,Oracle并未透露,且对其进行了加密wrap。俗话说的话,“高手在民间”,从Oracle 9i开始,就有牛人前辈,找出了解密unwrap的一些方...
如何解决/home/oracle: is a directory报警
看一下profile文件,没看出有什么不同,和另外一台正常的机器比较,看着是一样的,奇怪了?尝试删除黑色的~符号这行,执行source,或者su,均不会报错了,既然因为bash_profile多了一行~,有这个错误,我们尝试使用~,显示的错误和之前一样,cd上一级路径,其实~表示的就是...
百度AI大会的一些想法,了解DuerOS、Amazon Alexa和Echo
今天看了一会百度的AI开发者大会视频,说实话被一些场景震撼了,尤其是一位嵌入式工程师,利用百度AI,将小外甥的乐高机器人,打造为可对话的机器人,让我体会到AI就是身边,不再听起来像天方夜谭,我也有一些朋友做AI,简单聊了聊,这是个趋势,而且无论已经有一些成型的产品,但一些细节其实值得玩味。美亚上售价49.9...
预估表和索引空间容量的方法
最近有一个业务功能要上线,生产数据库环境之前已经到位,目前要做的是估算下,业务数据量对数据库空间,有何影响。开发同学根据表字段定义,分别统计出了最大占用空间,以及预计占用空间量,计算得很细致。今儿碰巧看见了一篇MOS文章,《How to Estimate the Size of Tables and Indexes Before Being Created...
Numeric Overflow,SQL问题?Java Code问题?
这两天出差,出发前开发同学提了一个问题,开会间隙,有了一些想法,java代码中和Oracle中均有可能出现此错误,记录于此。一段mybatis的代码,查询一张表的数据,SQL类似如下,接受起始时间和截止时间,作为检索条件。现象:1. 开发库运行这段代码,正常返回,测试库运行这...
时间戳相减的几种方法
这两天正在写一个日报的code,其中有一处是涉及系统用时,简单来看,就是俩时间戳字段相减,方法可能有很多,这里列出一些,朋友们要是有更简单、更好玩的方法,可以回复,一起玩耍。创建测试表,t1和t2是TIMESTAMP类型,t1比t2快1分钟,直接使用t1-t2得到正值,t2-t1得到负值,使用substr截取...
误删除序列sequence,是否可以找回?
今天同事手一抖,误删除了一套测试环境中的所有sequence序列对象。序列不像表这种对象,drop删除可以从回收站中找回来,当然一般认为序列并不是那么重要,只要记得名称以及一些非默认参数,可以选择重建。唯一可能有问题的就是,一般序列常用于主键字段,如果之前的序列已经被用了,他的last_number可能就不是初始值了,...
非分区表是否可以创建分区索引?
有同事问一个问题,一张非分区表,是否可以创建分区索引?答案是可以,但分区索引的类型有限制。MOS这篇文章给出了答案,以及一些例子,What Is The Global Partitioned Index On Non Partitioned Table? (文档 ID 1612359.1)。依据文章中的示例,以下实验操作,1. 创建测试表,...
kill等待session的方法 - 引申自恩墨面试题的一些思考
Kamus曾在微信公众号发表了一篇文章《删繁就简 - 云和恩墨的一道面试题解析》,恩墨的新书《Oracle性能优化与诊断案例精选》第五章引用了相同的文章,来自恩墨的一道面试题,乍一看其中涉及的知识点,大部分比较眼熟,但开始解决的时候,能否清晰地完成,就因人而异了。从我的认识来看,对于日常的工作,有一些...
Tuxedo域连接错误引出的netstat不同平台参数的区别
最近测试同事有一个需求,搭建一套Tuxedo域,连接网关,通过其和其他域交互,搭建过程中配置正确,但域连接报错,模拟过程如下,假设本地域名称为LOCALDOM,网关域名称为GWDOM,主机操作系统是Solaris。从LOCALDOM本地域执行pd发现无连接的域,connect显示无法连接网关,...
含LOB的表实际容量计算方法
前两天有一个开发库,报了ORA-01654的错误,提示的是SYS_IL000…$$的对象不能分配表空间了,首先这种SYS_IL的对象名称是系统默认为LOB大对象LOBINDEX设置的名称,其次开发人员检索dba_segments视图看这个LOB所属表的空间,似乎占比一般。这次涉及的问题,就是如何计算包含LOB对象的表空间实际容量的方法,之所以是说...
经典的print_table学习
最近上班路上读《Oracle性能优化与诊断案例精选》,发现eygle引用了一个非常方便的工具,原作者是大名鼎鼎的Tom,更加引起了我的关注。我理解一些工具是方便了我们日常的工作需求,但同时由于其封装了一些细节,因此若只是知道用法,不知道实现原理,对于个人来说,浪费了一次锻炼的机会,因为往往这些经典的工具,蕴...
ORA-01653/01654错误和dba_free_space视图的理解
上周,兄弟部门提出了一个问题,描述如下,开发库,对表X他们查询,或者DELETE的时候,经常出这个问题, 好像还与查询或者DELETE的数据量有关,是不是由于没建索引的原因,我查百度也没解决 select sum(bytes/1024/1024) sizeMB from dba_free_space z where z.tablespace_name=’XXX_DAT’&n...
创建索引的两种方式比对
有一个应用,需要创建索引,创建索引一般有两种方法,一种是CREATE INDEX ...;一种是CREATE INDEX ... ONLINE;字面意思上看,一个是在线,一个是非在线,有什么不同?1.语句执行时间的不同 创建测试表, 使用非在线创建索引,用时00.06秒, 使用在线方式...
三种批量删除PLSQL写法效率的比对
我们有一个重要的旧系统,最近夜维出现了一些问题,夜间执行5小时未完成,为了不影响业务,只能早上高峰期之前,DBA手工kill夜维进程。这一个夜维程序采用了PLSQL写的存储过程,通过数据库job定时启动执行。存储过程我很少使用,借着这次机会,补习了下,这个存储过程中的逻辑比较简单,依次删除若干张业务表,每张表...
从ORA-01752的错误,透过现象看本质
这几天开发同学反映了一个问题,有一个Java写的夜维程序,用于每天定时删除历史过期数据,3月10日之前经过了内测,但这两天再次执行的时候,有一条SQL语句一直报ORA-01752的错误,由于近期做过一次开发库的迁移,从一个机房搬迁至另一个机房,而且开发同学确认这期间未变代码逻辑,所以怀疑是否和数据迁移有关,这个错...
PLUSTRACE角色
使用示例数据库用户HR登陆需要打印执行计划等信息的时候,提示了错误, 提示很清楚了,PLUSTRACE角色未赋给HR。查询HR所有的角色, 确实缺少PLUSTRACE角色,通过oerr工具,可以进一步查看这个错误, AUTOTRACE Option in SQL*Plus (文档 ID 43214.1)中说明了要使用AUTOTRACE就必须有PLUSTRACE角...
SYS_CONTEXT函数返回IP地址的一些误解
上次分享中曾使用了SYS_CONTEXT函数获取ip地址,但返回值为空,当时认为其是返回ipv6的地址,所以为空,但其实这是错误的结论。虽然是一个小小的知识点,但从中可以看出Oracle对于这种内置函数的考虑非常周到,我们先看如下是返回空的ip地址的一个示例, 我们首先看看SYS_CONTEXT函数的定义, 这个函数有两个...
一种批量删除数据的方法
这两天碰见一个比较紧急的生产问题,由于还在处理中,所以暂时不能给出整体描述,但其中涉及的一个问题就是删除一张大表中的过期历史数据,针对不同的类型的表可能有不同的解决方法,比如若是按照时间做的分区表,droppartition删除分区的操作可能是效率最快的、最简单的,若是一张普通表则需要有一些索引键值为删除...
PMON主动调用的频率控制
今天有一位兄弟问了一个问题,"pmon清理失败process的频率是多少时间,还是只要process有失败,就清理?"以前感觉就是好像如果kill一个session之后立即执行其他操作,则会立即报错,但v$session中好像还是有这条记录,过了不知道具体多久,才会清除。了解的不系统,因此,接下来就用实验来再说明这个问题。1...