03 2012 档案

摘要:在使用Oracel Datapump API时碰到ORA-31623(a job is not attached to this session via the specified handle)错误,从故障描述来看提示 job并没有成功附加到当前session指定的handle。该package的导入导出一直正常运行究竟是什么原因导致的呢?我们拭目以待......1、故障环境SQL> select * from v$version where rownum<2;BANNER------------------------------------------------------ 阅读全文
posted @ 2012-03-29 18:36 ajuanabc 阅读(347) 评论(0) 推荐(0) 编辑
摘要:No SQL,No cost. SQL语句是造成数据库开销最大的部分。而不良SQL写法直接导致数据库系统性能下降的情形比比皆是。那么如何才能称得上高效的SQL语句呢?一是查询优化器为当前的SQL语句生成最佳的执行计划,保证数据读写使用最佳路径;二是设置合理的物理存储结构,如表的类型,字段的顺序,字段的数据类型等。本文主要描述如何编写高效的SQL语句并给出示例。下面的描述主要分为三个部分,一是编写高效SQL语句,二是使用索引提高查询性能的部分,三是总结部分。一、编写高效SQL语句1) 选择最有效的表名顺序(仅适用于RBO模式) ... 阅读全文
posted @ 2012-03-29 13:11 ajuanabc 阅读(140) 评论(0) 推荐(0) 编辑
摘要:前面已经把定位的数据通过加载LC0结构来加载到寄存器里,已经具备了定位的条件。那么内核进行重定位主要做些什么事情呢?要了解整个过程,当然要学习编译原理,因为进行重定位之后,主要是为了建立C语言的运行环境的需求。由于C语言是基于栈式的语言,又有全局变量,说明内存结构至少有两个,一个是全局数据区,一个是栈。因此,重定位就是修改全局数据区和栈的访问。在全局数据的内存的表达方式,GCC是使用GOT(GLOBALOFFSET TABLE)来组织的,所以需要修改GOT表里每一项的数据地址,才可以让C语言编译出来的程序可以访问到正确的地址。由于栈的内存需要更新和写入,所以需要栈指向的内存是可读写的。但ROM 阅读全文
posted @ 2012-03-25 15:54 ajuanabc 阅读(152) 评论(0) 推荐(0) 编辑
摘要:PL/SQL变长数组时PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的。也即是说变长数组的下标固定下限等于1,上限可以扩展。下面给出具体的描述及其使用方法。一、变长数组语法 TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF -->type_name 用于指定varray类型名,size_limit 定义varray元素的最大个数 element_type [NOT NULL]; -->element_type用于指定元素的数据类型 varra 阅读全文
posted @ 2012-03-23 15:47 ajuanabc 阅读(337) 评论(0) 推荐(0) 编辑
摘要:It is very easy for us to implement sql tuning by toad. We need to do is just give complex sql statement to toad. The articlegive you some examples to demonstrate how to tuning sql by toad for oracle.1.Get execution planEditor --> Explain plan current SQL or CTRL + E2.Get statistics/Auto TraceEna 阅读全文
posted @ 2012-03-21 15:31 ajuanabc 阅读(986) 评论(0) 推荐(0) 编辑
摘要:通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。单列多行数据则由联合数组或嵌套表来完成,其特点是类似于单列数据库表。在Oracle 9i 之前称为PL/SQL索引表,9i 之后称之为联合数组。嵌套表也是集合类型中的一种,下面分别介绍这两种集合数据类型的使用方法。一、联合数组1、联合数组的特性 类似于一张简单的SQL表,按照主键进行检索数据 其数据行并不是按照预定义的顺序存储。当使用变量来检索其数据时,每行数据会分配一个连续的下标且从1开始。 下标可以为负值,且下标的数据类型支持binary_integer,pls_in. 阅读全文
posted @ 2012-03-20 10:32 ajuanabc 阅读(298) 评论(0) 推荐(0) 编辑
摘要:内核在上面处理完关闭中断,并且确认进入系统模式后,就需要解决第一个问题:解决自己到底在那里运行的问题。这个问题,就好比一个人在大海里航行而没有指南针,根本找不到北在那里,急切地想知道方向在那里。如果在白天还可以靠大阳就知道了方向,在晚上可以靠北斗星,在内核里是否也有这样的大自然的指示呢?在内核里没有天然的指示,但可以有人为的,下面就来看看内核到底是怎么添加自己的太阳,自己的北斗星呢。内核在那里运行,在编译时就已经决定了,如果还不了解,可以看前面编译的文章。如果运行地址与编译时的不一致,就会导致很严重的问题产生,内核直接死掉,或者刚运行一段,就不再往下跑了,又或者运行的数据乱七八糟,导致I/O口 阅读全文
posted @ 2012-03-18 12:40 ajuanabc 阅读(135) 评论(0) 推荐(0) 编辑
摘要:对 DBA 而言,CREATE TABLE AS 可谓是家常便饭,顺手拈来。需不知该方式虽然简单,但疏忽也容易导致意想不到的问题。笔者前阵子就碰上了这样的事情。由于是对原表进行克隆,且数据存储在不同的表空间,因此毫不犹豫地使用了CREATE TABLE AS,结果在运行package时,error...--1、非空约束遗失 -->使用create table as 来创建对象 scott@CNMMBO> create table tb_dept as select * from dept where 1=0; Table created. scott@CNMMBO> desc 阅读全文
posted @ 2012-03-16 17:32 ajuanabc 阅读(290) 评论(0) 推荐(0) 编辑
摘要:游标在数据库领域被广泛使用,尤其是对于需要将SQL语句返回的数据集进行逐行处理的时候。这为数据处理提供了极大的便利性,然游标的不当使用从某种程度上而言会降低数据库的性能。下面的是一个来自生产环境的实际例子,由于使用了参数游标,所以引发了多次遍历。一、源代码-->下面的procedure用于为trade生成一个新的contract_num,并将其更新到对应的记录PROCEDURE assign_contract_num( businessdate_in trade_client_tbl.trade_date%TYPE, err_num OUT NUMBER, err_msg OUT VAR 阅读全文
posted @ 2012-03-16 15:28 ajuanabc 阅读(320) 评论(0) 推荐(0) 编辑
摘要:通过上面的架构的学习,可以知道ARM体系总共有8个架构,每个架构有着不同的功能,因此下面的这个宏,就是选择第2个架构,因为第2个构架与后面的架构是有着很大的区别,比如第2个架构是24位地址线的,而后面架构全是32位的。并且支持的指令和寄存器也存在着差别,所以需要根据不同的架构来选择编译的代码,否则就会让CPU运行不能识别的指令。从这里学习到的知识点,就是可以定义宏来选择不同的CPU兼容性的代码。#ifndef__ARM_ARCH_2__在ARM体系中主要有以下三种调试方式:1)ARMulator,打开AXD软件时默认打开的目标就是ARMulator。2)基于JTAG的调试代理Multi-ICE 阅读全文
posted @ 2012-03-11 11:29 ajuanabc 阅读(132) 评论(0) 推荐(0) 编辑
摘要:case语句与case表达式是plsql流程控制的重要组成部分,尽管其使用方法较为简单,但容易混淆。本文将描述case语句与case表达式并给出演示以便于更好理解两者的异同及使用时的注意事项。一、简单case语句-->语法 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSION 2 THEN STATEMENT 2; ... WHEN EXPRESSION N THEN STATEMENT N; ELSE STATEMENT N+1; END CASE; --简单的case语句是指SELECTOR中得到的值或结果 阅读全文
posted @ 2012-03-10 17:20 ajuanabc 阅读(470) 评论(0) 推荐(0) 编辑
摘要:在了解ARM公司的产品架构之前,先来看看ARM公司的历史,这样对看懂内核的代码会很大帮助的,否则看到内核里有众多的宏定义,支持不同的结构指令选择,倒底是怎么回事,也是迷茫的,不解的。近来微软公司宣布Windows8正式支持ARM处理器,这是计算机发展历史上的一件大事,标志着X86结构的处理器的主导地位发生了动摇,ARM处理器将在市场上渐渐成为主流,恐怕指日可待。难怪有人惊呼,Intel公司将被击败?在这场高科技革命的变化中,它的主角ARM公司有着什么样的历史呢?这家公司远离硅谷,位于剑桥大学的英国公司,到底是怎么样走到今天的,居然能将芯片巨人Intel拉下马?1978年12月5日,物理学家赫尔 阅读全文
posted @ 2012-03-04 14:02 ajuanabc 阅读(202) 评论(0) 推荐(0) 编辑