摘要: 1.什么是表空间 表空间是Oracle 1个虚拟概念,它用于存放数据文件dbf, 也就是说表空间是oracle表数据存放到数据文件的一个中间结构。一般来讲,oracle 一张表(非分区表)只属于1个表空间, 它的数据可以分散存储在这个表空间内多个数据文件中。 如下图: 当然上图还包括 block, extend, segment的信息,将就看吧..2.查看oracle的表空间 可以用如下视图来查看oracle的表空间: select * from dba_tablespaces; 可以见到有6个表空间。 2.1 System 表空间. system 表空间存放的是Oracle数据库本身的信.. 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 写这篇文章时由于没有参考过什么权威资料教材,所以有些观点可能是错误的, 不过我本人都是经过大量调试后才写出来的啦..1. 内存由多个单位为8bit = 1byte的单元组成,每1个单元都配有1个编号,这个就是内存地址。 计算机的主存储器是内存,而不是硬盘,因为cpu只能直接访问内存... 而cpu访问内存是根据内存的编号来访问的,这个编号就是内存地址,cpu获得内存地址就能直接寻址到对应的内存单位。2.指针就是内存地址..它们是同一概念 很多人都讲指针就是指向内存地址的东西, 但是我认为指针就是内存地址..3.指针变量的概念 首先,指针变量是1个变量, 也就是它的值是可以变的。 其次,指针变. 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 大伙都知道int类型的 取值范围是 -2147483648 到 2147483647 那为什么不是 -2147483647 到 2147483648 呢? 因为int类型占4个byte, 就是32个bit 了, 而32个二进制位中最高位的那个一位是表示正负的。 所以只有31 个位来表示int 类型本身的大小了。 从 0000000 00000000 00000000 00000000 到 1111111 11111111 11111111 11111111 其中后面31个1 就是 2147483647 啊(2^31 - 1) 所以不算上最高位的符号位的话, 31位 共可以表示 21474... 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(4361) 评论(0) 推荐(0) 编辑
摘要: 这篇文章是参考甲骨论老相老师的教学视频 http://v.youku.com/v_show/id_XNDAwMzYzODI0.html 所做的学习笔记 关于段区块的定义以前都将过几次了. 视频中介绍了两个知识点: 1. 区(extends)的分配 1个段(segment) 被建立后, oracle 如何为其分配新的extends 2. 段空间管理方式. 1个新的extend 被分配到1个segment后, segment就相当于拥有一些空闲空间了, oracle怎么管理这些空间. 一. 利用em(Enterprise Manager) 演示如何建立1个新的表空间(table spa... 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 接上文 Oracle 段区块 分配 (1)六, oracle 的行迁移和行链接. (Row Chaining and Migrating) 上面提过了, oracle是允许把多个数据行放到同1个块中的。 而且, oracle会尽量把同1个数据行的所有数据放到同1个块中, 这样避免读取1个数据行要访问2个或以上的块. 而oracle是怎么避免这个问题呢。1个关键就是pctfree 和 pctused 的设置6.1 pctfree 这个参数在新建1个table/cluster的时候可以被指定。 默认是10% 假如 pctfree 的值是10%, 那么当1个block的剩余空间一但只剩下10%时, 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 由于网易博客的代码模式并不好用而且日志还存在显示不正确的问题. 见我这个日志:http://nvd11.blog.163.com/blog/static/20001831220132290183319/编辑的内容无法正确显示在博文中.所以我会将博客搬去csdn.http://blog.csdn.net/nvd11 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 1. 函数执行完成时,里面的局部静态变量所占的内存会被自动释放 首先看个简单的例子程序: #include <stdio.h> int f(){ int j=20; return j; } int main(){ int i; i = f(); return 0; } 可以见到上面 mian函数 调用了f()函数, 而f()里面定义了1个整形变量j.问题是, 如果f()被调用完成和偶, 也就是 i=f(); 这条语句执行完后, f()里面的j所占的内存还存在吗?答案是否. 首先j是1个局部变量, 而且j是1个静态变量, 所以当f() 结束时, f... 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 数据结构大体成上可以分成两种:1. 线性结构.2. 非线性结构( 树,图)1. 什么是线性结构 大概上可以这样定义: 加入所有的节点可以用一条直线连接起来. 就是线性结构...2. 线性机构也可以分成两种: 1) 连续存储 (数组) 也就是指每1个节点在物理内存上是相连的. 2) 离散存储(链表) 节点在物理内存上并不一定相连, 而是利用指针来关联. 这篇文章主要讲的第一种.3. 什么是数组 数组就是在内存里物理连续的一段元素的集合 注意: 数组里面的元素不一定是数. 可以是任何类型, 但是每个元素的类型和大小必须相等. 而且这里的数组并不是指C语言里的数组类型, 而是数据结构的一种. 通常在 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(1034) 评论(0) 推荐(0) 编辑
摘要: 1. C语言定义1个数组的时候, 必须同时指定它的长度.例如:int a[5]={1,2,3,4,5}; //合法int b[6]; //合法int c[]; //错误 因为没有指定长度但是下面语句是正确, 它隐形定义了数组的长度, 就是赋值元素的个数int d[] ={4,5,6,7,8,9} //合法 长度为62. 静态数组 什么是静态数组, 其实上面合法定义的数组都是静态数组. 静态数组并不是指数组里面的元素是静态的, 上面的数组都可以修改指定元素的指 而是指数组的元素个数是静态的, 也就是某1个静态数组一旦被定义, 那么在程序运行结束的这段时间里它的长度的都是... 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 这篇文章是参考甲骨论老相老师的视频:http://v.youku.com/v_show/id_XNDAwOTY3MTU2.html所做的学习笔记1. LRU chain 和 LRUW chain 和CBC chain 先复习一下: 如上图, 在database buffer cache中, 里面的buffer被若干条链串联在一齐(通过头尾部指针实现) LRU(Least recent used) chain 这是一条用于查找最近最少使用的buffer的链, 当buffer不够用时会从这条链冷端找出buffer来重用. LRUW(Least recent used writed) chain . 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(279) 评论(0) 推荐(0) 编辑