在数据库中自定义外部函数
在oracle中可以使用pl/sql来实现一些复杂的功能,同时可以通过自定义的外部函数来实现很多丰富的功能,我们可以基于c/c++来写一些函数,然后把动态链接库放入ORACLE_HOME中方便直接调用。首先这种实现方法需要依赖于数据库层面的服务extproc,监听器会生成一个extproc进程,然后专门来处理外部函数的调用。具体的配置可...
在oracle实践学习位运算 第一篇
今天无意中看到了谭浩强先生的这本书,虽然c语言都是很多年前学过的东西了,但是看起来亲切,实际用起来陌生,很多的概念都已经很模糊了,记得上大学时老师特别推荐的位运算这一部分,自己这次又看了下,还是有一定的收获。位运算非常的简洁,使用起来看起来很高深,很有专业的味道,经常在一些笔试面试题中...
pl/sql中的参数模式
在平时的工作中,可能通过pl/sql传入参数来做一些特定的操作,参数模式一般有In,out.in out这几种比如dbms_sqltune下的PREPARE_SQLSET_STATEMENT就包含了三种类型的参数FUNCTION PREPARE_SQLSET_STATEMENT RETURNS VARCHAR2 Argument Name Type &nb...
使用sql*plus编辑sql文本
工作中可能会经常实用工具来编辑sql 文本,实用sql*plus来编辑的机会比较少,但是这些也是硬功夫,一旦有需要手工编辑,其实发现也是很容易的。CommandAbbreviationPurposeAPPEND text A text adds text at the end of the curre...
临时表相关
临时表在日常工作中可能使用比较多,但是大家都对临时表相关的一些知识了解比较少。我们来简单说数理一下。首先是临时表空间,临时表都存储在临时表空间中,对于临时表空间,从数据库中查询数据字典就能够很清楚的看到,临时表空间是nologging的,也就是临时表也是nologging的。SQL> select tablespace_name,logging f...
一条简单的sql语句导致的系统问题
新年,给大家拜年了。祝大家工作顺利,万事如意。今天照例简单检查了系统的情况,发现在客户的服务器在下午的3-5点这个时间段,数据库负载略有上升,但是幅度不大,因为生产的awr抓取频率是10分钟,所以还是能够通过awr分析出一些问题。负载情况如下:抓取了一个最新时间段的awr报告。查看数据库负载,比平时的负载要...
通过shell来比较oracle和java中的字符串使用
今天在无意中看到了java字符串的一些东西,发现和oracle比较起来还是有一定的意义的,但是发现知识点准备好了,比较的时候,每一处java的变更都得重编译运行还是不够直观,其实代码中变化的部分很固定,所以尝试写了一个简单的shell脚本来实现动态编译运行,使得演示也更加直观,使用Runtime.exec还是有一些限制。比如我们...
关于足彩(第四篇)
关于足彩,自己之前也林林总总的写了三篇,不管怎么说,都是一种分析和理解,肯定没有特别的规律和绝技可循。自己也在世界杯开始买足彩交了不少的学费,在这几个月的过程中自己也有一些自己的感悟。首先买足彩的想法就是小酌,不能随便玩大。很多的比赛如果都那么明显,那博彩公司就消失了。很多比赛玄而又玄,或者爆冷...
MySQL的double write和Oracle对比学习
之前有网友希望我对mysql的double write和oracle能够做一个对比,其实这种对比方式挺好,能够触类旁通,举一反三。不过限于本人水平有限,欢迎拍砖。关于MySQL的double write是对partilal write的一个补充。比如将数据写入磁盘的时候,发生了断电情况,那么一部分内容写入一部分就丢失了,这个时候使用redo log来恢复就不...
操作系统存储管理和oracle数据库(第三篇)
在之前的一篇博文中讨论了分页存储,http://blog.itpub.net/23718752/viewspace-1435671/今天看了下分段存储,尽管这部分内容都是大学的课程内容,但是感觉好像没学过一样:)分段式存储管理系统中,会为每个段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中,这一点上所说的段和数据库中的段还...
操作系统存储管理和oracle数据库(第二篇)
在之前分享过第一篇 关于操作系统存储管理和oracle数据库 http://blog.itpub.net/23718752/viewspace-1359146/感觉对自己来说是迈出了艰难的一步,操作系统的概念有时候确实感觉枯燥,但是细细品来,都是前车之鉴,很多的方法或者改进都是在碰到很多问题之后总结琢磨出来的,所以从某种程度上来说,操作系统的基础是...
通过oracle类比MySQL中的字节字符问题
在几个月前写过一篇博文 MySQL数据类型 http://blog.itpub.net/23718752/viewspace-1371434/当时写完以后有同事朋友就提出了一些疑问,对于汉字在MySQL和Oracle中的存放情况希望我能够详细的说说。关于MySQL中的varchar字符类型,自己的操作都是基于字符集UTF-8。对于存放汉字,涉及到字符,字节,编码的一些...
关于内存异常的一个猜想
今天查看生产某个服务器的负载的时候,发现内存的使用情况有些异常。top - 12:00:08 up 15 days, 12:04, 13 users, load average: 63.31, 55.12, 43.39Tasks: 5542 total, 21 running, 5511 sleeping, 0 stopped, 10 zombieCpu(s): 13.6%us, 3.7%sy, 0.0%ni, 81.1%id, 0.1%w...
了解一下CPU 第二篇
这两天抽时间看了下CPU相关的一些资料,发现越是去了解,自己越是陌生,CPU的发展史相当的丰富,不亚于计算机的发展史。总是有很多人在历史的长河中默默的奉献着。自己的固有认识中,总是认为处理器主要就是intel,AMD了,但是发现真是一个肤浅的认识。处理器的公司很多,品牌也很多,以下的图摘自x86指...
通过ORA错误反思sql语句规范
今天快下班的时候,有个开发的同事问我一个问题,说他在客户端执行一条sql语句,里面包含子查询,如果单独执行子查询,会报"invalid identifier"的错误,但是整个sql语句一致性就没有错误,而且数据的结果还是正确的,碰到这种问题,想必都是信心满满,越是奇怪越想探个究竟。为了能够简单说明这个问题,我使用如下下面的...
通过shell脚本来得到不稳定的执行计划
生产系统中总是可能碰到各种各样的sql问题,其中大部分问题都和执行计划有关,执行计划出现问题有很多原因导致,比如统计信息过旧,比如数据的分布极不均匀等等都会导致执行计划出现很大的偏差。可能有的sql语句在一周时间内,有一天执行只需要5秒,过了几天之后却需要几个小时,这种执行计划时需要格外重视的,这种问题目...
从问题的处理方式感悟学习方法
有时候当你碰到一些问题一筹莫展的时候,如果能够看到某个帖子的问题和你碰到的刚好一致,那种欣喜的感觉真是难以形容。但是有些问题尽管发生的错误一致,处理的方式却不同,举一个例子。客户反馈某个应用报出了连接错误。对于这个问题,咱可以调侃一下,从几个不同的层面来分析一下。 step1:问题一般都会...
通过使用hint unnest调优sql语句
生产环境中有一条sql语句通过sql_monitor看到执行的时间实在是太惊人了,竟然达到了13个小时,而且还没有执行完。SessionAPPC (20015:7013)SQL ID74pzzzjddkyd4SQL Execution ID16777242Execution Start...
使用sqlt手工创建sql_profile
在生产环境中有一些sql语句出现问题,大多是一些很紧急的问题,可能有些sql语句出现了执行计划的问题,通过hint能够做很大的改进,但是如果想让变更尽快生效,可以使用sql_profile来实现。说起sql_profile的创建有两种方式,一种是自动,通过sql tuning的功能能够得到一些建议,会自动生成sql_profile,只需要启用即可,如...
使用ash分析ORA-01652问题
今天在检查生产库的问题的时候,收到开发的邮件,他们在运行一个job的时候报出了ora的错误,想让我们来看一下是什么原因。ora错误是01652的错误,单纯来看是由于临时表空间不足造成的。ORA-01652:unable to extend temp segment by 128 in tablespace TEMP因为问题发生在上午,从shared pool里查看对应的sql已经查...