Oracle undo
结合实例和图示,介绍oracle Undo具体含义[@more@]在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务。我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成。那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过)。 一个很典型的列子,银行转账,其实其需要两步操作,第一步先将你账户上的钱减去,第二步把被转账户的钱加上,(先减后加,出了问题银行不吃亏。呵呵!)这样就是一个完整的事务。如果执行了一半,你的钱减了,被转账户的钱没加上,这个时候事务就
Oracle优化器RBO和CBO(转载)
ORACLE (oracle技术索引树)提供了CBO、RBO两种SQL优化器。CBO在ORACLE7 引入,但在ORACLE8i 中才成熟。ORACLE 已经明确声明在ORACLE9i 之后的版本中(ORACLE 10G ),RBO将不再支持。因此选择CBO 是必然的趋势[@more@]CBO和 RBO作为不同的SQL优化器,对SQL语句的执行计划产生重大影响,如果要对现有的应用程序从RBO向CBO移植,则必须充分考虑这些影响,避免SQL语句性能急剧下降;但是,对新的应用系统,则可以考虑直接使用CBO,在CBO模式下进行SQL语句编写、分析执行计划、性能测试等工作,这需要开发者对CBO的特性比较熟悉。以下小结几点在
MySQL Timeout解析
connect_timeout、interactive_timeout、wait_timeout、net_read_timeout、net_write_timeout、[@more@]“And God said, Let there be network: and there was timeout”在使用MySQL的过程中,你是否遇到了众多让人百思不得其解的Timeout?那么这些Timeout之后,到底是代码问题,还是不为人知的匠心独具?本期Out-man,讲述咱们MySQL DBA自己的Timeout。先看一下比较常见的Timeout参数和相关解释:connect_timeoutThe number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake.interac
MYSQL启用日志和查看日志
利用mysqlbinlog.exe查看二进制日志[@more@]是否启用了日志mysql>show variables like 'log%';怎样知道当前的日志mysql> show master status;看二进制日志文件用mysqlbinlog,mysqlbinlog.exe是安装好mysql后在bin目录中自带的查看工具。shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail Windows 下用类似的命令。mysql有以下几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-queries 更新日志: -log-update 二进制日志: -log-bin
mysql 重启方法(初学者)
linux平台及windows平台mysql重启方法[@more@]Linux下重启MySQL的正确方法: 1、通过rpm包安装的MySQLservice mysqld restart2、从源码包安装的MySQL// linux关闭MySQL的命令$mysql_dir/bin/mysqladmin -uroot -p shutdown// linux启动MySQL的命令$mysql_dir/bin/mysqld_safe &其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_safe位于MySQL安装目录的bin目录下,很容易找到的。3、以上方法都无效的时候,可以通过强行命令:“killall mysql”来关闭MySQL,但是不建议用这样的方式,因为这种野蛮的方法会强行终止MySQL数据库服务
mysql数据库备份导入命令
mysql数据库备份导入命令[@more@]MYSQL导入导出数据库命令1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:Program FilesMySQLMySQL Server 4.1bin2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)(如果导出单张表的话在数据库名后面输入表名即可)3、会看到文件news.sql自动生成到bin文件下 命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便
sql语句的优化
大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿![@more@]大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿! SQL语句: 是对数据库(数据)进行操作的惟一途径; 消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上
监控Oracle数据库的常用shell脚本
这篇文章介绍了DBA每天在监控Oracle数据库方面的职责,讲述了如何通过shell脚本来完成这些重复的监控工作。本文首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本。同时文章还介绍了8个重要的脚本来监控Oracle数据库[@more@]这篇文章介绍了DBA每天在监控Oracle数据库方面的职责,讲述了如何通过shell脚本来完成这些重复的监控工作。本文首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本。同时文章还介绍了8个重要的脚本来监控Oracle数据库: 检查实例的可用性 检查监
深刻理解Oracle数据库的启动和关闭
Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。[@more@]Oracle数据库提供了几种不同的数据库启动和关闭方式,本文将详细介绍这些启动和关闭方式之间的区别以及它们各自不同的功能。 一、启动和关闭Oracle数据库 对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQL*Plus来
Oracle发布一个SQL语句的处理过程
Oracle发布一个SQL语句的处理过程,解释了sql执行时软解析和硬解析。[@more@]Oracle发布一个SQL语句的处理过程:1、将该语句转化成ASCII等效数字码2、将ASCII等效数字码传递给一个散列算法,由该散列算法产生一个单独的散列3、搜索当前用户的session缓存中(在PGA中)是否存在相同的散列版本,如果存在,就直接执行该语句。这就是fast parse。4、如果在PGA中没有命中,查找其他的session中是否有相同的散列,这就需要到共享池的库缓存中对查找。如果在库缓存中找到相同的散列。这就是soft parse。5、若在3和4中都没有找到相同散列,用户进
oracle碎片整理方法
采用两种方法:exp imp 和 SQL脚本整理[@more@]---- 我们知道,段由范围组成。在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典 dba_segments ,范围的信息可查看数据字典 dba_extents 。如果段的碎片过多, 将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。这个过程可以用 Import/Export (输入 / 输出)工具来完成。 ---- Export ()命令有一个(压缩)标志,这个标志在读表时会引发 Export 确定该表所分配的物理空间量,它会向输出转
关于数据库open的深入探究
关于数据库open的深入探究[@more@]关于数据库open的深入探究 SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup mountORACLE instance started.Total System Global Area 131142648 bytesFixed Size 451576 bytesVariable Size 104857600 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesDatabase mounted.SQL> alter session set sql_trace = true;Session altered.SQL> alter database open;Database altered.SQL> 首先我们来参考跟踪文件的前部分(参
oracle删除重复记录
删除重复记录[@more@]oracle-快速删除重复的记录做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而且是生产系统。也就是说,不能把所有的记录都删除,而且必须快速的把重复记录删掉。对此,总结了一下删除重复记录的方法,以及每种方法的优缺点。为了陈诉方便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col2上加了索引。1、通过创建临时表可以把数据先导入到一个临时表中,然后删除原表的数据,再
ORACLE备份策略
ORACLE备份策略[@more@]ORACLE备份策略(ORACLE BACKUP STRATEGY)第一章. 概要1、了解什么是备份2、了解备份的重要性3、理解数据库的两种运行方式4、理解不同的备份方式及其区别5、了解正确的备份策略及其好处第二章. 了解备份的重要性可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片、主板电路、内存、电源等任何一项不能正常工作,都会导致计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏
数据库管理日常sql列表
数据库管理日常sql列表[@more@]--监控索引是否使用alter index &index_name monitoring usage;alter index &index_name nomonitoring usage;select * from v$object_usage where index_name = &index_name;--求数据文件的I/O分布select df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetimfrom v$filestat fs,v$dbfile dfwhere fs.file#=df.file# order by df.name;--求某个隐藏参数的值col ksppinm format a54col ksppstvl format a54select ksppinm, ksppstvlfrom x$ksppi pi, x$ksppcv cvwhere cv.i
Oracle专家调优秘密
Oracle专家调优秘密[@more@]前言 在过去的十年中, Oracle 已经成为世界上最专业的数据库之一。对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能。 Oracle 调优是一个复杂的主题。关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的。 在这篇简介中,我们将简要地介绍以下的 Oracle 主题: -- 外部调整:我们应该记住 Oracle 并
基于成本的优化器 — 一般错误概念和问题
基于成本的优化器 — 一般错误概念和问题[@more@] Background 背景 ~~~~~~~~~~ 为了执行任何一个SQL语句,Oracle都要先导出一个“执行计划(execution plan)”。它基本上就是Oracle如何检索出符合给定SQL语句要求的数据的执行计划。 Oracle7和Oracle8 都有两种可以为SQL语句导出执行计划的优化器: - 基于规则的优化器(RBO) 继承自Oracle6,它使用一系列严格的规则来决定每个SQL语句的执行计划。如果你知道这些规则,你可以构造一个SQL查询使其以指定的方式访问数据。表的内容对于执行计划没有影响。 这个优化
Oracle 数据库 10g中的分区功能
Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。而且,因为在 SQL 语句中分区是完全透明的,所以该功能几乎可应用于任何应用程序。[@more@]执行概要Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每
Oracle数据类型简介
在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型[@more@]一、概述 在ORACLE8中定义了:标量(SCALAR)、复合(COMPOSITE)、引用(REFERENCE)和LOB四种数据类型,下面详细介绍它们的特性。 二、标量(SCALAR) 合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。 数字,它有三种基本类型--NUMBER、PLS_INTEGER和BINARY_INTENER。NUMBER可以描述整数或实数,而PLS_INTEGER和BINARY_INTENER只能描述整
oracle性能调整
Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显著下降的问题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能。[@more@]1 调整数据库服务器的性能 Oracle数据库服务器是整个系统的核心,它的性能高低直接影响整个系统的性能,为了调整Oracle数据库服务器的性能,主要从以下几个方面考虑:1.1 Oracle 调整操作系统以适合Oracle数据库服务器运行 数据库服务