`
core_qq
  • 浏览: 15146 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

MongoDB初识

    近年来数据库界最红的无疑是noSQL了,大佬oracle也开始搞了。对于非关系型数据库我还不是很了解,因此开始学习比较好上手的mongoDB好了。定时的做笔记也是学习的十分好的习惯。      1 数据库软件的安装。其实MongoDB(windows版本)是绿色的。这是非常好的事情,不用等待好久去安装了。在官网上(http://www.mongodb.org/downloads)就可以下载,然后解压到本地就可以了。这里我解压到了E:\MongoDB下。      2 数据文件路径。和所有的数据库一样,数据的存储要有专门的数据存储目录(windows下叫做文件夹的比较多)。在bi ...
        很久以前,在我还在X唐电信的时候,我被领导要求优化一段SQL。说真的那个时候我根本不知道SQL的优化为何物,但是百度google之后我发现所有的资料都写有这么一条:把选择性大的条件子句写在最后。因为oracle在执行的时候从底向顶执行。这句话我当时笃信不疑。可是后来我查到更多资料以及对SQL优化有了更深的理解之后,我发现那句话是RBO,而现在的oracle采取CBO。那么SQL到底是不是从下向上执行的?这个疑问后来在一次错误中被解决了。       有这么一个表,叫做test,有两个字段ser_id,area_id。但是我记不住了,我写了以下的SQL:   selec ...
     上周我写了一篇博文,里面有一点关于分区表的论述(http://www.cnblogs.com/wingsless/archive/2012/02/04/2338292.html)。但是我发现我少写了一点,在你的查询条件和分区列没有太大关系的时候,分区表不会帮助你提高效率。   图1 ...
         在之前的工作中,我曾经遇到过表特别大的情况,这个时候我想到了使用with来降低查询的消耗,前文中已经有了描述:http://www.cnblogs.com/wingsless/archive/2012/01/15/2323060.html。今天我突然想到,其实用with和from (select)应该没有本质的差别。所以做了个小实验。          我的表大概7W行,使用with的SQL语句如下:   WITH A AS (SELECT T.OWNER, T.OBJECT_NAME, T.OBJECT_ ...
     前两天的业务需求里需要关联好几张表出一个详单报表,这个需求其实很简单,但是数据量大,源表又不是分区表,就变得很头疼了。      最初我的代码大概是这样子的: select a.id,a.name,a.code,b.type,(select p_namefrom C cwh ...
      今天遇到了一个问题,需要对比一个字段和5的大小,大于5的输出0,小于五的输出1。如果是用PLSQL编程的话可以用if/else这种逻辑进行判断,但是在SQL里可不能这么写,经过网友推荐,我组合使用了sign和decode,效果很好,代码小清新。       代码如下:   DECODE(SIGN(TRUNC(COL1 - COL2) - 5), 1, 0, 1) ONTIME_FLAG       这样就可以了。       sign函数的作用是这样的:

有关LGWR

     今天群里有人问关于数据库进程的事情,当然,他对oracle的后台进程不是很熟悉。当时我举了个例子,是关于LGWR,但是由于我学艺不精,当时只想起来了这个进程会被commit激发,实在是贻笑大方。回来以后查了一下书,于是记录在此,也算是和大家的分享吧。      LGWR被触发的情况:      1 commit。在提交之后,oracle会先把确认信息写到日志缓冲区里,然后再激发LGWR,将日志缓冲区内的Redo Entry写到联机重做日志文件里。      2 如果尚在日志缓冲区内的Redo Entry超过三分之一以上日志缓冲区大小的话,就会触发LGWR,将Redo Ent ...
安装oracle时还需要修改的几个文件和参数: /etc/security/limits.conf nproc:可以开启的进程数量 nofile:可以开启的文件数量 /etc/pam.d/login,改成这样: #Add for Install Oracle Database 11g session required  /lib/security/pam_limits.so session required  pam_limits.so 修改/etc/profile,添加如下内容:
     有这么一道题,是关于在实例启动的时候,哪些文件在某个阶段是不是可以改动的,我觉得这个题是一个很基础的题,对于理解oracle有很大的帮助。于是我就查了一下相关资料,分享一下,适合初学者看。      1 shutdown-->nomount:      读取参数文件,根据参数文件的记录,配置SGA,启动后台进程。这个阶段因为只读取了参数文件,因此能干的事情不少:建立数据库;重建控制文件。      上次我把参数文件搞坏了,startup命令以后就来到了nomount状态,在这里我把错误的参数文件去掉了,然后重启以后就好了。有深刻体会。      2 nomoun ...
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)) ) (CONNECT_DATA = (SERVICE_NAME = TESTDB) ) )';  
      控制文件是非常重要的文件,实例读取控制文件才能到mount状态。DBA的一个原则就是多路控制文件,今天我就做了个实验,学习了一下这个。       代码如下: alter system set control_files='D:\app\wings\oradata\testdb\CONTROL03.CTL','D:\app\wings\oradata\testdb\CONTROL04.CTL' scope=spfile;       查看一下 :        select
    服务器接收到SQL语句之后,要经过如下步骤完成操作:Parse(解析)—> Bind(绑定)—> Execute(执行)。     画个流程图比较明显的表示了这些过程:          下面说明执行的具体细节:     1 Select(查询)            2 INSERT/DELETE/UPDATE     这些都是对数据进行修改的语句,画个流程图,简洁明了:             这个叙述比较混乱,举个例子:    有这样一行,学生id是100,成绩是99,现在要将这个成绩改成80(这个ID对应的行,有且仅有一行)。    SQL应该是upd ...
1 关于undo 数据库可以有一个以上的undo表空间; undo段可以自动增长,按需shrink 2 关于Oracle Data Dump export和import import操作同时可以更改表名; 可以在export操作期间重写一个存在的dumpfile。 3 关于无效索引 会被优化器忽略; 只能通过rebuild生效。 4 关于监听 多个监听能运行在一个主机上; 多个数据库能注册在一个监听上。 5 关于ADDM ADDM runs after each AWR snapshot is collected automatically by M ...
     那天接到一个事情,我们的数据库表空间已经快用完了,我们需要将一个3GB的表里的数据转储到历史表里去,3天干完。但是我们因为是给运营商服务的,所以白天是绝对不能做这个事情的,只能晚上干,这就要求我们必须尽可能的提高效率。有同事提议使用nologging和append提高效率,但是nologging和append是不是能够提高效率呢。我查询了官方文档,有这么一个描述:      Conventional INSERT is the default in serial mode. In serial mode, direct path can be used only if you ...
     今天在网上看到了一个估计索引碎片的方法,所以写了个小过程,对用户下的所有索引进行一次计算,挑选二元高度大于4的或者碎片率大于10%的索引进行输出。 需要说明的是,这种估计索引碎片的方法来自网上,还没有查询官方文档上的相关部分,仅供参考,我不对分析出的结果负责。       我在一些OCP的教材上看到了有关analyze validate的说明,据称可以分析出碎片数,但是现在还没在官方文档上找到确切的证据,希望知道的人给我讲一下,以下是我从官方文档上找到的一些关于analyze validate的说明:        For an index, Oracle Database verif ...
Global site tag (gtag.js) - Google Analytics