
数据库
文章平均质量分 71
我不是VIP
这个作者很懒,什么都没留下…
展开
-
MySQL—— Insert record if not exists in table
在开发中有时候会需要禁止插入重复的数据,下面介绍几种用SQL语句来实现这种效果的方法:1、如果仅仅通过一个value来判断数据是否重复,那么建议将列设为PRIMARY KEY or UNIQUE;2、有时候需要通过对多个value组合来判断数据是否是重复,那么上面的方法就不能实现了,此时可以用EXISTS谓词来实现:a、方法一: INSERT INTO table_name(col1,原创 2016-04-20 16:26:42 · 1153 阅读 · 0 评论 -
利用DBCA静默安装oracle数据库
使用dbca -silent静默安装数据库原创 2017-03-08 11:13:59 · 2960 阅读 · 0 评论 -
ORACLE重建控制文件
因为一次断电导致控制文件丢失,启动数据库报ORA-00205错误:SQL> startupORACLE instance started.Total System Global Area 419430400 bytesFixed Size 2925120 bytesVariable Size 285216192 bytesDatabase Buffers原创 2018-03-17 10:45:38 · 5256 阅读 · 0 评论 -
谈谈ORACLE的启停
这段时间有点迷惘,不知道接下来干嘛了。想辞职,重新找一份java开发相关的工作,也就意味着这一年多数据库运维、开发的经验就浪费了,而且换到java岗我是否就真的热爱这份职业呢?真不知道干嘛了,毕业一年多,走走停停,各种折腾,24岁了,一无所成。最近迷上了一首歌4 Non Blon...原创 2018-03-18 08:29:16 · 2868 阅读 · 0 评论 -
ORA-00600-[kcratr_nab_less_than_odr]问题小记
上午一实施哥们来求救说一个做ETL的数据库无法启动了,出现了ORA-00600的错误。之前也遇到过几次ORA-00600内部错误的问题,几次都是因为数据库服务器异常断电导致的,这类错误一般是oracle自己内部的bug。下面记录下解决的过程: 1、先将数据库启动到mount状态,没有问题,说明数据库成功的打开控制文件。SQL> startup mountORACLE instance sta原创 2018-03-12 20:56:57 · 3643 阅读 · 3 评论 -
聊聊PL/SQL条件编译
说说PL/SQL一个比较冷门但是很强大的东西——条件编译,顾名思义,条件编译就是根据不同的条件编译PL/SQL应用而无需移除源码中的文本。比如,根据不同的数据库版本,编译不同的源码;在开发环境中用于debug的语句,当在生产环境部署时不编译该部分语句。 预处理控制指令  ...原创 2018-03-30 22:35:29 · 1054 阅读 · 0 评论 -
PL/SQL数据类型关注点
数据类型决定了它的存储格式、有效值范围以及可以对它进行的操作。本文主要记录一些PL/SQL中标量数据类型需要注意的一些点。 首先简单解释下什么是标量数据类型,当第一次在ORACLE官方文档中看到这个词的时候也是有点懵的。ORACLE对其的解释是store values with no internal components,意思是标量数据类型只有一个值,没有内部分量,比如VARCHAR2、BOO...原创 2018-04-01 17:22:26 · 232 阅读 · 0 评论 -
PL/SQL数据类型——COLLECTION
PL/SQL中我们可以定义两种属性数据类型:COLLECTION和RECORDS。属性数据类型的内部成员可以是标量数据类型也可以是属性数据类型。 集合数据类型的内部由相同数据类型的元素组成,我们可以通过它的唯一索引以variable_name(index)的方式去访问其中的元素。集合数据类型包含以下几种:关联数据(associative array)、可变数组(Varray)、嵌套表(原创 2018-04-06 21:46:54 · 2185 阅读 · 0 评论 -
ORACLE内存结构
为了对ORACLE数据库有一个基本的了解,我们首先需要理解ORACLE的内存结构。 可以大体上将ORALCE内存分为以下几类:System Global a...原创 2019-04-06 23:19:16 · 2785 阅读 · 0 评论 -
通过10046 event来获取真实的执行计划
获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都有可能因为绑定绑定变量和当时SQL执行环境的影响而导致获取到的执行计划可能不准确。对于AUTOTRACE开关,当执行SET AUTOT ON和SET AUTOT TRACE命令此时的SQL是实际执行...原创 2019-04-09 12:04:54 · 505 阅读 · 0 评论 -
ORACLE中的常见执行计划
原文发表在http://l4j.cc/2019/04/21/oralce-access-path-introduce/ 本文梳理、归纳了在之前工作中常见的一些执行计划。了解ORACLE中有哪些可能的执行计划,以及什么情况下适合哪种执行计划是进行SQL优化的基础。表访问相关Full Table Scans 全表扫描首先会读取表中的所有行,然后过滤掉不满足条件的数据。全表扫描时,数据库会...原创 2019-04-23 14:21:38 · 893 阅读 · 0 评论 -
oracle普通表转分区表——在线重定义
oracle普通数据表重定义为分区表原创 2017-02-22 16:36:15 · 614 阅读 · 0 评论 -
oracle数据库软件的静默安装
OUI的安装方式便捷、直观,但是有时候出于一些原因(PS:网络等原因),无法在服务器上使用OUI的方式,此时就只有用命令行来进行安装了。原创 2017-02-09 09:32:33 · 1227 阅读 · 0 评论 -
oracle学习笔记-用户与权限管理-(12)
一、用户管理 在oracle中存在三类用户:sysdba、sysoper、普通用户。前两类用户为特权用户,拥有数据库的所有权限,特权用户的相关信息可以从动态性能视图v$pwfile_users中获得。SQL> select * from v$pwfile_users;USERNAME SYSDBA SYSOPER原创 2016-10-08 11:04:41 · 2280 阅读 · 0 评论 -
linux下安装ORACLE
学习的时候用oracle都是在windows下的,安装比较简单,前两天准备在linux下安装oracle 12.1.0,在网上找了两篇教程均安装失败,最后依照官网的安装指南,成功安装。1、安装环境centOS 6.6 (其他版本也大同小异)oracle_database 12.1.02、检查磁盘以及内存资源1、 物理内存(最小1G,推荐2G+)#grep MemTota原创 2016-08-15 21:14:16 · 1061 阅读 · 0 评论 -
oracle学习笔记-存储空间管理(4)
表空间将不同类型的数据对象组织在一起,一般情况下一个数据对象对应一个段。段由若干个区组成,区是存储分配和回收的基本单位。区由若干连续的数据块组成,数据块是逻辑结构中最小的存储单位,是oracle读写数据的基本单位。一、段的管理1、 段的类型 查询数据字典dba_segments可以得到当前数据库中已经存在的段类型。 TABL原创 2016-08-29 15:56:47 · 1168 阅读 · 0 评论 -
oracle学习笔记-重做日志管理(5)
重做日志记录用户的DML和DDL操作记录,包括修改的数据块、修改的位置以及修改后的数据等信息。重做日志文件是保证数据库安全的一种重要手段,数据库故障时可以通过重做日志文件和归档日志文件进行实例恢复和介质恢复。原创 2016-08-30 10:57:06 · 694 阅读 · 0 评论 -
oracle学习笔记-归档日志管理(6)
数据库有两种日志模式:归档模式和非归档模式。在归档模式下,每个重做日志覆盖之前都会进行归档,生成归档日志文件。原创 2016-08-31 10:34:57 · 362 阅读 · 0 评论 -
oracle学习笔记-分区表-(9)
将表、索引等数据库对象划分为小的可管理片段的技术,以提高大型表的访问效率。这些分区之间具有相同的逻辑结构。原创 2016-09-12 14:43:43 · 354 阅读 · 0 评论 -
oracle学习笔记-索引-(10)
创建索引的原则: >如果每次查询仅选择少量的行,应该创建索引 >如果在表上需要进行频繁的DML操作,不应该创建索引 >尽量不要在有很多重复值的列上建立索引 >不要在太小的表上建立索引 创建索引的方式: 1) 在表上指定主键约束和唯一性约束时自动创建索引 2) 通过命令手工创建原创 2016-09-14 14:59:59 · 412 阅读 · 0 评论 -
oracle学习笔记-重做日志分析(7)
通过分析重做日志,将二进制的重做日志以文本的形式显示出来,以跟踪某个用户的DML或DDL操作,或者在某个特定数据库对象上的操作,或者撤销用户在某个特定数据库对象上的操作。1、 创建字典文件设置字典文件的存储位置:SQL> ALTER SYSTEM SETutl_file_dir='D:/temp/dict' SCOPE=spfile;调用程序包DBMS_LOGMNR_D中的BUIL原创 2016-09-05 14:37:44 · 516 阅读 · 0 评论 -
oracle学习笔记-oracle数据库逻辑结构(2)
一个数据库->若干表空间->若干段->若干区-若干块。区:分配存储空间和回收存储空间的基本单位区由多个数据块组成,块是读取的基本单位一个表空间中可有多个数据文件,一个数据块对应多个操作系统块1、 表空间表空间是数据库的逻辑组织形式,将不同的数据类型组织在一起。A、 system表空间必需、自动创建,存储数据库的系统信息,如数据字典,数据库对象的定义、PL/SQL原创 2016-08-25 22:44:26 · 625 阅读 · 0 评论 -
oracle学习笔记-表空间管理(3)
一、表空间结构1、 区管理方式指为一个数据库对象分配存储空间的方式,创建表空间时需要指定区管理方式。Oracle支持字典管理和本地管理两种区管理方式。A、字典管理方式创建字典管理表空间的时,可指定以下参数进行区的管理:INITIAL:首先为数据库分配的区大小;NEXT:指定下一个区的大小;MINEXTENTS:为数据库对象分配的最少区的个数,默认为1;MAXEXTE原创 2016-08-26 16:27:54 · 577 阅读 · 0 评论 -
oracle学习笔记-簇-(11)
簇是一种数据库对象,由多个表通过簇键相连,簇键相同的行共享相同的数据块。簇键是一个列或者多个列的组合。当多个表以簇的形式组织在一起,单独的表段将不存在,表中的数据都将存储在一个簇段中。原创 2016-09-20 14:58:09 · 419 阅读 · 0 评论 -
oracle学习笔记-表的管理-(8)
创建表时可以通过CREATE TABLE子句指定一些重要属性。 A. PCTFREE和PCTUSED子句 指定数据块使用的情况,当剩余空间小于PCTFREE指定的值时不能再向数据块中写入数据,当所使用的空间低于PCRUSED指定的值时可以再次向数据块中写入数据。 B. TABLESPACE子句 指定将表创建在哪个表空间上,如果不指定,则创建在用户的默认表空间上。 C. INITRANS和MAXTRANS子句 OR原创 2016-09-07 15:58:24 · 302 阅读 · 0 评论 -
稳定ORACLE的执行计划
很多时候可能我们都希望CBO能够帮我们生成正确、高效的执行计划,但是很多时候事实并非如此,可能因为各种各样的原因(如,统计信息不正确或者CBO天生的缺陷等)都会导致生成的执行计划特别的低效。之前的一家公司有一台专门用于批量做数据校验清洗的数据库,每次校验清洗完成数据就会清理掉,统计信息经常会发生较大的变更,之前跑得好好的SQL,可能有时候跑5-6个小时都跑不完了,这时候查看执行计划,发现不正确的...原创 2019-04-19 23:02:44 · 646 阅读 · 0 评论