性能调优学习笔记(二)
一、进程与文件的读写1、进程读写文件的权限2、调优准则3、指导方针4、表空间的使用方法5、Locally Managed system Tablespace6、Monitoring Use of Files7、File Striping8、Tuning Full Table Scan Operations9、Table Scan Statistics10、监控全表扫描操作11、Checkpoints12、Performance Manager: Response Time14、Defining and Monitoring Fast Start Checkpointing15、Online Redo Log File Configuration16、Increasing the Performance of Archiving[@more@]一、进程与文件的读写1、进程读写文件的权限进程 Data files Log
ORACLE管理学习第六天
一、管理数据文件1、绝对文件号和相对文件号2、确定数据文件的编号3、确定数据文件的大小4、将数据文件与重做日志文件分开存储5、创建数据文件和向表空间添加数据文件6、改变数据文件的大小7、修改数据文件的可用性8、重命名和重定位数据文件9、验证数据文件中的数据块10、相关视图 二、管理撤消空间(回滚段)1、相关初始化参数2、创建撤消表空间3、修改撤消表空间4、取消撤消表空间5、切换撤消表空间6、撤消保留的空间要求7、撤消空间相关视图8、激活多回滚段的两种方式9、回滚段的增删改10、将事务明确地指定到回滚段11、回滚段相关视图
ORACLE管理学习第五天
一、管理作业队列1、指定在一个实例上能够并发运行作业队列(Jnnn)进程的最大数目2、DBMS_JOB包所包含的过程功能详解3、将作业提交到作业队列4、关于作业号码5、关于执行间隔6、作业队列锁7、删除作业8、将作业标识为损坏9、相关视图 二、管理表空间1、字典管理表空间和本地管理表空间2、创建表空间3、修改临时文件4、永久表空间与临时表空间的转化5、手动合并空闲空间6、修改表空间的可用性7、只读表空间8、取消表空间9、DBMS_SPACE_ADMIN10、在数据库间传输表空间11、相关视图[@more@]一、管理作业队列1、指定在一个实例上能够并发运行作
ORACLE管理学习第四天
一、管理已存档的重做日志1、存档2、改变数据库的存档模式3、允许自动存档4、禁止自动存档5、执行手动存档6、指定存档目标位置7、存档目标位置状态8、指定日志传送模式9、管理存档目标失败10、设定ARCn进程数11、控制存档日志进程生成的跟踪输出12、相关视图二、使用LogMiner来分析重做日志文件1、LogMiner的局限2、相关视图3、使用LogMiner[@more@]一、管理已存档的重做日志1、存档将联机重做日志文件变成已存档的重做日志文件的进程,分自动存档和手动存档。2、改变数据库的存档模式将NOARCHIVELOG切换为ARCHIVELOGa、关闭数据库实例b、
ORACLE管理学习第三天
一、管理控制文件二、管理联机重做日志[@more@]一、管理控制文件1、定义小型的二进制文件,它可以记录数据库的物理结构,其中包括:数据库名称相关的数据文件和联机重做日志文件的名称和位置数据库创建的时标当前日志的序号检验点信息注意:每个数据库至少有两个控制文件,建议存储在不同的磁盘上2、如何获取控制文件的物理路径ORACLE的control_files参数,第一个文件是ORACLE数据库服务器在数据库运行期间唯一可以读取的文件3、控制文件的大小取决于其它参数的设置,如maxlogfiles、maxlogmembers、maxdatafiles、maxinstances等4、CREATE
ORACLE管理学习第二天
一、ORACLE的服务器进程介绍 二、如何将ORACLE配置为共享服务器 三、监视ORACLE实例进程 四、ORACLE并行执行 五、终止会话[@more@]一、ORACLE的服务器进程介绍1、服务器进程类别专用服务器进程:只服务于一个用户进程; 使用情形:a、提交批处理作业 b、使用RMAN时共享服务器进程:可以服务于多个用户进程二、如何将ORACLE配置为共享服务器通过设置数据库初始化参数可以启动共享服务器。1、配置共享服务器的初始化参数必须设置的参数DISPATCHERS:在共享服务器体系结构中配置调度程序进程。动态初始化参数。可选的参数,如果指
ORACLE管理学习第一天
一、数据库管理员的任务二、ORACLE的版本号三、sys和system用户的区别四、SYSDBA和SYSOPER系统权限五、Oracle密码文件的作用和说明 六、启动和关闭数据库[@more@]一、数据库管理员的任务1、评估数据库服务器的硬件设备2、安装ORACLE软件3、规划数据库4、创建和打开数据库5、备份数据库6、注册系统用户(ORACLE用户)7、具体实施数据库的设计8、备份具有完整功能的数据库9、协调数据库的性能二、ORACLE的版本号1、版本号说明如9.0.1.2.39代表版本号;0代表新特征号;1代表维护版本号;2代表普通的补丁设置号码;3代表特殊的平台补丁设置号码
[转]ORACLE 分析函数(再论)
1.报表合计专用的Rollup函数2.对多级层次查询的start with.....connect by 3.更多报表/分析决策功能 3.1 分析功能的基本结构3.2 Row_Number 和 Rank, DENSE_Rank3.3 NTILE 把纪录平分成甲乙丙丁四等 3.4 辅助分析列和Windows Function4.SubQuery总结[@more@]1.报表合计专用的Rollup函数 销售报表广州 1月 2000元广州 2月 2500元广州 4500元深圳 1月 1000元深圳 2月 2000元深圳 3000元所有地区 7500元以往的查询SQL:Select area,month,sum(money) from SaleOrder group by area,month然后广州,深圳的合计和所有地区合计都需要在程序里自行
[转]ORACLE 分析函数详解
1. 自动汇总函数rollup,cube,2. rank 函数, rank,dense_rank,row_number3. lag,lead函数4. sum,avg,的移动增加,移动平均数5. ratio_to_report报表处理函数6. first,last取基数的分析函数[@more@]Oracle 分析函数使用介绍 分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明.今天我
oracle 的 CONNECT BY 和START WITH
[@more@]在SELECT命令中使用CONNECT BY 和START WITH 子句可以查询表中的树形结构关系。其命令格式如下:SELECT …..CONNECT BY {PRIOR 列名1=列名2|列名1=PRIOR 列名2}[START WITH];其中:CONNECT BY子句说明每行资料将是按层次顺序检索,并规定将表中的资料连入树形结构的关系中。0PRIORY运算符必须放置在连接关系的两列中的某一个的前面。对于节点间的父子关系,PRIOR去处符在一侧表示父节点,在别一侧表示子节点,从而确定查找权结构的顺序是自顶向下还是自底向上。在连接关系中,除了可以使用列名外,还允许使用列运算式。START WIT
查询表与索引的物理大小
select segment_name, segment_type, bytesfrom dba_segmentswhere owner = 'SYS'4 and segment_name in (select index_namefrom dba_indexeswhere table_owner = 'SYS'7 and table_name = 'T'8 unionselect 'T' from dual);[@more@]代码: SYS@HUIYI>create table t2 (3 col01 date4 )5 /表已创建。SYS@HUIYI>insert into t values(sysdate);已创建 1 行。SYS@HUIYI>commit;提交完成。SYS@HUIYI>create index t_idx on t(col01);索引已创建。SYS@HUIYI>select segment_name, segment_type, bytes2 from dba_segments3 wher
[转]ORACLE数据库管理员应做的事
[@more@]ORACLE数据库管理员应按如下方式对ORACLE数据库系统做定期监控:(1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。 (2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。 (3). 每月对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行一次全面检查。 ====================★每天的工作★ ====================(1
ORACLE特殊包点滴
DBMS_Alert DBMS_DDL DBMS_Describe DBMS_BLob DBMS_OutputDBMS_Pipe DBMS_SQL DBMS_Utility DBMS_LOCK DBMS_Job[@more@]Oracle提供了几个包,它们可以用来完成很多任务,从内部进程通信到文件I/O,到在PL/SQL块中动态创建和执行SQL语句。所有这些包由SYS用户所拥有—当Oracle最初安装时两个用户中的一个,这些包中最重要的包括: DBMS_Alert 不用轮询就允许应用命名并发出警告条件信号的过程与函数 DBMS_DDL 允许获取PL/SQL程序内部一定数量的DDL语句的过程 dbms_metadata.get_ddl()获取创建对象的DDL语句
在ORACLE中发邮件
[@more@]可以利用utl_smtp包发邮件,以下是一个发送简单邮件的例子程序/****************************************************************************parameter: Rcpter in varchar2 接收者邮箱Mail_Content in Varchar2 邮件内容desc: ·发送邮件到指定邮箱·只能指定一个邮箱,如果需要发送到多个邮箱,需要另外的辅助程序****************************************************************************/CREATE OR REPLACE PROCEDURE sp_send_mail( rcpter IN VARCHAR2,mail_content IN VARCHAR2)ISconn utl_smtp.connection;--writ
快速复制表或者插入数据
[@more@]快速复制表可以指定Nologging选项如:Create table t1 nologgingas select * from t2;快速插入数据可以指定append提示,但是需要注意noarchivelog模式下,默认用了append就是nologging模式的。在archivelog下,需要把表设置程Nologging模式。如insert /*+ append */ into t1select * from t2注意:如果在9i环境中并设置了FORCE LOGGING,则以上操作是无效的,并不会加快,当然,可以通过如下语句设置为NO FORCE LOGGING。Alter database no force logging;是否开启了FORCE LOGGING,可以用如下语句查看SQL> select force_loggi
怎么样监控无用的索引
v$object_usage[@more@]Oracle 9i以上,可以监控索引的使用情况,如果一段时间内没有使用的索引,一般就是无用的索引语法为:开始监控:alter index index_name monitoring usage;检查使用状态:select * from v$object_usage;停止监控:alter index index_name nomonitoring usage;当然,如果想监控整个用户下的索引,可以采用如下的脚本:set heading offset echo offset feedback offset pages 10000spool start_index_monitor.sqlSELECT 'alter index '||owner||'.'||index_name||' monitoring usage;'FROM dba_indexesWHERE owner =
怎么清理临时段
[@more@]可以使用如下办法1、 使用如下语句查看一下认谁在用临时段SELECT username,sid,serial#,sql_address,machine,program,tablespace,segtype, contentsFROM v$session se,v$sort_usage suWHERE se.saddr=su.session_addr2、 那些正在使用临时段的进程SQL>Alter system kill session 'sid,serial#';3、把TEMP表空间回缩一下SQL>Alter tablespace TEMP coalesce;还可以使用诊断事件1、 确定TEMP表空间的ts#SQL> select ts#, name FROM v $tablespace;TS# NAME-----------------------0 SYSYEM1 RBS2 USERS3* TEMP……2、
Statspack的使用
Statspack是Oracle 8i以上提供的一个非常好的性能监控与诊断工具,基本上全部包含了BSTAT/ESTAT的功能,更多的信息可以参考附带文档 $ORACLE_HOME/rdbms/admin/spdoc.txt。安装Statspack:cd $ORACLE_HOME/rdbms/adminsqlplus "/ as sysdba" @spdrop.sql -- 卸载,第一次可以不需要sqlplus "/ as sysdba" @spcreate.sql -- 需要根据提示输入表空间名使用Statspack:sqlplus perfstat/perfstatexec statspack.snap; -- 进行信息收集统计,每次运行都将产生一个快照号-- 获得快照号,必须要有两个以上的快照
sys_connect_by_path使用举例
create table A(ID CHAR(1) not null,NAME VARCHAR2(150));insert into A (ID, NAME)values ('1', 'seaman');insert into A (ID, NAME)values ('2', 'sea');insert into A (ID, NAME)values ('3', 'man');create table B(ID CHAR(1) not null,DESCI VARCHAR2(150));insert into B (ID, DESCI)values ('1', 'desc11');insert into B (ID, DESCI)values ('2', 'desc21');insert into B (ID, DESCI)values ('2', 'desc22');insert into B (ID, DESCI)values ('2', 'desc23');insert into B (ID, DESCI)values ('3', 'desc31');insert into B
关于动态SQL的写法
用动态sql的时候最烦的就是单引号问题,最近有网上看到如下一种写法:execute immediate 'insert into Table(COL1,COL2) values(:col1,:col2)' using '1','2';heihei[@more@]