ORACLE中的常见执行计划 原文发表在http://l4j.cc/2019/04/21/oralce-access-path-introduce/ 本文梳理、归纳了在之前工作中常见的一些执行计划。了解ORACLE中有哪些可能的执行计划,以及什么情况下适合哪种执行计划是进行SQL优化的基础。表访问相关Full Table Scans 全表扫描首先会读取表中的所有行,然后过滤掉不满足条件的数据。全表扫描时,数据库会...
稳定ORACLE的执行计划 很多时候可能我们都希望CBO能够帮我们生成正确、高效的执行计划,但是很多时候事实并非如此,可能因为各种各样的原因(如,统计信息不正确或者CBO天生的缺陷等)都会导致生成的执行计划特别的低效。之前的一家公司有一台专门用于批量做数据校验清洗的数据库,每次校验清洗完成数据就会清理掉,统计信息经常会发生较大的变更,之前跑得好好的SQL,可能有时候跑5-6个小时都跑不完了,这时候查看执行计划,发现不正确的...
通过10046 event来获取真实的执行计划 获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都有可能因为绑定绑定变量和当时SQL执行环境的影响而导致获取到的执行计划可能不准确。对于AUTOTRACE开关,当执行SET AUTOT ON和SET AUTOT TRACE命令此时的SQL是实际执行...
Linux网络配置 在Linux下可以通过脚本或者Linux内建的命令来进行网络的相关配置,就我而言更倾向于直接编辑网络相关的脚本进行配置,这样看上去更清晰一些。相关参数配置文件linux网络比较重要的几个配置文件如下:/etc/sysconfig/network-scripts/ifcfg-设备名/etc/sysconfig/network/etc/resolv.conf/etc/hosts/et...
Bash-Script的复习与梳理 最近把Linux Bash编程的知识复习了一遍,大概梳理了一下,做个记录。第一个Bash-ScriptLINUX shell的种类非常之多,但是目前用得最为广泛的还是Bash,本文也是基于Bash的Shell环境。下面是一个简单的示例:#! /bin/shecho 'hello world!'这就是一个最简单的shell脚本了。第一行的#!用来告诉系统,这个脚本用什么解释器来执...
我工作中的常用LINUX命令 原文地址:我工作中的常用LINUX命令Linux系统命令非常之多,但是玩过Linux之后就会明白,我们只需要掌握常用的命令就可以了。常用命令的使用方式也不可能都记住,但是你只要知道这个命令,使用的时候查下man或commond -h看看用法就好了。cd这时一个最基本的命令,我们平时基本上也只会用到cd dir,也可以跟一些option,但是基本上是用不到的,dir可以是绝对路径也可以是...
PL/SQL数据类型——COLLECTION PL/SQL中我们可以定义两种属性数据类型:COLLECTION和RECORDS。属性数据类型的内部成员可以是标量数据类型也可以是属性数据类型。 集合数据类型的内部由相同数据类型的元素组成,我们可以通过它的唯一索引以variable_name(index)的方式去访问其中的元素。集合数据类型包含以下几种:关联数据(associative array)、可变数组(Varray)、嵌套表(
PL/SQL数据类型关注点 数据类型决定了它的存储格式、有效值范围以及可以对它进行的操作。本文主要记录一些PL/SQL中标量数据类型需要注意的一些点。 首先简单解释下什么是标量数据类型,当第一次在ORACLE官方文档中看到这个词的时候也是有点懵的。ORACLE对其的解释是store values with no internal components,意思是标量数据类型只有一个值,没有内部分量,比如VARCHAR2、BOO...
聊聊PL/SQL条件编译 说说PL/SQL一个比较冷门但是很强大的东西——条件编译,顾名思义,条件编译就是根据不同的条件编译PL/SQL应用而无需移除源码中的文本。比如,根据不同的数据库版本,编译不同的源码;在开发环境中用于debug的语句,当在生产环境部署时不编译该部分语句。 预处理控制指令  ...
谈谈ORACLE的启停 这段时间有点迷惘,不知道接下来干嘛了。想辞职,重新找一份java开发相关的工作,也就意味着这一年多数据库运维、开发的经验就浪费了,而且换到java岗我是否就真的热爱这份职业呢?真不知道干嘛了,毕业一年多,走走停停,各种折腾,24岁了,一无所成。最近迷上了一首歌4 Non Blon...
ORACLE重建控制文件 因为一次断电导致控制文件丢失,启动数据库报ORA-00205错误:SQL> startupORACLE instance started.Total System Global Area 419430400 bytesFixed Size 2925120 bytesVariable Size 285216192 bytesDatabase Buffers
ORA-00600-[kcratr_nab_less_than_odr]问题小记 上午一实施哥们来求救说一个做ETL的数据库无法启动了,出现了ORA-00600的错误。之前也遇到过几次ORA-00600内部错误的问题,几次都是因为数据库服务器异常断电导致的,这类错误一般是oracle自己内部的bug。下面记录下解决的过程: 1、先将数据库启动到mount状态,没有问题,说明数据库成功的打开控制文件。SQL> startup mountORACLE instance sta
java基础回顾——浅谈java初始化 干了接近两年的ETL和数据库运维,开发相关的东西已经忘了很多了,学了的东西还是不能丢。java基础回顾系列作为对以前学习知识的重温、记录以及分享。 作为科班出生的,第一门编程语言就是C,曾经产生了很多由于未正确初始化导致的错误。java尽力保证所有变量在使用之前都会得到恰当的初始化(对于方法的局部变量,Java会以编译时错误的形式来提醒程序员进行初始化),但是并不意味着我们可以忽略初始
java反射简介 反射可以让我们在运行时动态的加载类,访问、调用类的字段、方法、构造器。反射机制是构建框架的基础,如Spring框架核心,各种RPC框架等。Class:class的抽象 首先我们需要知道在java中,类的信息是由Class对象来描述的,每个类对应一个Class对象,它表示一个类或者接口(一个annotation也算是一个接口)在运行时的类型信息。Class只有一个private的构造器,你并
Dataset根据指定列去重保留最后一条数据 spark的API中可以使用dropDuplicate()方法根据指定列进行去重。但是根据此方法去重后默认保留的第一条数。有时候我们需要保留文档中的最后一条数据,这时候我们可以将指定列作为key,将源数据转换为一个mapPartionsRDD,然后再reduceByKey进行去重保留最后加入的数。