9i与10g中启用执行计划的不同
9i中,需要创建plan_table;10g中,不需要创建,默认已经创建。创建plan_table脚本位置,$ORACLE_HOME/rdbms/admin。10g中,普通角色默认没有autotrace功能,与9i一样,需要创建plustrace角色,并将该角色授权给plubic,如grant plustrace to public。创建plustrace脚本位置: $ORACLE_HOME/sqlplus/admin以下为参考文档 http://database.51cto.com/art/200802/66403.htm[@more@]
Oracle 10g 中减少实例恢复时间的参数设置
实例恢复由需要应用的脏缓冲区块个数确定,脏缓冲区块个数的最大值由检查点确定。以下参数可以控制检查点。fast_start_mttr_target:指定实例恢复的最大时间,单位:秒。 10g中的主要设置参数。log_checkpoint_timeout:指定发出检查点的时间间隔,单位:秒。 10g中用于与以前版本兼容。log_checkpoint_interval:指定发出检查点的重做日志块间隔,单位:OS块。 10g中用于与以前版本兼容。通过查询v$instance_recovery,可以监视实例恢复的动态信息。SQL> select actual_redo_blks,target_redo_blks,estimated_mttr from v$instance_rec
Oracle 10g 安装(实验2)
10g大概的安装过程。因为添加的硬盘太小(sdb 1.5g; sdc 1.5g; sdd 2g),在逻辑卷datavg的扩展上浪费了许多时间。事实证明,存储的规划对于数据库的管理来说,太重要了!具体的安装指南,可以参考如下地址。http://dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm很权威、perfect的安装指南。[@more@]1、查看系统环境内存: 512M以上grep MemTotal /proc/meminfo交换区: 1-2倍内存大小/sbin/swapon -s硬盘:2.5G以上df -k临时硬盘空间:400M以上2、配置内核参数echo 100 32000 100 100 > /proc/sys/kernel/semecho 429496729 >
从MySQL得到最大的性能 ------ 转
优化MySQL的参考。转自网络。[@more@]优化是一项复杂的任务,因为它最终需要对整个系统的理解。当用你的系统/应用的小知识做一些局部优化是可能的时候,你越想让你的系统更优化,你必须知道它也越多。因此,本章将试图解释并给出优化MySQL的不同方法的一些例子。但是记住总是有某些(逐渐变难)是系统更快的方法留着去做。10.1 优化概述为了使一个系统更快的最重要部分当然是基本设计。你也需要知道你的系统将做这样的事情,那就是你的瓶颈。最常见的瓶颈是:磁盘寻道。磁盘花时间找到一个数据,用在1999年的现代磁盘其平均时间通常小于10ms
[转载]成就DBA职业生涯
绝佳的文章!从www.itpub.net上AIX版看到文章,具体的出处没再去查找,请原创者见谅。[@more@]成就DBA职业生涯 成就DBA职业生涯介绍许多年来,我在不同的新闻组上花费了很多时间与那些想知道如何得到数据库管理员(DBA)的工作或者如何成长为一名DBA的IT人进行交谈,现在他们有了工作。这些年来许多人针对如何达到这个目标提出了不同意见。本文即是那些意见的综合并且能够在如何才能出色的完成DBA的工作方面给出好的建议。这篇文章同样对于如何让一名DBA变得对老板更有价值。假如你已经是一名DBA,那么也许你会希望跳过文章的前几段。我应
什么情况下oracle的索引用不到?
什么情况下oracle的索引用不到?前天跟一公司的技术主管面谈时,他问到了这个问题。遗憾的是当时,当时我的回答很不完整。后来,我静下来认真想了一下,又查了一点资料,大概有了一个基本准确的答案。首先,需要清楚地明白,我们怎样知道在一个oracle sql语句中,索引用不到。通过显示SQL语句的执行计划,即可知道整个SQL语句是如何在oracle内部分步执行的。其次,分析oracle不使用索引的可能原因。 1、where字句中,索引列被使用函数了,并且该列之上没有简历函数索引。这是最常见的现象。 2、同一个表中的两列(有索引)进行比较时,索引
1.2-oracle10g的基本初始化参数
最常用的几个基本初始化参数[@more@]CLUSTER_DATABASE 告诉实例它是不是一个集群环境的一部分COMPATIBLE 指定读者要在实例中使之变成活动状态的发行级别和特性集CONTROL_FILES 指定数据库控制文件的物理位置DB_BLOCK_SIZE 指定默认的数据库块大小DB_CREATE_FILE_DEST 指定要用来创建数据库数据文件的目录位置(如果使用oracle managed files特性)DB_CREATE_ONLINE_LOG_DEST_n 指定要用来创建数据库重做日志文件的目录位置(如果使用oracle managed files特性)DB_DOMAIN 指定数据库在网络上的逻辑位置DB_NAME 指定实例所
1.1-Oracle 产品系列
Oracle 产品系列Oracle Database 10g2004春发布10.1.0.2。包括5个版本:Enterprise、Standard、Standard Edition One、Personal、Lite。有3个主要特性引人注目:管理的简易性:磁盘存储器的自动管理、内存结构的前瞻性监视与自调节、预配置的数据库报警、用于监视与管理整个oracle体系结构的增强型web工具。增强的可缩放性:以Oracle的网格计算模型为基础。改进的性能管理:自动性能监视与调节机制,动态地调整数据库的资源分配。Oracle Application Server 10g用来部署Web型应用。Oracle Developer Suite用来设计、开发和分布Web型应用软
RHEL AS3U4上安装oracle10g时核心参数的设置
最近在vmware的red hat enterprise linux advanced server3.0 update4上安装oracle10g时,对linux核心参数的理解不是很透彻。上otn查了一下。摘抄如下。[@more@]RHEL AS3U4上安装oracle10g时核心参数的设置一、核心参数设置示例For Linux, use the ipcs command to obtain a list of the system's current shared memory segments and semaphore sets, and their identification numbers and owner. Perform the following steps to modify the kernel parameters by using the /proc file system. Log in as the root user. Change to th
9i相对8i特点5-监视索引
文章内容源自chinaitlab,经过自身实验。OS:winxpDB:oracle10.2.0.1[@more@] 索引可以加快查询的速度,但索引会占用许多存储空间,在插入和删除行的时候,索引还会引入额外的开销,因此确保索引得到有效利用是我们很关注的一个问题。在Oracle9i之前,要知道一个索引是否被使用是困难的,而Oracle 9i中提供了一个有效的监控方法:ALTER INDEX MONITORING USAGE。下面我讲详细说明如何使用该方法来鉴别未使用的索引。一、我们先通过一个例子具体说明“ALTER INDEX MONITORING USAGE”的使用方法:1、建测试表create table test(id numbe
9i相对8i的特点4-延续性初始化参数文件(spfile)
文章源自chinaitlab,经过个人的实验。OS:winxpDB:oracle10.2.0.1[@more@] Oracle9i引入了具有延续性的初始化参数文件SPFILE(Server Parameter FILE),所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中,这样所有被修改的参数将永久生效。SPFILE有以下几个显著优点:1、“ALTER SYSTEM”所设定的参数可以直接保存在SPFILE中,不像以前那样需要手工更改参数文件才可以使改动永久生效;2、RMAN支持对SPFILE的备份,在这之前是无法做到使用RMAN来备份初始化参数文件的;3、可以实现在本地没有远程数据库的INIT.ORA拷贝的
9i相对8i的特点2-轻松取得建表和索引的DDL语句
摘自chinaitlab,经过自己的实验。 os:winxp db:oracle10.2.0.1[@more@] 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到。 从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候。在Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字典中查处DDL语句。使用这个功能强大的工具,我们可以获得单
9i相对8i的特点1-数据库默认临时表空间
其实,9i相对于8i到底都有些什么特点,也没认真去看过。从网上找点资料,顺带也自己做一下实验。 OS:winxp DB:oracle 10.2.0.1(32bit win)[@more@] 在9i之前,如果一个数据库用户没有被指定默认临时表空间,那么oracle就会使用system表空间作为该用户的临时表空间,这是很危险的。在9i里面,database可以被指定一个默认临时表空间。这样如果数据库用户没有被明确指定临时表空间,oracle 9i就会自动指定database的默认临时表空间作为该用户的临时表空间。 我们可以通过下面的语句来查询数据库的默认临时表空间:
关于“参照”(Reference)
参照(Reference) 参照在数据库设计中是一个比较复杂的问题,它是实现数据的完整性主要要素之一,详细论述参考后面数据的约束。 在PowerDesigner中,可对参照完整性进行各项设置,参照的基数从0到n,对修改和删除约束可分别设置为None、Restrict、Cascade、Set Null、Set Default。由于INSERT包含在UPDATE操作中,因此没有单独的INSERT约束。 约束的不同设置产生不同的效果,以修改为例(删除相同): None:父表修改,子表不影响。 Restrict:父表修改,如果子表存在,则出错。 Cascade:父表修改,如果子表存在,则相应的修改。 Set Nu
用户级DBA跟踪
1、查询V$SESSION,标识欲跟踪用户的会话SID、SERIAL#SQL> select sid,serial# from v$session where username='XMU'; SID SERIAL#---------- ---------- 9 5 2、使用DBMS_SYSTEM包的SET_SQL_TRACE_IN_SESSION生成跟踪文件SQL> exec sys.dbms_system.set_sql_trace_in_session(9,5,true);PL/SQL 过程已成功完成。3、停止跟踪SQL> exec sys.dbms_system.set_sql_trace_in_session(9,5,false);PL/SQL 过程已成功完成。4、跟踪文件的路径 e:oracleadminxujcudumpxujc_ora_1508.trc5、利用tkprof分
oracle中用户级自跟踪
学习相关知识,自己做的小实验。[@more@]oracle中用户级自跟踪OS:WINXP & SP2DB: ORACLE V9.2.0.1.0用户跟踪文件的路径:%ORACLE_BASE%AdminSIDudump1、用户启动自跟踪SQL> alter session set sql_trace=true;会话已更改。2、检查当前session的SID,SERIAL#SQL> select sid,serial#,username from v$session; SID SERIAL# USERNAME---------- ---------- ------------------------------ 1 1 2 1 3 1 4 1 5 1 6
在Linux下安装和使用MySQL
转载自网络,较实用。[@more@]一、引言 想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是Red Hat 9.0,MySQL是4.0.16。 二、安装Mysql 1、下载MySQL的安装文件 安装MySQL需
mysql备份与恢复的简易方法
一、直接物理文件备份直接物理文件拷贝、压缩二、mysqldump1、源数据库导出mysqldump导出c:>mysqldump -uroot -proot sourcedb>backup.sql2、在目标数据库创建数据库c:>mysqladmin -uroot -proot create targetdb3、从备份文件导入到目标数据库c:>mysql targetdb<backup.sql[@more@]
mysql中,删除重复记录的方法及疑问(2)
对包含150万条记录的表,做最简单的测试。[@more@]mysql下,基表较大,采用临时过渡表的方法,性能如何?1、确认一下基表和过渡表的数据量。mysql> select count(*) from test;+----------+| count(*) |+----------+| 1572864 |+----------+1 row in set (2.48 sec)mysql> select count(*) from tmp;+----------+| count(*) |+----------+| 0 |+----------+1 row in set (0.02 sec)2、过滤重复记录,将基表数据插入过渡表mysql> insert into tmp select distinct * from test;Query OK, 3 rows affected (3.27 sec)Recor
mysql中,删除重复记录的方法及疑问(1)
用临时过渡表,这种很笨拙的方法。请达人指导。[@more@] 如果数据库的设计不规范,某个表没有主健,那么肯定会有重复记录的现象,或者存在这种危险。在oracle中,可以通过rowid来删除重复记录。但在mysql中如何实现呢? google一下,有个方法如下:1、准备基表test,待测试。create table test (c1 smallint,c2 smallint);insert into test values(1,1);insert into test values(1,1);insert into test values(1,2);insert into test values(2,2);insert into test values(2,2);2、创建一个临时表,结构与原表一致,但没有数据。cre