- 博客(17)
- 收藏
- 关注
MongoDB初识
近年来数据库界最红的无疑是noSQL了,大佬oracle也开始搞了。对于非关系型数据库我还不是很了解,因此开始学习比较好上手的mongoDB好了。定时的做笔记也是学习的十分好的习惯。 1 数据库软件的安装。其实MongoDB(windows版本)是绿色的。这是非常好的事情,不用等待好久去安装了。在官网上(http://www.mongodb.org/downloads)就...
2012-03-10 16:46:09 100
一周以来遇到的问题和经验(oracle)
很久以前,在我还在X唐电信的时候,我被领导要求优化一段SQL。说真的那个时候我根本不知道SQL的优化为何物,但是百度google之后我发现所有的资料都写有这么一条:把选择性大的条件子句写在最后。因为oracle在执行的时候从底向顶执行。这句话我当时笃信不疑。可是后来我查到更多资料以及对SQL优化有了更深的理解之后,我发现那句话是RBO,而现在的oracle采取CBO。那么SQL到...
2012-02-18 22:23:35 84
关于分区表的初探
上周我写了一篇博文,里面有一点关于分区表的论述(http://www.cnblogs.com/wingsless/archive/2012/02/04/2338292.html)。但是我发现我少写了一点,在你的查询条件和分区列没有太大关系的时候,分区表不会帮助你提高效率。 图1 图2 我是按照area_id分区的,图1的执行计划: 图2的执行计...
2012-02-12 00:26:55 100
对WITH和from(select ...)的一点比较
在之前的工作中,我曾经遇到过表特别大的情况,这个时候我想到了使用with来降低查询的消耗,前文中已经有了描述:http://www.cnblogs.com/wingsless/archive/2012/01/15/2323060.html。今天我突然想到,其实用with和from (select)应该没有本质的差别。所以做了个小实验。 我的表大概7W行,...
2012-02-04 21:24:57 219
使用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 110
原创 好用的函数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 116
有关LGWR
今天群里有人问关于数据库进程的事情,当然,他对oracle的后台进程不是很熟悉。当时我举了个例子,是关于LGWR,但是由于我学艺不精,当时只想起来了这个进程会被commit激发,实在是贻笑大方。回来以后查了一下书,于是记录在此,也算是和大家的分享吧。 LGWR被触发的情况: 1 commit。在提交之后,oracle会先把确认信息写到日志缓冲区里,然后再激发...
2011-12-28 21:37:47 73
安装oracle时还需要修改的几个文件和参数
安装oracle时还需要修改的几个文件和参数: /etc/security/limits.conf nproc:可以开启的进程数量 nofile:可以开启的文件数量 /etc/pam.d/login,改成这样: #Add for Install Oracle Database 11g session required /lib/security/pam_limits.so s...
2011-12-24 23:31:56 132
原创 关于oracle的启动
有这么一道题,是关于在实例启动的时候,哪些文件在某个阶段是不是可以改动的,我觉得这个题是一个很基础的题,对于理解oracle有很大的帮助。于是我就查了一下相关资料,分享一下,适合初学者看。 1 shutdown-->nomount: 读取参数文件,根据参数文件的记录,配置SGA,启动后台进程。这个阶段因为只读取了参数文件,因此能干的事情不少:建立数...
2011-12-24 22:51:23 81
实用语句之一——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 98
原创 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 77
SQL语句的执行过程
服务器接收到SQL语句之后,要经过如下步骤完成操作:Parse(解析)—> Bind(绑定)—> Execute(执行)。 画个流程图比较明显的表示了这些过程: 下面说明执行的具体细节: 1 Select(查询) 2 INSERT/DELETE/UPDATE 这些都是对数据进行修改的语句,画个流程图,简...
2011-12-13 21:20:13 67
原创 OCP题库笔记1z0-052
1 关于undo 数据库可以有一个以上的undo表空间; undo段可以自动增长,按需shrink 2 关于Oracle Data Dump export和import import操作同时可以更改表名; 可以在export操作期间重写一个存在的dumpfile。 3 关于无效索引 会被优化器忽略; 只能通过rebuild生效。 4 关于监听 多个监听能运行在一...
2011-12-12 23:24:34 149
有关nologging和append提高插入效率的研究
那天接到一个事情,我们的数据库表空间已经快用完了,我们需要将一个3GB的表里的数据转储到历史表里去,3天干完。但是我们因为是给运营商服务的,所以白天是绝对不能做这个事情的,只能晚上干,这就要求我们必须尽可能的提高效率。有同事提议使用nologging和append提高效率,但是nologging和append是不是能够提高效率呢。我查询了官方文档,有这么一个描述: C...
2011-12-11 10:39:28 155
计算索引碎片的一个脚本
今天在网上看到了一个估计索引碎片的方法,所以写了个小过程,对用户下的所有索引进行一次计算,挑选二元高度大于4的或者碎片率大于10%的索引进行输出。 需要说明的是,这种估计索引碎片的方法来自网上,还没有查询官方文档上的相关部分,仅供参考,我不对分析出的结果负责。 我在一些OCP的教材上看到了有关analyze validate的说明,据称可以分析出碎片数,但是现在还没在官方文档...
2011-12-11 10:36:57 79
索引不可用的情况
有一天我遇到了一个同事的求助,他让我帮忙优化一个SQL,这个SQL执行时间很长。于是我查询了执行计划,发现这个SQL竟然要进行一次全表扫描。当时我查看了表的定义,发现在where子句中的条件列上是建了索引的,那为什么执行计划会显示全表扫描呢。这个问题困扰了我很长时间,于是后来我又看了看表的定义,发现了问题的根本所在,作为条件的字段是varchar,而SQL语句中的条件是一串数字!这样的话...
2011-12-11 10:35:22 128
如何理解oracle实例(instance)和数据库(database)的概念
今天群里有朋友问什么是instance,什么是database。于是群友七嘴八舌的说了很多很理论很理论的东西,这些东西网上很多,如果提问者能看懂的话也就不问我们了。很显然,提问者刚刚接触oracle,这个问题是困扰oracle新丁的一个常见问题。 我举个通俗易懂的例子,虽然不是很恰当,但是对于初学者理解instance和database很有帮助。 我的C:\下放了一...
2011-12-11 10:34:18 107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人