Welcome 微信登录

首页 / 数据库 / MySQL

多行数据的批处理之bulk collect

多行数据的批处理之bulk collect

在写pl/sql的时候,很多时候都会用比较经典的模式,定义一个游标cursor,然后循环从游标中取值进行处理。类似下面的格式declarecursor xxxx is xxxxx;beginloop cur in xxxxx loopxxxxxend loop;end;/如果cursor中包含的数据太多的时候,可能会有性能问题,性能的考虑主要在于pl/sql引擎和sql引擎的切换,和编程中的上下文环境是类似的。这个时候可以考虑采用bulk collect ...
PL/SQL中的forall简单测试

PL/SQL中的forall简单测试

之前写过一篇bulk collect的文章,只是对于bulk collect做了简单的实例。http://www.linuxidc.com/Linux/2015-07/119948.htm其实不光是bulk collect,forall对于pl/sql的性能的提升也是相当大的。可以参见下面的两个图,可以看到其实在pl/sql中,可能很多时候我们所写的pl/sql代码会在sql引擎和plsql引擎建进行上下文的切换,这个过程还是很耗费时间的。而forall却...
为什么 MySQL里的 ibdata1 文件不断增长?

为什么 MySQL里的 ibdata1 文件不断增长?

ibdata1 file我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:ibdata1存了什么?当你启用了 innodb_file_per...
Oracle 11g维护分区概述

Oracle 11g维护分区概述

本章节介绍了如何为Oracle表和索引进行分区和子分区的维护操作。本章节包含以下主题:在分区上可以执行的维护操作自动更新索引添加分区合并分区删除分区交换分区合并分区修改默认属性修改分区的当前属性修改列表分区:增加值修改列表分区:删除值修改子分区模板移动分区在线重定义分区重建索引分区重命名分区分割分区截断分区注意:以下各节讨论分区表的维护操作,这些维护操作会影响到索引或索引分区的可用性,考虑以下几点:只有非空的索引和索引分区才可能被标识为UNUSABLE。如...
误删重做日志文件组导致启动数据库报错ORA-03113

误删重做日志文件组导致启动数据库报错ORA-03113

听不止一个人说起,学技术就要不断地折腾、搞破坏,比如说备份恢复,你就可以尝试删文件,不管是日志文件、临时文件、数据文件还是system文件。删了之后,重启数据库肯定报错,有的甚至当时数据库就挂掉,这样你就可以学着恢复,一破一立之间,很多常规的备份恢复手段也就算是领教了。我今天就尝试着把虚拟机上的一个重做日志文件组删除。1.环境准备我们在Oracle11g中进行测试,数据库处于非归档状态。SQL>SQL> select * from v$vers...
ORA-01157&ORA-01110故障解决

ORA-01157&ORA-01110故障解决

今天在启动虚拟机测试库时,数据库报了ORA-01157和ORA-01110错误,提示找不到一个数据文件。我一看文件名就知道问题在哪儿了,是另一台虚拟机没有启动导致的,因为这个数据库通过dnfs创建了一个“远程”表空间。由于暂时不想启动那台虚拟机(节省内存),干脆就把这个表空间删除,熟悉一下trouble-shooting的过程。1.环境准备 我们在Oracle11g中进行测试。SQL>SQL> select * from...
Oracle 11g维护分区(一)——Adding Partitions

Oracle 11g维护分区(一)——Adding Partitions

添加分区本节将介绍如何手动添加新的分区到分区表,并解释了为什么分区不能被指定添加到大部分分区索引。向范围分区表添加一个分区使用ALTER TABLE ... ADD PARTITION语句来添加一个新的分区到“高”端(表中最后一个分区的’HighValue’)。要在开始或在表的中间添加一个分区,使用SPLIT PARTITION子句。例如,考虑这么一张表,sales,除了包含当前月份的数据,还包含之前12个月...
MySQL 5.6利用GTIDs构建主从数据库

MySQL 5.6利用GTIDs构建主从数据库

【概念】什么是GTIDS(Global Transactions Identifier)是MySQL5.6.5新加入的一项新特性。当使用GTIDS时,无论是在Master上提交事物还是在Slave上应用,每一个事物都可以被识别并跟踪;添加新的Slave或者当发生故障需要将Master身份迁移到Slave上时,都无需考虑哪一个二进制日志以及哪个position,极大的简化了操作步骤;GTIDs是完全基于事务的。因此,不支持MYISAM存储引擎;【关于GTID...
画图解释 SQL join 语句

画图解释 SQL join 语句

我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料。SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看是很自然而然的。不过正如在她的帖子的回复中所说的,在测试中我发现韦恩图并不是十分的匹配SQL联合语法。不过我还是喜欢这个观点,所以我们来看看能不能用上韦恩图。假设我们有下面两张表。表A在左边,表B在右边。我们给它们各四条记录。id name id name------------1Pirate...
Oracle之DBCA中看不到已启动instance与处理方法

Oracle之DBCA中看不到已启动instance与处理方法

一、问题描述:单位一套测试Oracle数据库,本想用DBCA看看数据库配置信息,当然也是手闲得慌,谁想到竟然出现下面的画面。创建新的数据,配置数据库操作按键是灰色,不让点击。这是什么情况,实例没有启动,不可能啊 ,刚刚还登录过呢。好吧,开始处理过程之旅。二、处理方法:1. 检查/etc/oratab文件 ,发现关于路径的信息都是之前安装的ORACLE软件目录(/u01/.....)与现在的软件目录(/home/oracle/app/.....)不一致。修改...
Oracle 11g数据库密码过期ORA-28002问题处理方法

Oracle 11g数据库密码过期ORA-28002问题处理方法

问题描述与分析:用户在登录时报错ORA-28002,(如下图)提示数据将在1天后过期。这是由于11g对于密码的生命周期进行了控制,控制时间为180天。将其时间进行修改便能够解决此问题,未报该错误的用户,将按照修改后的来判断,已出现警告的用户需要进行密码的修改,方可按照新定的时间进行判断。sqlplus连接时:ORA-28002: the password will expire within 1 days28002. 00000 - "the passwo...
如何去掉Oracle数据文件名中空格

如何去掉Oracle数据文件名中空格

环境:Oracle Linux Server release 6.4oracle 11.2.0.1.0问题描述与分析:经常会有在建立表空间时,在数据文件命名时中间或结尾处多个空格,该如何将这名字里面的空格去掉呢,下面我们实验如何去掉。改名思路:将表空间offline,系统级rename,数据库级rename,表空间online,检查数据。1. 创建测试表空间sys@ORCL>create tablespace aaa datafile "/11g/a...
<< 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 >>