Oracle管理
core_qq
这个作者很懒,什么都没留下…
展开
-
OCP题库笔记1z0-052
1 关于undo数据库可以有一个以上的undo表空间;undo段可以自动增长,按需shrink2 关于Oracle Data Dump export和importimport操作同时可以更改表名;可以在export操作期间重写一个存在的dumpfile。3 关于无效索引会被优化器忽略;只能通过rebuild生效。4 关于监听多个监听能运行在一...原创 2011-12-12 23:24:34 · 146 阅读 · 0 评论 -
有关nologging和append提高插入效率的研究
那天接到一个事情,我们的数据库表空间已经快用完了,我们需要将一个3GB的表里的数据转储到历史表里去,3天干完。但是我们因为是给运营商服务的,所以白天是绝对不能做这个事情的,只能晚上干,这就要求我们必须尽可能的提高效率。有同事提议使用nologging和append提高效率,但是nologging和append是不是能够提高效率呢。我查询了官方文档,有这么一个描述: C...2011-12-11 10:39:28 · 155 阅读 · 0 评论 -
计算索引碎片的一个脚本
今天在网上看到了一个估计索引碎片的方法,所以写了个小过程,对用户下的所有索引进行一次计算,挑选二元高度大于4的或者碎片率大于10%的索引进行输出。 需要说明的是,这种估计索引碎片的方法来自网上,还没有查询官方文档上的相关部分,仅供参考,我不对分析出的结果负责。 我在一些OCP的教材上看到了有关analyze validate的说明,据称可以分析出碎片数,但是现在还没在官方文档...2011-12-11 10:36:57 · 77 阅读 · 0 评论 -
索引不可用的情况
有一天我遇到了一个同事的求助,他让我帮忙优化一个SQL,这个SQL执行时间很长。于是我查询了执行计划,发现这个SQL竟然要进行一次全表扫描。当时我查看了表的定义,发现在where子句中的条件列上是建了索引的,那为什么执行计划会显示全表扫描呢。这个问题困扰了我很长时间,于是后来我又看了看表的定义,发现了问题的根本所在,作为条件的字段是varchar,而SQL语句中的条件是一串数字!这样的话...2011-12-11 10:35:22 · 126 阅读 · 0 评论 -
如何理解oracle实例(instance)和数据库(database)的概念
今天群里有朋友问什么是instance,什么是database。于是群友七嘴八舌的说了很多很理论很理论的东西,这些东西网上很多,如果提问者能看懂的话也就不问我们了。很显然,提问者刚刚接触oracle,这个问题是困扰oracle新丁的一个常见问题。 我举个通俗易懂的例子,虽然不是很恰当,但是对于初学者理解instance和database很有帮助。 我的C:\下放了一...2011-12-11 10:34:18 · 106 阅读 · 0 评论 -
使用WITH提高查询效率
前两天的业务需求里需要关联好几张表出一个详单报表,这个需求其实很简单,但是数据量大,源表又不是分区表,就变得很头疼了。 最初我的代码大概是这样子的:select a.id,a.name,a.code,b.type,(select p_namefrom C cwhere c.pid = b.pid)from A a, B bwhere a.id = b.id an...2012-01-15 21:02:27 · 108 阅读 · 0 评论 -
好用的函数sign和decode
今天遇到了一个问题,需要对比一个字段和5的大小,大于5的输出0,小于五的输出1。如果是用PLSQL编程的话可以用if/else这种逻辑进行判断,但是在SQL里可不能这么写,经过网友推荐,我组合使用了sign和decode,效果很好,代码小清新。 代码如下: DECODE(SIGN(TRUNC(COL1 - COL2) - 5), 1, 0, 1) ONT...原创 2012-01-08 00:11:54 · 111 阅读 · 0 评论 -
有关LGWR
今天群里有人问关于数据库进程的事情,当然,他对oracle的后台进程不是很熟悉。当时我举了个例子,是关于LGWR,但是由于我学艺不精,当时只想起来了这个进程会被commit激发,实在是贻笑大方。回来以后查了一下书,于是记录在此,也算是和大家的分享吧。 LGWR被触发的情况: 1 commit。在提交之后,oracle会先把确认信息写到日志缓冲区里,然后再激发...2011-12-28 21:37:47 · 69 阅读 · 0 评论 -
安装oracle时还需要修改的几个文件和参数
安装oracle时还需要修改的几个文件和参数:/etc/security/limits.confnproc:可以开启的进程数量nofile:可以开启的文件数量/etc/pam.d/login,改成这样:#Add for Install Oracle Database 11gsession required /lib/security/pam_limits.sos...2011-12-24 23:31:56 · 128 阅读 · 0 评论 -
关于oracle的启动
有这么一道题,是关于在实例启动的时候,哪些文件在某个阶段是不是可以改动的,我觉得这个题是一个很基础的题,对于理解oracle有很大的帮助。于是我就查了一下相关资料,分享一下,适合初学者看。 1 shutdown-->nomount: 读取参数文件,根据参数文件的记录,配置SGA,启动后台进程。这个阶段因为只读取了参数文件,因此能干的事情不少:建立数...原创 2011-12-24 22:51:23 · 79 阅读 · 0 评论 -
实用语句之一——Oracle建立Database Link
create database link dblink_TEST connect to wings identified by wings using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) )...2011-12-18 12:56:10 · 96 阅读 · 0 评论 -
Oracle控制文件的一点研究
控制文件是非常重要的文件,实例读取控制文件才能到mount状态。DBA的一个原则就是多路控制文件,今天我就做了个实验,学习了一下这个。 代码如下:alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CON...原创 2011-12-13 23:15:30 · 74 阅读 · 0 评论 -
SQL语句的执行过程
服务器接收到SQL语句之后,要经过如下步骤完成操作:Parse(解析)—> Bind(绑定)—> Execute(执行)。 画个流程图比较明显的表示了这些过程: 下面说明执行的具体细节: 1 Select(查询) 2 INSERT/DELETE/UPDATE 这些都是对数据进行修改的语句,画个流程图,简...2011-12-13 21:20:13 · 65 阅读 · 0 评论 -
关于分区表的初探
上周我写了一篇博文,里面有一点关于分区表的论述(http://www.cnblogs.com/wingsless/archive/2012/02/04/2338292.html)。但是我发现我少写了一点,在你的查询条件和分区列没有太大关系的时候,分区表不会帮助你提高效率。 图1图2 我是按照area_id分区的,图1的执行计划: 图2的执行计...2012-02-12 00:26:55 · 98 阅读 · 0 评论