- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 执行计划——DBA的恨,开发人员的伤
一直以来,DBA对开发人员指责最多的便是对执行计划的忽视。而开发人员对此的回击也很犀利:我只需要保证业务逻辑的正确执行,至于性能优化?那是DBA的事(DBA恨的牙痒痒~)。似乎这也成了很多开发人员的共识。作为一个开发团队,DBA和开发人员是一个密不可分的整体。只有精诚合作,才能让系统更加健壮,更加稳定,性能更加出色。通常来说,DBA比开发人员更加了解数据库,并且知道数据库如何工作。当然,开发人员比DBA更加了解软件开发。似乎这正说明了二者的工作职责。只是,很多时候,作为一个团队,DBA和开发人员却各自埋头苦
2011-02-20 15:12:00 782
转载 My husband is a programmer(ps:留给未来的妻子阅读)
<br />I met my husband 11 years ago. I was carrying my guitar into my dorm room on freshman move-in day at the University of Southern Maine. I saw him eyeing my guitar with great interest. When he knocked on my door and introduced himself, he said, “Hey! I
2011-02-15 13:49:00 625
原创 何谓自治事务
<br />自治事务(autonomous transaction)允许你创建一个“事务中的事务”,它能独立于其父事务提交或回滚。利用自治事务,可以挂起当前执行的事务,开始一个新的事务,完成一些工作,然后提交或回滚,所有这些都不影响当前所执行的事务的状态。自治事务提供了一种pl/sql控制事务的新方法,可以用于:<br />1、顶层匿名块<br />2、本地(过程中的过程)、独立或打包的函数和过程<br />3、对象类型的方法<br />4、数据库触发器<br /> <br />自治事务又是如何工作的呢?下
2011-01-18 19:28:00 1043
原创 集合——记录的数组和数组的记录
集合中的每一个条目是%ROWTYPE或相似的记录变量。给定这样一个集合,数据可能表示成两种结构:1、记录的数组(先创建一行,然后将其加入到列表中)2、数组的记录(创建多个列表,然后把它们连成一个记录)但应该使用哪种数据结构呢?回答此问题需要考虑两个方面:1、填充结构时能有多高效?2、从其中取出数据时效能有多高?下面我们来做一个测试(OS:sun 5.10, Oracle: 10.2.0)。首先创建一个包pkg,它包含两个过程:rec_of_array_test和array_of_rec_test。它们两个
2011-01-17 13:37:00 581
原创 如何辨别同台机器多个客户端sql跟踪
经常会碰到客户端多个sqlplus连接oracle服务器,却不知道该如何判断哪个客户端对应哪个trace文件。其实自己之前也很迷茫。在对着文档深入看了v$session何v$process之后,一切问题都迎刃而解。环境:oracle服务器:sun os5.10,oracle 10.2.0客户端:xp,开启2个sqlplusw。开启客户端之后,在Solaris上ps -ef|grep ora一下,查看一下相关进程。-bash-3.00$ ps -ef | grep ora oracle 5301
2011-01-09 15:23:00 674
原创 execute immediate 权限不够
最近在写存储过程的时候,老是碰到ORA-01031: insufficient privileges错误。上网search了一下,原来在procedure中建(删)表需要有create any table的权限,而且只认用户权限,不认角色权限。grant create any table to XXX; now, everything is ok!
2010-02-08 14:07:00 647
原创 Oracle的相关术语——段
1、 段Oracle中的段是占用磁盘物理空间的一个对象。尽管有多种段类型,常见的段类型如下:u 聚簇(cluster)这种段类型能存储表。有两种类型的聚簇:B*树聚簇和散列聚簇。聚簇通常用于存储多个表上的相关数据,将其“预连接”存储到同一个数据库块上;还可以用于存储一个表的相关信息。u 表(table)表段保存一个数据库表的数据,这可能是最常用的段
2010-01-01 13:27:00 706
原创 堆组织表(heap organized table)
Oracle中有很多类型的表,像堆组织表、索引组织表、索引聚簇表等等。首先,我将从最基本、最常用的堆组织表(heap organized table)介绍。通常我们默认建的表就是堆组织表。语法(详细语法请参见Oracle官方文档)如下:Create table test( Id int, Name varchar2(10)); 数据会以堆的方式管理,增加数据时,会使
2009-12-30 14:34:00 1716
原创 MPICH2的安装
最近由于导师的一个项目结项,需要搭建一个并行运算平台。经高手推荐,我们打算采用MPI+OpenPBS来搭建,各节点机位为fodera,通过共享上网。 假设共有4台机器,主机名分别为station1,station2,station3,station4。以第一台为例: 1.1、更改/etc/hosts文件#vi /etc/hosts 打开hosts文件,更改如下
2009-09-09 19:25:00 3116 2
原创 Oracle DBA脚本管理工具2
1、查看数据库中的表锁脚本说明:这方面的语句的样式是很多的,各式一样,不过我认为这个是最实用的,不信你就用一下,无需多说,锁是每个DBA一定都涉及过的内容,当你相知道某个表被哪个session锁定了,你就用到了这个脚本。SELECT A.OWNER, A.OBJECT_NAME, B.XIDUSN, B.XIDSLOT, B.XIDSQN, B.SESSION_ID, B
2009-08-23 20:10:00 887
原创 Oracle DBA脚本管理工具1
在较长时间的与Oracle的交往中,每个DBA都有各种各样的完成各种用途的脚本工具,这样很方便很快捷的完成了日常的工作,下面把我常用的一部分展现给大家,此篇主要侧重于数据库管理,这些脚本都经过严格测试。 1、 表空间统计脚本说明:这是DBA最常用的一个脚本,用它可以显示出数据库中所有表空间的状态,如表空间的大小、已使用空间、使用的百分比、空闲空间数及现在表空间的最大块是多大。S
2009-08-23 08:38:00 680
转载 7 Reasons Why BSD Is Better than Linux
One of the great joys about using Linux full time is the fact that I can also appreciate other operating systems like BSD. Like Linux, BSD is open source, provides the user with the freedom to distrib
2009-08-18 14:58:00 387
原创 XP下Redhat linux AS 5 硬盘安装详解
今天下午硬盘安装了一个redhat AS5,跟大家分享一下过程。 先下载一个软件grldr(http://www.dbablog.org/wp-content/uploads/2008/10/grldr.rar)。这个东西是个引导器。用来引导linux加载、安装。 第一步: 在C盘根目录下创建一文件目录C:/boot/grldr把下载的文件解压后复制到grldr中。第二步: 修改C:/bo
2009-08-13 14:59:00 1157 1
原创 大话设计模式读书笔记——“简单工厂模式”
在这个例子中,我们要写一个简易的控制台计算器。实现的功能的丰富性在其次,最重要的是面向对象思想和简单工厂模式思想的体现。Now,lets begin!!! 首先,我们让业务逻辑和界面逻辑分开,让他们之间的耦合度下降,只有分离开,才能达到容易维护或扩展。先来看看抽象出来的运算基类。将GetResult方法设置为virtual,是为了通过多态来实现在子类中实现各自的需求。 //基类c
2009-07-19 14:15:00 359
转载 关于23种设计模式的有趣见解
在网上看见了这篇文章,作者以轻松的语言比喻了java的32种模式,有很好的启发作用。 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者
2009-07-13 11:29:00 294
原创 跟我学Oracle 10g系列之三(Oracle的启动方式)
每当一个Oracle数据库启动时,它都经历一系列步骤来保证数据库一致性。当一个数据库启动时,它经历三个模式:NOMOUNT、MOUNT和OPEN。STARTUP NOMOUNT选项:STARTUP NOMOUNT选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或与数据库的磁盘结构进行通信。当实例处于这个状态时,数据库是不可使用的。
2009-02-28 09:18:00 392
原创 跟我学Oracle 10g系列之二(体系结构2)
Oracle的逻辑结构Oracle数据库的逻辑结构组成如左图。表空间是数据库中的基本逻辑结构,一系列数据文件的集合。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。 段是对象在数据库中实际占用的物理空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。 表空间和数据文件是物理存储上
2009-02-26 09:48:00 467
转载 跟我学Oracle 10g系列之二(体系结构1)
先说一个非常重要的概念——系统改变号(System Change Number,简称SCN)系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。 SCN有如下特点: a. 查询语句不会使 SCN 增加,就算是同时发生的更新,数据库内部对应的 SCN 也是不同的。这样一来就保证了数据恢复时候的顺序。 b. 维持数据的一致性
2009-02-25 11:04:00 519
原创 跟我学Oracle 10g系列之一(理解实例)
作为执业界数十年之牛耳,作为一个计算机方面的从业人员,还是非常有必要学习Oracle数据库的。Oracle体系非常庞大和复杂,内容极其繁多,从程序开发到DBA,都有庞大的内容等着你去学。本人对管理比较感兴趣,所以写的一些东西都是靠管理的:)Oracle是一个可移植的数据库——它在相关的每一个平台上都可以使用,即所谓的跨平台特性。在不同的操作系统上也略有差别,如在 UNIX/LINUX 上,
2009-02-23 16:48:00 406
原创 指针及其在C++中的一些应用
每个指针都有一个相关的类型。不同数据类型的指针之间的区别不是在指针的表示上,也不在指针所持有的值(即地址)上——对所有类型的指针这两方面都是相同的(函数指针除外)。不同之处在于指针所指的对象的类型上。指针的类型可以指示编译器怎样解释特定地址上内存的内容,以及该内存区域应该跨越多少内存单元。例如:int *m_pInt=&a; double *m_pDou=&b;m_pInt和m_p
2009-02-23 16:44:00 334
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人