摘要: 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 阅读(346) 评论(0) 推荐(0)
摘要: 由于网易博客的代码模式并不好用而且日志还存在显示不正确的问题. 见我这个日志:http://nvd11.blog.163.com/blog/static/20001831220132290183319/编辑的内容无法正确显示在博文中.所以我会将博客搬去csdn.http://blog.csdn.net/nvd11 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(96) 评论(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 阅读(369) 评论(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 阅读(706) 评论(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 阅读(4500) 评论(0) 推荐(0)
摘要: 写这篇文章时由于没有参考过什么权威资料教材,所以有些观点可能是错误的, 不过我本人都是经过大量调试后才写出来的啦..1. 内存由多个单位为8bit = 1byte的单元组成,每1个单元都配有1个编号,这个就是内存地址。 计算机的主存储器是内存,而不是硬盘,因为cpu只能直接访问内存... 而cpu访问内存是根据内存的编号来访问的,这个编号就是内存地址,cpu获得内存地址就能直接寻址到对应的内存单位。2.指针就是内存地址..它们是同一概念 很多人都讲指针就是指向内存地址的东西, 但是我认为指针就是内存地址..3.指针变量的概念 首先,指针变量是1个变量, 也就是它的值是可以变的。 其次,指针变. 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(387) 评论(0) 推荐(0)
摘要: 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 阅读(640) 评论(0) 推荐(0)
摘要: 数据结构大体成上可以分成两种:1. 线性结构.2. 非线性结构( 树,图)1. 什么是线性结构 大概上可以这样定义: 加入所有的节点可以用一条直线连接起来. 就是线性结构...2. 线性机构也可以分成两种: 1) 连续存储 (数组) 也就是指每1个节点在物理内存上是相连的. 2) 离散存储(链表) 节点在物理内存上并不一定相连, 而是利用指针来关联. 这篇文章主要讲的第一种.3. 什么是数组 数组就是在内存里物理连续的一段元素的集合 注意: 数组里面的元素不一定是数. 可以是任何类型, 但是每个元素的类型和大小必须相等. 而且这里的数组并不是指C语言里的数组类型, 而是数据结构的一种. 通常在 阅读全文
posted @ 2013-04-02 00:58 Gateman 阅读(1079) 评论(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 阅读(512) 评论(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 阅读(303) 评论(0) 推荐(0)
摘要: 首先GDB是类unix系统下一个优秀的调试工具, 当然作为debug代码的工具, 肯定没有IDE来的直观了. 不过, 命令行自然有命令行的有点, 当你无法是使用IDE时, gdb有时会帮上很大的忙. 下面用1个例子来说明用法吧: 建立1个目录testgdb2 1. 编写c文件test.c可以见到在23行, call 了 test2.c的函数, 而且引用了头文件 test2.h 2. 编写头文件 ./headfiles/test2.h只声明了1个函数啦 3. 编写c文件test2.c 编写对应函数的内容啦. 4. 编写Makefile这里要注意, gcc 命令默认编译出来的可执行文件是不带... 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(465) 评论(0) 推荐(0)
摘要: 一,为什么要使用结构体 在语言中,为了表示一些复杂的数据, 而普通的基本变量类型无法满足要求。 例如要定义1个学生类型, 学生有3个属性 sid, name, age 那么在面向对象语言里(例如java),我们可以写1个类 Class Student { int sid; String name; int age; void inputStudent(){ } void showStudent(){ ... 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(662) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频http://v.youku.com/v_show/id_XMzk4NjkzMDY0.html所做的学习笔记构成oracle数据库的文件可以包括如下图的几种..其种最重要的是下面这种文件:控制文件, 数据文件, 联机重做文件。因为这3种文件一旦出错, 数据库就会崩溃, 所以这3种文件也统称为联机文件, 也就是支持oracle数据库运行的必须文件。1.控制文件 包含有关数据库本身的数据和物理结构信息。 数据文件对数据库而言至关重要,没有这些文件,就无法打开访问数据库数据的数据文件。 1.1 查看控制文件 可以用如下语句来查看数据库控制文件的位置。 selec 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(404) 评论(0) 推荐(0)
摘要: 在Oracle 9i以后 支持两种PGA 管理支持两种管理模式, 一重就是手动管理模式, 另一种就是自动管理模式。1.PGA 手动管理模式 所谓手动管理模式就是手动设置PGA里的各个模块(sort_area_size/ hash_area_size/bitmap_merge_are_size 等)的大小值, 这些值不会根据负荷弹性变化, 而且一旦手动设置为手动模式。 则应用到服务器中每1个server process, 也就是说每个server process所占的PGA将会是一样的。 1.1 设置方法 alter system set workarea_size_policy=manua.. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(848) 评论(0) 推荐(0)
摘要: Oracle可以分成两种工作模式, 分别是 Dedicated Server 和 Shared Server 1 Dedicated Server 从字面上理解的就是专用服务器模式, 实际上意思就是指每当有1个新的用户客户端提出连接请求. 建立1个session时, Oracle 服务器端都会启动1个对应的服务器进程(server process)与其对接. 那么这个server process就专门为这个session服务了. 简单d来讲 Dedicated Server 模式下, 每1个连接中的session都会有1个server process与其对接. Dedicated Ser... 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(523) 评论(0) 推荐(0)
摘要: 1. 时间复杂度 算法核心部分大概要执行的次数. 而非执行时间. 为什么不能是执行时间. 是因为1个算法在不同的机器和不同的环境中执行时间可能有巨大的差别. 而什么是核心部分大概要执行的时间? 就是假设算法是1个循环, 那么循环里面的部分被循环执行的次数. 例如1个算法 for (i =0; i <n ;i++){ main_part(); } 他的核心部分main_part() 被执行了n次, 也就是说随着n的增长. 被执行的次数也随着线性增长. 我们可以说这个算法的时间复杂度是 O(n) 而另1个算法 for (i=0; i<n; i++){ for (j=0; j<n; 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(1416) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频http://v.youku.com/v_show/id_XMzk2NjAxODQ4.html?f=17419200所做的学习笔记.1. 什么是PGA, PGA的作用 PGA的全程是Program global area, 是Oracle数据库系统的进程(包括前台进程server process 和 后台进程各种daemon)的专用的内存空间, 每1个进程都配1个PGA, 不过实在我们说的PGA通常指的是server process的PGA. 每1个server process的PGA都只能被这个server process访问. 2. PGA的构成 1. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(610) 评论(0) 推荐(0)
摘要: 1.安装内核后重启失败. 只见到这个提示:kernel panic: VFS: can't mount root on unknown block(0,0) 通常这种情况有3种原因: a. grub 配置错了, 不过因为各发行版编译内核的工具都会自动更新grub配置的, 这个种情况很少。 除非你是手动更新grub的, 这是就是就要检查下grub.cfg, 是不是/ or /boot分区指定错误。 b. 编译内核没有把/boot 或 / 的文件系统格式编入内核, 例如/boot 和 / 所在分区的文件格式是ext3 . 但你没有把ext3格式支持编入内核。 c. 这个情况也是我遇上的, 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(3860) 评论(0) 推荐(0)
摘要: Fedora作为linux发行版的地沟油...有时候是比较坑爹的。 Fedora有1个很出名特点,就是更新很快很激进, 本来这个是优点啦, 但是它连内核也更新的超快, 基本上2周更新一次内核, 后果就是你要不断清理就内核.. 这个还是小事。 用过virtualbox的都知道, virtualbox是1个虚拟机软件, 它不必须根据当前的内核版本紧密配合, 对应的产物就是virtualbox模块。 virtualbox的模块有很多个, 例如最重要的vboxdrv, 还有vboxnetadp vboxnetflt 等等, fedora 为这些模块做成了1个包,就叫kmod-Virtualbox, . 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(385) 评论(0) 推荐(0)
摘要: 大部分发行版安装就自带1个linux内核, 是不需要用户自己编译的. 那么编译1个内核到底有什么好处呢, 其实好处无非有两点: 1. 精简内核 通用发行版的内核特点就是兼容性好, 这里的兼容性是只硬件兼容性啦, 也就是说通用的内核集成了很多种硬件的驱动和功能,而其实绝大部分的硬件驱动和部分功能(如raid支持,偏门的文件系统格式支持)是一般家用机用不上的。 而自己编译内核能在选项里去除这些多余的选项, 只挑选当前机器适用的硬件驱动, 往往能得到1个更精简的内核,理论上是比1个臃肿的内核更加稳定和快速的。 再讲,对于任何软件来讲。理论上用当前机器自己编译出来的会比用其他环境机器编译出来的性能.. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(685) 评论(0) 推荐(0)
摘要: 一般安装windows 和 linux双系统, 都是先安装windows, 然后安装linux, 那么linux的grub安装会加入windows启动的选项, 开机时就能选择启动进入哪个系统了。 但是如果重装了windows, windows会重写mbr分区表, 导致grub的信息丢失, 开机就不能进入linux了。 下面就用ubuntu例子来修复grub启动项。 第一步, 用livecd 启动系统 进入livecd里的ubuntu, 连这一步都不知道的代表你没硬盘安装过Ubuntu,用wubi重装一次吧... 第二步, 获取root权限 打开终端,输入如下命令: sudo passwd #. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(343) 评论(0) 推荐(0)
摘要: 买了SSD硬盘, 把linux mint安装到ssd上。 但是这货是TLC颗粒的, 也就是写的次数有限, 所以想减少ssd写的次数。 在根目录/ 下, 其实大部分文件都只需要读的, 例如打开某个程序, 一般就去对应目录去读数据。 大部分写操作都集中在/tmp 和/var 这个两个目录下。 所以我想将/tmp 迁移到机械硬盘的分区。 首先就在别的系统分1个区出来。 格式化为ext4系统, 这个简单, 不说了。 接下来查出这个分区的UUID, 例如我想将/tmp 迁移到 /dev/sdb10 这个分区。 则可以用下面命令查出该分区的UUID sudo blkid /dev/sdb10得到UUID. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(415) 评论(0) 推荐(0)
摘要: 既然是详解, 就从最基础的讲起了. 1. Bit(位) Bit计算机是计算机最小的存储单位, 大家都知道计算机实质上都是用二进制数0或者1来存储数据的, 所以Bit实际上可以看成存放1个二进制数字的1个位置. 也就是说bit只有2种值, 0 或者 1, 所以1个bit能存放1个布尔类型的值(boolean,是或者否). 如果一个布尔类型被存放在1个bit中, 自然这个变量就占用1个bit了, 无论这个值是1或者0, 它都占用1个bit... 2. Byte(字节) 这个就厉害了, 因为我们平常讲的1个文件占多少KB, MB... 1个硬盘占多少GB.. 等后面的这个B, 指的就是字节Byt.. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(5550) 评论(0) 推荐(8)
摘要: 这篇文章是参考视频 思胜 ASP.Net C#培训-7-3-下午-1-哈希表基本原理.wmvhttp://v.youku.com/v_show/id_XMjYwNjEwMDg0.html所做的学习笔记..=================================================================== 在实际上的程序实现中, 有1个经典原理, 叫做数量决定质量. 这个原理是什么意思呢, 举个例子, 当我们查询从一些数量比较小的数据里查询时, 算法和代码的好坏其实不明显. 但是当数据数量变得巨大,甚至从海量数据里查询时, 算法和代码的质量差别就十分明显了... 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(1166) 评论(0) 推荐(0)
摘要: 以前已经都提过了, c语言中,数组名就是1个指向数组第1个元素地址的指针. 如数组char a[] = "bcd"; 数组名a 就是指向数组a[]的第1个元素a[0]的地址 所以*a==a[0]=='b' 当我们定义1个新的指针p,并给它赋值时: p=a; 一般来讲我们认为他们p与a是等价的 因为同样有: *p==p[0]='b' p[i]=a[i] 但是有特殊情况, 要将数组名a看成1个特殊的指针. 例如函数sizeof , 这是取1个对象(变量or常量) 的内存占用空间 举个例子: 定个1个字符数组c: char c[]="ab 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(138) 评论(0) 推荐(0)
摘要: ////// 实际上, c中并没有字符串这种数据类型, 也就是说c是没有像java, .net等其他高级语言中常用的String类型. 首先要强调: a. c语言有无字符串? 有! b. c语言有无字符串类型 无! c. c语言字符串是否就是不是字符数组 是! b. c语言字符串和字符数组是同一样东西? 不是! 实际上, c语言中, 字符串是1个特殊的字符数组, 特殊在什么地方? 就是字符数组最后1个元素可以是任意字符, 而字符串(属于字符数组的最后1个元素是'\000', 也就是说, c1.字符类型char 就是c的字符类型定义1个字符变量,跟住赋值.char a;a= 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(366) 评论(0) 推荐(0)
摘要: 简单解析下, stdin就是标准输入, stdout就是标准。举个例子, 在当前我要打包1个文件夹 /var/log/ 到当前目录下,并用zip压缩,那么我们可以分步执行#tar -cvf log.tar /var/log/#zip -r log.tar.zip log.tar#rm -rf log.tar写成一条语句就是tar -cvf log.tar /var/log/ && zip -r log.tar.zip log.tar &&rm -rf log.tar那么我们可以发现第一条语句的输出(log.tar) 就是第二条语句的输入这种情况下我们可以用 “- 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(282) 评论(0) 推荐(0)
摘要: 1. 一维数组 c语言中, 数组占用的空间是一组连续的物理内存空间. 所以对于1维数组来讲,只需要知道数组头1个元素的地址, 就可以逐个地得出各个元素的值了.例子: 首先定义1个1维数字型数组, 并且赋值. int A[10]={10,1,2,3,4,5,6,7,8,9}; 这里说明一下, c语言中大部分情况下如上面这个语句这样, 定义1个数组的同时就对它赋值了, 这是最方便的. 也可以先定义再赋值. 如 int A[10]; A[0]=10; A[1]=2;........ 但是不能用A={10,1,2,3,4,5,6,7,8,9}; 会编译失败~ 跟住定义1个指针. int *p; 这时. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(347) 评论(0) 推荐(0)
摘要: 1. 折半查找法定义 折半查找法,也称为二分查找法, 二分搜索, 是一种在有序数组中查找某一特定元素的搜索算法.搜索过程中从数组的中间元素开始, 如果中间元素正好是要查找的元素, 则搜索过程结束;如果某一特定元素大于或者小于中间元素, 则在数组大于或小雨元素的那一半中查找, 而且跟开始一样从中间元素开始比较. 若某1个步骤中数组为空, 则代表找不到. 这种搜索算法每一次比骄傲都使搜索范围缩小一半. -- 摘自维基百科. 2. 折半查找法分析 从定义中可以看出折半查找法有几个特性. 2.1 先决条件: 要搜索的数据已经排好序 当然, 怎样将数据排序也是1个算法, 这里先不考究了, 但是要使用.. 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(3552) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzk2MjQ5Mzc2.html所做的教学视频1. 触发LGWR 将log buffer里的数据写入日志文件的条件: 下图这个就是lgwr进程了~ 1.1 commit语句 1.2 每隔3秒 1.3 log buffer里面有大于1MB的数据未写入日志文件 1.4 log buffer里面有大于3分1的数据未写入日志文件. 1.5 DBWR需要写入数据的SCN大于LGWR记录的SCN, 就触发LGWR写入. 1 - 4点之前都提过啦,也很容易理解. 现在重点说下第5点: Oracle 有1个机 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(846) 评论(0) 推荐(0)
摘要: find查找文件的时候排除某个或几个文件或目录转自:http://www.cnblogs.com/starspace/archive/2008/10/20/1315380.html比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件find /usr/sam -path "/usr/sam/dir1" -prune -o -printfind [-path ..] [expression] 在路径列表的后面的是表达式-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(3398) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频http://v.youku.com/v_show/id_XMzk1MDA3NjA4.html所做的学习笔记1.Oracle有1个重要的原则. 这个原则就是已提交的事务,Oracle保证不会丢失. 除非服务器存储设备出问题了. 也就是说,如果用户在数据库执行一些DML sql语句, 但是并没有提交的话, 这时服务器突然崩溃, 或者断电了. 重启后, 用户的这些修改有可能找不回来了. 但是用户,一但执行commit动作, 即使服务器崩溃, 重启后用户的修改还能找回来.2. 后台进程DBWR 不断将LRUW链(脏buffer) 的冷端写入到dbf文件中. 前面 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(1252) 评论(0) 推荐(1)
摘要: 这篇文章是参考甲骨论老相老师的教学视频 http://v.youku.com/v_show/id_XMzk0NjYxNzgw.html所做的学习笔记作为1个DBA, 需要学习许多数据库知识, 但是目的无非两大部分.1. 保持数据库数据的一致性2. 优化数据库性能而日志系统只对应第1点,日志系统就是用来保持数据的一致性的.我们先回顾下之前讲过的sql语句执行流程如上图.可以见到:1. 产生日志的原因是Buffer cache里发生的数据改动.2. buffer cache里数据改动产生的日志被写入Redo log buffer(日志缓存)里.3. 后台进程LGWR会将redo log buffe 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(317) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频http://v.youku.com/v_show/id_XMzkyMjE3NTA0.html所做的学习笔记。1.什么是Rowid这里的Rowid,并不是1条数据行在表中的编号的意思.而是指Table中某一条数据行在数据文件中的物理地址, 而我们可以根据这个物理地址获得这一行数据行的数据在几号数据文件中的第几个block里面的的第几行等信息.可以用select rowid,* from Table语句来获得rowid的值.下面举个列子2.创建1张表语句如下:create table T_rowid ( a int, b varchar2(4000) def 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(210) 评论(0) 推荐(0)
摘要: 这篇文章是参照甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMjE3NTA0.html所做的学习笔记1. 查看某个对象所占用buffer状态:上一章提过了, 使用如下语句:selecto.object_name,decode(state, 0, 'free', 1, 'xcur' , 2, 'scur', 3, 'cr', 4, 'read', 5, 'mrec' , 6, 'irec', 7, 'write', 8, 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(722) 评论(0) 推荐(0)
摘要: 原地址:http://www.rjgc.net/control/content/content.php?nid=4418 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库svn commit -m “LogMessage“ [-N] [--n 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(166) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMjA4NDM2.html所做学习笔记1. 什么是buffer之前提过很多次啦, 其实在oracle数据文件中最小的单位就是block, 而用户读取block数据时,oracle就会将block的数据放入缓存,那么缓存中对应block的单位就叫buffer了, block的大小与buffer大小是一样的.2. 关于buffer的动态数据字典x$dh Oracle有一个动态视图x$dh, 里面有很多个数据行, 其中每个数据行对应buffer_cache里的每1个buffer.. x$bh里 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(490) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMjA5NTEy.html所做的学习笔记1.介绍DBWR写进程.之前介绍过Database buffer cache的作用流程了,参考下图:具体可以参考我之前的学习笔记:http://nvd11.blog.163.com/blog/static/200018312201302695451760/但上面这个流程只提到了用户客户端读取数据的流程, 并没有提到修改数据..1.1 用户修改数据后, 对应buffer会变成1个脏buffer 当用户修改数据,并且提交后, 数据就会写入对应buffe 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(1964) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMjA0NDQ0.html所做的学习笔记其实之前已经介绍过shared pool的链式(chain)内存结构了..http://nvd11.blog.163.com/blog/static/200018312201301875752730/1.双向链表其实在Database buffer cache中, 也是用类似的chain结构, 只不过oracle一般是用双向链表.所谓单向链表, 就是指每个内存块(chunk)有1个尾部指针指向1个chunk的头部地址. 除了最后1个chunk,尾部 阅读全文
posted @ 2013-04-02 00:57 Gateman 阅读(530) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师所做的教学视频所做的学习笔记.http://v.youku.com/v_show/id_XMzkyMTk3ODM2.html首先简单说明一下Oracle数据库的结构.1. 数据库的作用:1.存储数据2.方便地检索和处理数据.2.Oracle的简单结构1.存储数据( Oracle 文件)2.方便地检索和处理数据. (Oracle 实例)可见对于Oracle数据库来讲, 数据都是存放在Oracle文件中的.而前面章节也提到过, Oracle文件分3大类, 控制文件/ 数据文件/ 重做日志文件 --> 归档日志文件实际上数据库所有数据都存放在数据文件中的, 重做日志 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(1156) 评论(0) 推荐(0)
摘要: 注意这篇文章只介绍查看sql语句执行计划的方法, 并不是说明如何看懂执行计划.一般来讲, 直接在sqlplus 执行 set autotrace on; 就可以了其前提是登陆用户必须有视图 v_$sesstat, v_$statname, v_$mystat 的select 权限参考:http://nvd11.blog.163.com/blog/static/20001831220130804213161/如图:其实主要系想介绍另一种方法,在之前文章已经见过oracle硬解析过的sql及其执行计划会缓存在shared pool中.其中执行过的sql语句可以在v$sql 查看, 并会分配1个sq 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(526) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMTg4Njg0.html所做的学习笔记前面已经提过shared pool(共享池)的作用和结构了, 详细看这里:http://nvd11.blog.163.com/blog/static/200018312201301875752730/总的来讲: shared pool 就是用来缓存sql语句和对应执行计划的, 当一条sql第二次执行时能找到shared pool的共享sql的执行计划的就避免了硬解析, 大大提高了数据库的运行效率. 而现在内存白菜价, 一般的笔记本都随便上8g内存了 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(1817) 评论(0) 推荐(0)
摘要: 转自fedora 吧啦:http://tieba.baidu.com/p/1927559690yum install gpointing-device-settings运行 gpointing-device-settings选者 TPPS/2 IBM TrackPoint (这个就是小红帽)选择 Use Wheel emulation,把 button 修改为 2然后点击 Ok 就行了。 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(763) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频:http://v.youku.com/v_show/id_XMzkyMTkzNjg4.html所做的学习笔记.什么是4031错误和4031错误产生的原因:详细请看这里:http://v.youku.com/v_show/id_XMzkyMTkzNjg4.html简单一个句话概括: 由于服务器一直在执行大量的硬解析,导致Oracle 的shared pool Free空间碎片过多,大的chunk不足, 当又一条复杂的sql语句要硬解析时, 缺少1个足够大的Free chunk, 通常就会报4031错误.解决方法:方法1.清空Shared pool缓存.执行 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(851) 评论(0) 推荐(0)
摘要: 这里的命中率指server process在library cache里软解析的命中率.还有1个是rowcache(数据字典缓存)的命中率.一般来讲, production服务器运行的时间越长,命中率越稳定, 正常来讲这两个命中率一般都在99% 以上, 如果98% 就有问题了....可以用如下语句来查看软解析命中率:select sum(pinhits)/sum(pins)*100 from v$librarycache;如下图, 因为我的是私人小数据库, 运行时间短, 这个命中率就很低了..可以用如下语句来查看rowcache命中率:select sum(gets),sum(getmisse 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(443) 评论(0) 推荐(0)
摘要: windows 下 beyond compare3是1个相当优秀文本比较工具虽有也有linux版本,但是没有32位.而linux下也有一个开源替代品, 叫meldfedora下 yum install meld就可以安装了但是默认下无法显示行号和语法高亮, 在首选项里这个两个选项都是灰色的网上google了一下, 原因是还要安装两个包yum install gtksourceview2 pygtksourceview再次打开meld, 这两个选项都被enable了参考 http://forums.fedoraforum.org/showthread.php?t=265738 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(650) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师所做的教学视频:http://v.youku.com/v_show/id_XMzkyMTczMTQ4.html所做的学习笔记:接上文:http://nvd11.blog.163.com/blog/static/200018312201301875752730/sql 是在shared Pool里面解析成执行计划的.如图: 1.什么是SQL语句共享 sql 语句传入shared pool后, 会被先转换成ASCII码, 然后经过一系列运算,其中包括HASH运算,得出HASH值,然后得出一串数字,并包含1个内存链chain号码. Server Process 就会拿着c 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(600) 评论(0) 推荐(0)
摘要: 这篇文章是参考甲骨论老相老师的教学视频所做的学习笔记:http://v.youku.com/v_show/id_XMzkyMDQ4MzUy.html之前提到Shared pool的作用:Shared pool是用来缓存sql语句以及sql的执行计划的,而share pool包含3主要大部分(还有其他很多部分)分别是library cache, rowcache和 free memory首先强调一句: 我们可以手动设置Shared pool的大小, 但是并不能制定shared pool里面 Free/Library Cache/rowcache 等各部分的大小的.1.现在分析下Free 空间的内 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(427) 评论(0) 推荐(0)
摘要: 有时数据库有些session产生死锁托慢整个数据库,需要找出那个进程然后kill掉.在sybase中, 结合sp_who 和 kill sid就可以了.在oracle中也有类似的方法:首先是找出要杀死的session id(SID)可以利用v$mystat 来查看当前session的sid.若要杀死的session 已卡住.则可以用dba session执行下面命令来查看当前服务器的session 然后排除select * from v$session where username is not null;得到sid后执行alter system kill session 'sid,s 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(1570) 评论(0) 推荐(0)
摘要: 这篇文章是参考老相老师的教学视频http://v.youku.com/v_show/id_XNDAzOTI4MDQw.html所做的学习笔记1.事务(Transaction)的基本概念: 事务由一组DML语句组成(insert/ update /delete); 用commit; 就可以提交这个事务,也就是DML语句的改动写入数据库了. 在commit之前使用Rollback就可以回滚DML语句造成的数据的改动. 使用savepoint xx 可以保存保存点: 使用Rollback to xx 回滚到保存点.下面做个例子:登陆sqlplus: 例如hr账户下有一张表CL_DEP... 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(411) 评论(0) 推荐(0)
摘要: 这篇文章是参考加甲骨论老相老师视频所做的学习笔记:http://www.jiagulun.com/thread-2675-1-1.htmlSql 执行的流程分成3部分:解析部分(Parse): Server process将sql语句在Shared pool(共享池)里解析为执行计划执行部分(Execute): Server process根据执行计划在DB buffer cache和数据文件里提取数据.获取数据部分(Fetch): 获得数据并返回给用户.所以可以看出解析部分是在SGA里面 Share pool里完成的.可以从V$sgainfo 视图查看shared pool 的当前大小信息S 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(424) 评论(0) 推荐(0)
摘要: 我们知道Oracle 里用户客户端是通过session连接服务器里的Server process进程来访问数据库的. 但是Server Process 并不会直接从数据文件中读写数据, 而是把数据先放入SGA里面的Database buffer cache(数据库高速缓存)里再进行操作, 最终依靠后台进程DBWR 将缓存里修改后的数据写回数据文件.如图: 上图中, server process A想访问数据文件里的数据1, 首先会从缓存中找是不是已存在这些数据, 如果无, 就会将数据文件中的数据1放到缓存中. 然后就对缓存里的数据1进行访问.当Server process对缓存里的数据进行读. 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(1461) 评论(0) 推荐(0)
摘要: 这个可以算是学习笔记吧, 是参照甲骨论老相老师的视频做的:http://www.jiagulun.com/thread-2674-1-1.html1.数据库文件Oracle 数据库文件大概可分为3种,分别是:控制文件(control files): 存放数据库本身物理结构信息数据文件(data files): 存放数据库数据啦~日志文件(log files): 包括重做日志文件和归档日志文件, 记录数据库数据的变化.如下图:2.数据库实例 但是用户和应用程序是无法直接访问数据库文件的数据的, 这时Oracle服务器会启动1(或多个..RAC集群啦)个实例.,用户可以通过连接这个实例来访问数据库 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(438) 评论(0) 推荐(0)
摘要: Oracle权限分为两种:分别是系统权限(system privileges): 包括创建/删除表 , 创建删除用户等.对象权限(object privileges): 操控数据库特定对象的内容,例如select某张表,插入数据到某张表等.另外介绍个概念:方案(schema): is a collection of database objects (used by a user.). 就是对象的集合啦,例如表,试图,,索引的集合.1.系统权限(system privileges)对用户和角色来讲,oracle大概有100多个不同的系统权限,系统权限一般由dba提供.典型的系统权限如下表:1. 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(683) 评论(0) 推荐(0)
摘要: 在Oracle sqlplus查看执行计划时.我们一般使用set autotrace on;接下来的sql语句就会自动显示execution plan.但是有时再执行set autotrace on时会报出如下错误: 例如在11g oralce example的hr....SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling STATISTICS report原因是hr账户没有访问与autotrace相关表的权限.在SP2_0618提示我们应该 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(166) 评论(0) 推荐(0)
摘要: VirtualBox 一向评价很高,但是我使用这款软件安装Redhat Linux 时CPU使用率竟然一直占用在100%,搜索了很多地方竟然没有人解释此问题,今天突然想起一句话,外事不决问小谷!看来百度不行呀!应该是中文处理能力还是有的!解决办法:vi /etc/grub.conf default=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-92.1.22.el5vm) root (hd0,0) kernel /vmlinuz-2.6.18-92.1.22.el5vm ro ro. 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(215) 评论(0) 推荐(0)
摘要: 首先 编辑服务器/etc/exports加入/home/oracle/ 192.168.0.*(rw,sync,no_root_squash)分别是要共享的目录, 可以访问的IP(属性)服务器要启动nfs 服务(RHEL)service nfs start关闭防火墙:service iptabels stopFedora(客户端) 要先安装nfs-utilsyum install nfs-utils跟住测试下啊showmount -e 192.168.x.x(serverip )列出 跟住执行Mountmount -t nfs 192.168.0.112:/home/oracle /home/ 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(170) 评论(0) 推荐(0)
摘要: 1.Declare 如下图:注意图上2点:1.无论定义几个变量,declare这个关键字只写一次, 跟sybase吾同啊。2.begin end里面的select 要带 into 啊..3.declare 一定要和begin end一齐用啊,而且要写在begin end上面啊2.使用&符号将上面的例子修改一下如下图:执行时就会要求你输入变量的值 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(364) 评论(0) 推荐(0)
摘要: 转自:http://www.cnblogs.com/calmzeal/archive/2009/03/26/1422174.htmlSQL>set colsep' '; //-域输出分隔符 SQL>set echo off; //显示start启动的脚本中的每个sql命令,缺省为on SQL> set echo on //设置运行命令是是否显示语句 SQL> set feedback on; //设置显示“已选择XX行” SQL>set feedback off; //回显本次sql命令处理的记录条数,缺省为on SQL>set headin 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(145) 评论(0) 推荐(0)
摘要: 转自:http://man.ddvip.com/linux/Mandrakelinuxref/process-priority.html系统中运行的每个进程都有一个优先级(亦称“nice 值”),其范围从 -20 (最高优先级)到 19 (最低优先级)。默认情况下,进程的优先级是 0 (“基本”调度优先级)。优先级比较大的进程(nice 值比较小,最低到 -20)相对优先级比较小的进程(直到 19)将比较频繁地被调度运行,因此就拥有更多的进程周期。一般用户只能降低它们自己进程的优先级别,并限于 0 到 19 之间。超级用户(root)可以将任何进程的优先级设定为任何值。renice如果某个或某 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(328) 评论(0) 推荐(0)
摘要: RHEL 最近启动十分慢,起码8分钟,仲以为要死机了, 看了detail list后发现是sendmail启动慢,网上google了一下, 发现是/etc/hosts 配置文件的原因。如下图, 稍微改下就ok了 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(130) 评论(0) 推荐(0)
摘要: 如果这个文件是存在于系统的(已经安装的)那么大家直接 rpm -qf 完整路径文件名 就ok了,这个大家都知道。如果这个文件是未安装的,例如你安装1个rpm包但是提升缺少这个缺少那个的。。那么可以使用yum provides <库名>它将会在源里查找这个文件属于哪个包。如果源里没有的话就真的只能google了~ 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(446) 评论(0) 推荐(0)
摘要: 转自:http://www.einit.com/user1/11/archives/2006/3603.htmlUnix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe --user=mysql & 但是我们很多程序并不象mysqld一样可以做成守护进程,可能我们的程序只是普通程序而已,一般这种程序即使使用 & 结尾,如果终端关闭,那么程序也会被关闭。为了能够后台运行,我们需要使用nohup这个命令,比如我们有个start.sh需要在 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(112) 评论(0) 推荐(0)
摘要: 安装自动选择最快镜像插件 安装插件fastestmirror,可以让yum管理器自动搜索最快源下载 sudo yum -y install yum-fastestmirror 添加rpmfusion源 sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm 安装GNOME-tweak-tool sudo yum install gnome-tweak-tool 标题栏添加“最大化/最小化/关闭”按钮 可以通过安装gnome-twe... 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(220) 评论(0) 推荐(0)
摘要: 转自:http://www.linuxidc.com/Linux/2012-06/62694.htm要在Fedora 17 下安装Flash player 1- 添加 For Fedora 32-bit x86 rpm -ivh http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpmrpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux For Fedora 64-bit x86_64 rpm -ivh http://linuxdownl 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(242) 评论(0) 推荐(0)
摘要: 1.列出所有可更新的软件清单命令:yum check-update 2.安装所有更新软件命令:yum update 3.仅安装指定的软件命令:yum install <package_name> 4.仅更新指定的软件命令:yum update <package_name> 5.列出所有可安裝的软件清单命令:yum list 用YUM安装删除软件装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。安装的命令是,yuminstallxxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(102) 评论(0) 推荐(0)
摘要: 转自:http://www.justwinit.cn/post/4232/用yast2图形操作,或用zypper习惯于在字符下面解决问题,在用习惯了yum的情况下改投SuSE的yast总觉得有些慢,处理起来让我 很是着急。yast的界面做的很好,也很详细,但是一定程度上加大了使用的繁复性,对于我等习惯了CLI的情况下,还是有些难于接受。开始的时候用了 yast -i安装一些已经知道的包名。发现还可以。但是当我只知道一点关键字,不知道完整包名的时候,让我感觉yast的包的查询不是很便捷。还好看了一下 SuSE的官方文档reference,知道了这个命令zypper.ha02:~ # zypp.. 阅读全文
posted @ 2013-04-02 00:56 Gateman 阅读(498) 评论(0) 推荐(0)
摘要: 安装gnome3后, 我发现机子的无线网络不能设置,原因是option按钮按了无效.这样的话就不能设置固定ip.还导致每次唤醒机器都要重新确认wifi密码.原因是设置网络的模块未安装,该模块名字叫 network-manager-gnome执行sudo apt-get install network-manager-gnome一切都ok了. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(563) 评论(0) 推荐(0)
摘要: 起初GNU/Linux系统中只有.tar.gz。用户 必须自己编译他们想使用的每一个程序。在Debian出现之後,人们认为有必要在系统 中添加一种机 制用来管理 安装在计算机上的软件包。人们将这套系统称为dpkg。至此着名的‘package’首次在GNU/Linux上出现。不久之後红帽子也开始着 手建立自己的包管理系统 ‘rpm’。 GNU/Linux的创造者们很快又陷入了新的窘境。他们希望通过一种快捷、实用而且高效的方式来安装软件包。这些软件包可以自动处理相互之间 的依赖关系,并且在升级过程中维护他们的配置文件 。Debian又一次充当了开路先锋的角色。她首创了APT(A... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(192) 评论(0) 推荐(0)
摘要: Sybase 有自带的系统函数 isnumeric 来判断1个字符是否能转换成数字。而Oracle没有这个函数,所以在sql语句使用to_number函数时有时候会因为数据问题导致系统出错。解决方案有几个,一, 新建1个自定义函数, 利用to_number, 能转换成to_number的就返回真, 转换出错的就返回假。CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2) RETURN NUMBER IS v_str FLOAT; BEGIN IF str IS NULL THEN RETURN 0; ELSE BEGIN ... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(1181) 评论(0) 推荐(0)
摘要: 一, 基本介绍 sql_trace 是Oracle 提供用于进行sql语句追踪的工具。 下面介绍一些简单用法: 二, 启用方法 2. 1 在全局中使用 在参数文件(pfile/spfile)中指定: sql_trace = true 在全局启用sql_trace会令到所有进程都会被追踪,包括后台进程以及所有用户进程。会导致比较明显的性能下降。所以在production环境一般不使用。 2.2 在当前session启用 大多数时候我们使用sql_trace 追踪当前进程。前提是当前账号具有alter session的系统权限。 启用命令为alter ... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(193) 评论(0) 推荐(0)
摘要: translate 是用来替换字符的函数 语法: translate(char, from_str,to_str) 其中,char是待处理的字符串. from_str是按顺序排列若干个要被替换的字符集合,注意是字符集合而不是字符串。 to_str 是按顺序对应from_str要被替换成的字符集合。 例如: translate('abcd','ab','AB') 执行上面语句后, 'abcd'中的'a' 被'A'替换, 'b'被'B'替换。所以返回"ABcd& 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(1322) 评论(0) 推荐(1)
摘要: 原文:http://www.cnitblog.com/201/archive/2009/08/20/60887.html 熟悉使用ifconfig 会非常方便。 ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 一、修改IP地址 [aeolus@db1 network-scripts]$ vi ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=219.136.241.211 NETMASK=255.255.... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(288) 评论(0) 推荐(0)
摘要: 首先在随便1个地方建立1个sql语句的文件。例如:执行命令为:sqlplus loginID/passwd@serverIP/servcie_name @path/file.name例如: 见下图但是,如果sql脚本文件比较复杂,包含了begin end语句。 例如下图的tmp5.sql那么运行时会不断显示行号,显示不了结果输出 如下图:解决方法:所以强烈建议在sql脚本的最后用"/" 符号结尾。如下图: 就可以见到正常的输出了此外也可以先登录sqlplus然后在用SQL>@/home/oracle/tmp.sql 命令来执行sql脚本文件。 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(2099) 评论(0) 推荐(0)
摘要: 1. 存储过程和函数1.1 创建和删除存储过程 创建存储过程,需要有CREATE PROCEDURE 或 CREATE ANY PROCEDURE的系统权限.基本语法如下: CREATE OR REPLACE PROCEDURE SP_NAME( PM_NAME [IN/OUT/IN OUT] PM_TYPE...) {AS} [说明(变量定义)部分] BEGIN 可执行部分 [EXCEPTION] 错误处理部分 END [SP_NAME];参数部分用于定义若干个参数(若没有参数,可以忽略)。参数有三种形式: IN / OUT 和 IN OUT, 默认为IN。关键字AS 也可以写成 IS.删. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(3678) 评论(0) 推荐(0)
摘要: 转自:http://os.51cto.com/art/201001/176511.htm对大家推荐很好使用的nfs服务系统之前,像让大家对Ubuntu nfs服务系统有所了解,然后对Ubuntu nfs服务系统全面讲解介绍,希望对大家有用配置Ubuntu nfs服务器,可见Ubuntu隶属于linux阵营。顺便问一句楼主既然没有文档何必一定要学ubuntu,还是学有文档的比较方便。 在Ubuntu下安装、配置Ubuntu nfs服务的步骤如下: 1、安装Ubuntu nfsUbuntu上默认是没有安装Ubuntu nfs服务器的,因此我们首先安装Ubuntu nfs服务器端:$sudo ... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(233) 评论(0) 推荐(0)
摘要: 转译自Aman Sharma的blog:http://blog.aristadba.com/?tag=data_object_id事实上还有很多关于Oracle数据库的知识我不了解,特别是一些辅助性的知识点。几乎每一天,都会有一些新的东西出现在我面前,这让我意识到我所知道的是多么少? 昨天和今天也不例外,我知道了两个以前我并不了解的新东西。现在我把其中1项分享出来,迟d我会分享另1个。几天前有人问我1个问题: 是否有1个东西叫Data_object_id, 如果有的话,它是用来做什么的呢? 正巧,在OTN论坛也有人问这个问题。我当时并不清楚Data_object_id 是什么,但它的确在视图A 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(1076) 评论(0) 推荐(0)
摘要: 簇表概述簇表(cluster) 是一种可以选的存储数据方式。簇表由1组拥有相同的列而且经常被一起使用的数据表构成,这组表在存储时会共享一部分Data Blocks, 例如,employees 和 departments表都包含department_id 这个列。 当用户将这两个表组合成1个簇表时,Oracle在物理上将employees 和 departments 两张表各行的department_id 字段存储在1个Data block里。下图显示了由employees 和 departments 两张表构成的簇表是怎样存储的。如上图,在1个簇表内,不同表的相关(related)数据行会被存 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(3877) 评论(0) 推荐(0)
摘要: 转自:http://www.liveme.org/chrome-font-in-linux.html时隔一年后回到ubuntu,使用了两周,目前已经基本在linux常驻下来了。无论哪个系统,首选浏览器肯定是Google Chrome啦,之前还挺纠结的,因为上面Chrome的字体还真让我不满意,发虚模糊,尤其是百度网站的字体,即使设置了Chrome字体后,还是会模 糊的厉害。在G+的即时聊天上,无冷说用微软雅黑代替算了,可是这要是修改CSS的时候,就有问题了,所有字体都是微软雅黑。折腾设置了很久,于是有了以下两种解决方案,请各取所需。 测试环境:Ubuntu11.10—GNOME3—中文简体.. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(1687) 评论(0) 推荐(0)
摘要: Data Blocks, Extents, and Segments --数据块,区,与段原文:docs.oracle.com/cd/B28359_01/server.111/b28318/logical.htm#i8531这一章描述了Oracle数据库存储结构的逻辑,性质和联系。包含了下列概要:1.Data Blocks, Extents, 和Segments的介绍2.Data Blocks 的概述3.Extents 的概述4.Segments 的概述1.Data Blocks, Extents, 和Segments的介绍Orac... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(659) 评论(0) 推荐(0)
摘要: 一. 索引介绍1.1 索引的创建语法 CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> #使用UNIUQE就会附送1个唯一索引, BITMAP为位图索引,默认是B树索引。ON <schema>.<table_name> ( <column1_name> | <expression> ASC | DESC, <column2_name> | <expression> ASC | DESC, ) #可以对多列进行联合索引, 当为expression时即 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(132) 评论(0) 推荐(0)
摘要: 转自:http://blog.csdn.net/lvbang_lzt/article/details/6308947问题描述:同事在Linux下安装的oracle,默认的字符集没有修改,使用的是WE8ISO8859P1,不能够支持中文, 问题表现为,客户端录入的中文数据可以显示,提交之后再查询出来后中文会显示为???。问题出在oracle服务端的字符集不支持中文导致。 可以通过: select userenv('language') from dual; 命令可以查看服务端的使用的字符集。 或者select * from V$NLS_PARAMETERS;命令也可以 以及 se 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(319) 评论(0) 推荐(0)
摘要: 注:这篇文章绝大部分都摘抄于袁光东先生的 <<oracle小组学习笔记>>.下面会对各种字符类型作详细解释。一. char 类型oracle 可以定义1个char(n)类型的列,长度为n, 如果插入数据长度小于n, 会自动用空格补齐。 n<=20001.新建1个表test_char,只含1个列,类型是char(10). 列名是colA.2.向这张表插入一d数据。注:最多只能插入10个字符 否则报错。(废话拉)3.使用dump函数可以查看每1条数据的内部存储结构。注:dump 函数能查看数据在datafile存储内容。解释一下:Typ=96 表示数据类型的ID。 其 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(815) 评论(0) 推荐(0)
摘要: sybase 同埋sqlserver 系冇序列呢样野的。但系oralce有。oralce 序列简单d来讲类似于sybase的递增列的机制, 但是sybase 一张表只允许1个递增列, 而oracle没有这个限制,可以分别为一张表的若干个列指定不同的序列。而且同1个序列可以由各个用户用在不同的表~创建序列语法:CREATE SEQUENCE sequence_name [INCREMENT BY n] --递增的间隔,如果该句省略,默认是+1 [START WITH n] --起始的值,如果该句省略,默认是1 [{MAXVALUE n | NOMAXVALUE}] --最... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(264) 评论(0) 推荐(0)
摘要: 增加修改列的约束:alter table dep_1 modify (Dep_id number(5) default 8 constraint dep_1_id_nn not null) --非空约束 修改表的约束(例如设置主键)alter table dep_1 add constraint Dep_1_id_pk Primary key(Dep_id)alter table dep_1 modify (constraint Dep_1_id_pk Primary key(Dep_id))(设置外键)alter table GRADE_1add con... 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(128) 评论(0) 推荐(0)
摘要: USER_ :这些视图包含关于用户所拥有的对象的信息。ALL_ :这些视图包含所有用户可访问的表(对象表和相关的表)的信息DBA_ :这些视图是受限制的视图,它们只能分配有DBA角色权限的用户所访问v$ :这些视图是动态执行的视图,包含数据库服务器的性能,存储器和锁的信息。 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(135) 评论(0) 推荐(0)
摘要: 语法是create table TMP_TB1 as select * from TB1与sybase的语法不同:sybase 是这样的select * into TMP_TB1 from TB1 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(143) 评论(0) 推荐(0)
摘要: 1.查看本用户所拥有的表的名称SELECT table_name from user_tablesSELECT * from user_objects where object_type = 'TABLE'2.查看本用户所拥有的不同的对象类型SELECT DISTINCT object_typeFROM user_objects3.查看本用户所拥有的表、视图、同义词和序列SELECT * FROM user_catalog SELECT * FROM CAT注:CAT 是 user_catalog的同义词4.查看某个数据列的属性,例如默认值select a.DATA_DEFAU 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(111) 评论(0) 推荐(0)
摘要: 转自:http://www.k187.com/viewthread-3023.html对于SQL语言,有两个组成部分: DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 DDL(data definition language):DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据 类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。 回答者:zhongsojun |. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(178) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(131) 评论(0) 推荐(0)
摘要: 今日睇ocp教程 发现 insert语句还可以子查询例如:INSERT INTO (SELECT employee_id, last_name, email, hire_date, job_id, salary, department_id FROM employees where department_id = 50 )VALUES (99999, 'Taylor', 'DTAYLOR',TO_DATE('07-06-1999', 'DD-MM-YYYY'),'ST_CLERK', 5000,50)系唔系有d无里 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(547) 评论(0) 推荐(0)
摘要: 例如有一张员工表, 表入面有自连接现在要查询 不是经理的人员(就是manager_id 记录没有 他的employee_id的人员)SELECT emp.last_nameFROMemployees empWHERE emp.employee_id NOT IN (SELECT mgr.manager_id from employees mgr);上面的语句逻辑上看起来是没有错误的但是实际上找不到数据:为什么呢答案是自查询存在null值SELECT mgr.manager_id from employees mgr而Not in 实际上就是 <>ALL 而用大于或小于来比较Null 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(236) 评论(0) 推荐(0)
摘要: 我地都知道sql 中 where 和 having 都是用来筛选条件的关键字。而且having 一般和group by 一齐使用, 但是where 也可以用group by 一齐使用的。下面用个简单例子讲解下:有一张分数表Grade_1, 3个column 分别是 dep, name 和 grade, 如下图,好明显可以用部门dep来分组. 表中总共9条数据下面语句是用来列出所有部门的总分。 并没有用到where 和 having 字句。select dep as Dep,sum(grade) as Sum_gradefrom Grade_1group by dep可以见到3个组的总分都列.. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(915) 评论(1) 推荐(0)
摘要: 我地经常见到sql语句中 left outer join... right outer join... 其实对于新手来讲见到呢d字眼系最头痛的。首先现做个说明左外连接就是左连接右外连接就是右连接简称而已而左内 右内连接是不存在的下面做个详细讲解。首先建两个表作讲解用员工表: employee_1 同埋 部门表: dep_1可以见到 Nedved这个人没分配部门, 而部门Network 没人。内连接:我地来睇下最常见的连接语句 select a.name, b.dep_name from employee_1 a, dep_1 bwhere a.dep = b.dep_id可以见到只有4行, 其 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(886) 评论(0) 推荐(0)
摘要: 转自: http://space.itpub.net/?uid-12216142-action-viewspace-itemid-673605安装了Oracle 免费的SQL Developer,发现中文显示为乱码,英文环境下正常,忘记了以前是如何解决的,记忆中好像很简单,只需要改一下SQL Developer里面的一个设置就可以了,但是搞了半天还是不能解决,由于是通过google查找到了解决办法。 由于SQL Developer使用了JDK,java环境当中缺少中文字体造成了乱码,我安装的是JDK1.6u21,因此我的JAVA的PATH是/usr/lib/jvm/java/jdk1.6.0. 阅读全文
posted @ 2013-04-02 00:55 Gateman 阅读(549) 评论(0) 推荐(0)
摘要: 接:http://nvd11.blog.163.com/blog/static/200018312201272910385218/重启之前,取消挂载执行exit 退出chroot环境跟住输入umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo取消所有挂载 顺序唔好搞错哦好 跟住reboot拉终于可以重启拉:输入shutdwon now跟住要关机去到虚拟机设置启动顺序 把硬盘调到光驱之前跟住就开机拉见到grub选择界面了 泪奔tNJylvCd+gw+CjtgqWCtJSsh45gy2CvbQT4Bl8uY22CO 阅读全文
posted @ 2013-04-02 00:54 Gateman 阅读(286) 评论(0) 推荐(0)
摘要: 转 http://joecen.yourblog.org/logs/188655.html 我 们在安装新内核的时候,通常都会编辑lilo.conf 和grub.conf 文件。 里面有一段“initrd=/boot/initrd-***.img”(其中的***表示内核的版本号)的我们都很少会注意到,有时候还会发现这 一行不要也可以正常开机。那这个initrd***.img究竟是用来干什么的呢? 其实initrd***.img是一个镜像文件,类似ramdisk,把一段程序打包到img里,然后在开机的时候在内存里开辟一段区域,一般是2m,释 放到那里运行,都是一些初始化的程序,比如sis... 阅读全文
posted @ 2013-04-02 00:54 Gateman 阅读(459) 评论(0) 推荐(0)
摘要: 转自:http://hll142475.blog.163.com/blog/static/6213820091834519329/linux的启动配置文件GRUB启动时会在/boot/grub中寻找一个名字为grub.conf的配置文件,如果找不到此配置文件则不进入菜单模式而直接进入命令行模式。 grub.conf是 一个纯文字文件,您可以用任何一个文字编辑器来打开它。在SuSE LINUX 下没有/boot/grub/grub.conf这个文件,但是在/boot/grub/目录下有一个menu.lst文件,它的内容与 grub.conf一样,而在RedHat Linux中有/boot/g.. 阅读全文
posted @ 2013-04-02 00:54 Gateman 阅读(150) 评论(0) 推荐(0)
摘要: 接: http://nvd11.blog.163.com/blog/static/200018312201272995155573/首先梗系要下载安装grub先拉执行time emerge grub3分钟ko,其实睇网速拉跟住编辑 grub配置文件 /boot/grub/grub.confgrub.conf 可以参考 呢度改之前系咁样的改成咁样:好跟住保存退出跟住执行grub 打开grub程序输入root (hd0,0) 回车跟住输入setup (hd0) 回车输入quit退出grubgurb就配置完了。下一步就系重启拉。泪流满面http://nvd11.blog.163.com/blog/s 阅读全文
posted @ 2013-04-02 00:54 Gateman 阅读(227) 评论(0) 推荐(0)
摘要: 接:http://nvd11.blog.163.com/blog/static/200018312201272810582647/系统日志叫syslog-ng其实我觉得吴装呢个都吴影响使用,不过作为1个类unix系统,日志真系好重要。执行time emerge syslog-ng编译安装了16m 给跪了。下1个是cron执行time emerge vixie-cron呢个1分钟搞掂。有必要的话 安装下列工具。下一篇系安装配置开机引导程序grub. 阅读全文
posted @ 2013-04-02 00:54 Gateman 阅读(244) 评论(0) 推荐(0)