033.笔记:使用EXPLAIN和STORED OUTLINES
1.oracle的sql trace实用程序 1.1对简单查询使用SQL_TRACE的简单步骤 1)初始化参数 SQL_TRACE --在10G中SQL_TRACE是不建议(向下兼容、将来不用)使用参数。 TIMED_STATISTICS=TRUE --收集时间统计 MAX_DUMP_FILE_SIZE=unlimited USER_DUMP_DEST 2)对SQL*Plus会话启用SQL_TRACE alter session set SQL_TRACE true; alter session set SQL_TRACE false; 3)查找跟踪文件 orcl_ora_3372.trc--3372是进程ID号(SPID) select spid,s.sid,s.serial#,p.username,p.program from v$process p,v
034.笔记:基本的提示语法
1.最常用的提示 最常用的10个提示: INDEX ORDERED PARALLEL FIRST_ROWS RULE FULL LEADING USE_NL APPEND USE_HASH 1.1 谨慎使用提示 提示可以分为两个主要类别:应用指令(usage directive)和编译器指令(compliler directive)。 应用指令是指在init.ora级别或系统参数文件(SPFILE)而不是语句级别中设置的提示(比如FIRST_ROWS到ALL_ROWS)。 如果您有一个OLTP(在线事务处理)数据库,那就是可以直接设置CHOOSE到FIRST_ROWS为优化器(在实例 级别中),使得优化器可以更快地返回最初的几行 (对于大多
032.笔记:表的连接和其他高级调整技术(3.其他高级调整技术)(未完成。。。)
1.第三方性能调整工具 有时候,可借助第三方工具。尽管不能修改代码,但您可以修改索引的使用方法。 2.调整分布式查询 如果编写的不好,分布式查询(SQL中使用DBLINK)有候会成为灾难,并导致极其糟糕的性能。特别是一个分布式数据库两个结点上的两张表的嵌套循环连接会非常慢,因为Oracle 将所有的数据移到本地机器来处理(取决于查询语句)。 【技巧】当不能避免使用分布式查询的时候,使用IN子句,设置操作符(例如UNION,或者MINUS),并采用任何可以降低数据库结点间的网络拥塞的技术。所定的查询如果将引起分布 式结点间
031.笔记:表的连接和其他高级调整技术(2.双表连接等)
1.双表连接:等尺寸表(基于成本) 书中这一节主要是介绍,在无索引的情况下。表的执行顺序和表的连接方法。 示例: select small1.col1,small2.col1 from small1,small2 where small1.col1=small2.col1; 如果示例中任何一张表都没有经过分析,Oracle将借助于以前版本的方法,即读取FROM子句中的最后一张表并使用排序合并连接(即使在Oracle 10g中也这样)。此 处强调这一点可以让您在遇到这种现象时,能意识到没有分析表。 【技巧】使用基于成本的优化器,并使用ORDERED提示时,FROM子句中的第一张表将作为驱动表。这取代了
030.笔记:表的连接和其他高级调整技术(1.连接方法)
前言:驱动表或者查询中的第一张访问的表是获得更佳性能的关键。如果优化器指定了错误的表作为查询中的驱动表,那么造成的差异会有天壤之别。通常,基于成本的优化器会选择正确的表,但在表中建立的的索引将影响它的正常工作。如果需要使用提示改变驱动表,这个现象说明需要改进索引计划。在一个有10张表的连接表中,将可能有3628800种组合,尝试所有的组合是非常耗时的举措。虽然可以使用LEADING提示来处理这个烦人的事,但与一开始就建立正确的索引模式相比,其代价仍然非常巨大。1.连接方法【必须了解的知识】1)哪张表将驱动查询(即访
029.笔记:基本的索引原理-索引的类型
1.B树索引 1.1 B树索引是树形结构,包括树根块(root block)、树枝块(branch block)、叶块(leaf block)。 branch block中,树枝行包含链中下一个叶块的ID号。 leaf block包含了索引值、ROWID,以及指向前一个和后一个树叶块的指针。Oracle可以从两个方向遍历这个树。 Oracle不会对索引列上包含null值的行进行索引。如果索引是多个列的组合索引,而其中列上包含NULL值,这一行就会处于包含NULL值的索引列中,且将被处理为空(视为NULL)。 【技巧】索引列的值都存储在索引中。因此,可以建立一个组合索引,这些索引可以直接满足查询
028.笔记:基本的索引原理1
1.基本的索引概念 【索引的五种扫描类型】 INDEX UNIQUE SCAN INDEX RANGE SCAN INDEX FAST FULL SCAN INDEX FULL SCAN index full scan(max/min)--10g后出现的索引扫描方法 INDEX SKIP SCAN BITMAP INDEX SINGLE VALUE BITMAP INDEX FAST FULL SCAN 2.组合索引 组合索引的扫描类型:UNIQUE SCAN、RANGE SCAN。如果组合索引的首列包括在查询中,就可以使用这两种扫描类型。 组全索引的特殊扫描类型:FAST FULL SCAN、INDEX FULL SCAN(FFS完全可以代替IFS)、INDEX SKIP SCAN 。如果组合索引的首列不包含在查询中
027.笔记:10g新功能
0.前言 可寻址内存的理论限制。 内存 直接可寻址 16位 64K(2的16次方字节) 32位 4G (2的32次方字节) 64位 16E(2的64次方字节)(1EB=1024PB,1PB=1024GB) 目前的ORACLE 10G数据库的容量可以达到8E。1.【网格计算】当完全实现网络计算时,这些网络资源可以存在于不同类型的硬件和操作系统上,即可以存在于完全不同的环境中。2.SYSAUX表空间 Oracle提供了新的视图V$SYSAUX_OCCUPANTS,其中显示了每个组件使用的空间数量以及Oracle提供的存储过程的名称,可以使用 这些存储过程将对象移入和移出SYSAUX
026.笔记:10G DG-基础知识2
1.逻辑备用数据库的管理 SQL Apply引擎包括下列几个进程: READER进程在重做日志到达备用数据库之后,负责读出日志并将其放入共享池中名为LCR缓存的内存结构里 PREPARER进程将LCR缓存中的重做日志转换成逻辑变更记录(LCR)并明确逻辑变更记录之间的关系。 BUILDER进程将每一条逻辑变更记录创建成为完整的事务 ANALYZER进程获取BUILDER进程创建的事务并分析事务之间的相关依赖性 COORDINATOR进程监测事务间的依赖性并通过应用子进程正确地排序这些事务的应用 APPLY进程接收来自COORDIANTOR进程的事务,并从物理上对数据库表应用具体
025.笔记:10G DG-基础知识1
1.日志传输服务 Data Guard的核心是日志传输服务。它需要在数据保护和可用性与性能影响方面进行权衡,以达到两者的平衡。 1.1 定义日志传输服务的目标文件 alter system set LOG_ARCHIVE_DEST_2='SERVICE=Nashbille_hasun1' scope=both; 属性LOCATION和SERVICE确定重做日志是磁盘上的本地传输,还是传输到远程的主机上去。 --我们可以推迟远程目标文件的执行,来停止归档日志向远程主机的传输: alter system set LOG_ARCHIVE_DEST_STATE_2=defer scope=both; (1)ARC属性(默认) 在日志切换边界上ARC进程将进行本地的或
024.笔记-10G DG-创建逻辑备用数据库
4 Creating a Logical Standby Database4.1 Prerequisite Conditions for Creating a Logical Standby Database 4.1.1 Determine Support for Data Types and Storage Attributes for Tables 4.1.2 Ensure Table Rows in the Primary Database Can Be Uniquely Identified 4.2 Step-by-Step Instructions for Creating a Logical Standby Database 4.2.1 Create a Physical Standby Database 4.2.2 Stop Redo Apply on the Physical Standby Database SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 4.2.3 P
023.笔记:10G DG-创建物理备用数据库
1.创建物理备用数据库相关命名host databaseType DB_UNIQUE_NAME TNS_Aliasdb1 Primary ora10g1 ora10g1_db1dg1 Physical Standby orastdb standby_dg1--注意:DB_UNIQUE_NAME不能太长。DB_NAME不能超过8位,在DG环境中,主备库的DB_NAME相同,DB_UNIQUE_NAME不同。第一步:启用归档模式alter system set log_archive_dest_1='location=/u01/ora10g/archivelog' scope=spfile;shutdown immediatestartup mountalter database archivelog;--alter database flashback on;alter database open;第二步:创建密码文件由于新日志的传输安全和认
021.笔记:10G RAC-管理RAC环境中的数据库
1.RAC的本质 1.1实例命名 数据库名总是相同的,因为它与物理数据库本身相关。另一方面,实例名与每个节点上的内存相关,因此实例名在各节点上必须是唯一的。 1.2RAC环境中的spfile alter system set db_cache_size=500m scope=spfile sid='ractest1'; --sid='*' 1.3RAC特定参数 instance_number和thread参数是特别用于RAC环境的参数代表,每个实例必须拥用与之相关的唯一值。 CLUSTER_DATABASE:大多数情况下,所有实例都必须将此值设置为TRUE。 当进行升级或打补丁的时候或“修改归档模式或闪回模式”时,除了
020.笔记:10G RAC-添加、移除节点
1.移除节点 第一步:使用DBCA移除实例。在剩余节点上运行 dbca 【Instance Management】【Delete Instance】 如果实例不可用,或者DBCA无法移除所有组件,那么可能需要使用srvctl命令手动从OCR中删除实例。例如: srvctl remove instance -d ractest -i ractest2 在归档日志模式下DBCA删除重做日志可能会失败:ORA-350/ORA-312,单击Ignore让DBCA继续,DBCA结束后运行: alter system archive log all; alter database drop logfile group 3; 手动移除ASM:srvctl remove asm -n node2 --先停asm实例
019.笔记:在虚拟机部署10G RAC
第一步:准备环境 (一)VMware server 环境 1:安装VMWARE server2.0 VMware的remote console需要一个非空的DNS,如果DNS是空的,REMOTE CONSOLE会频繁报错 2:用VMWARE创建共享磁盘 (1)为voting disk和ocr各创建100MB的单独磁盘 (2)再创建三块保存数据的1GB磁盘 (3)创建磁盘的选项 选中Allocate all disk space now 在Virtual device node中选择一个新的scsi总线(比如虚拟机默认磁盘SCSI 0:x,则新添加的硬盘可以使用1:x) 选中Persistent (4)修改虚拟机配置 在配置linux系统之前,首
018.笔记:虚拟机的网络连接模式
bridged桥连模式:虚拟机可以与主机所在的局域网通信nat(网络地址转换模式):虚拟机利用主机可以访问互联网,但是不能访问主机所在的局域网host-only:虚拟机之间可以通信,主机与虚拟机可以通信。但虚拟机不能与外界通信。虚拟机NETWORKS列表中的:VMnet0/VMnet1/VMnet8是三个虑拟交换机vmnet0:bridgedVMnet1:host-onlyVMnet8:nat本机上会创建对应VMnet1/VMnet8的适配器,VMnet0会与物理网卡桥接问题:主机与虚拟机PING不通?虚拟机网卡类型是bridged,主机没有联网。解决:如果本机没有联网,虚拟机适配器选择HOST-ONLY,这样主机与虚拟机是
17.笔记:为可用性调整数据库
3.1智能基础结构 AWR、ADDM、ASH(active session history ,ASH活动会话历史,用以追踪会话在在等待的所有事件),这些技术合起来被称为智能基础结构 MMON后台进程 MMON后台进程是Oracle Database 10g中引入的一个新的后台进程,它负责对数据库内部运行情况进行自动监视。MMON还负责在每次AWR 运行完之后启动自动数据库诊断监控器,用来检查报表中指出的瓶颈或问题。此外,MMON每隔一分钟检测一次ALERT_QUE,它是sys用户拥有 的一个队列,查找所有新添加的信息和警告。MMON既可以自动地执行纠正动作,也可通过ALERT_QUE发送一个警
16.笔记:RDBMS关于可用性的特性
1.企业管理器 Oracle数据库控制台(Oracle Database Control) Oracle网格控制台 EM网格控制台的安装与数据库安装是分离的,要求有一个仓库数据库,一个庞大的内存区,并且需要单独定价和颁发许可。 如果您想使用实时应用集群(RAC)和Data Guard管理的GUI,则需要使用EM网格控制台。 2.数据库的动态配置 ORALCE DATABASE 10G发布了218个参数,还有若干未发布的参数(以下划线开头)。 仅针对会话的参数: HASH_AREA_SIZE OLAP_PAGE_POOL_SIZE SORT_AREA_RETAINED_SIZE SORT_AREA_SIZE tracefile_identifier
15.笔记:管理Oracle数据库资源
--实用功能:数据库停顿--------------------- 详见7.1 alter system quiesce restricted; alter system unquiesce;--取消数据库停顿-------------------------------------------Oracle的Resource Manager将大型机样式的资源管理性能引入支持Oracle的所有平台,也就是说:无论数据库具有怎样的整体工作负荷,DBA都能够保证特定的数据库用户组始终可以接收特定的服务级别。1.资源管理需求 设置不同用户组的使用资源的不同级别 也可以避免一个糟糕的查询可能导致数据库崩溃 2.Resource Manager的体系结构 用户被置入Resource Ma
14.笔记:监视与管理内存
概述:ORACLE实例的存储结构:(1)SYSTEM GLOBAL AREA,简写为SGA:是供后台进程与服务器进程共享使用的;(2)PROGRAM GLOBAL AREA,简写为PGA:各个会话私有的内存区域如果启用了SGA和PGA的自动管理,那么应当能够确保所有可用的内存被最佳地使用,同时保证服务器根本不需要交换。1.系统全局区SGA从操作系统的观点出发,SGA是共享内存。共享内存的实现根据操作系统的不同而变化。例如:SOLARIS通过/etc/system文件设置共享内存,并且任何变化都需要在重启后才起作用;但是在LINUX系统中,我们可以使用sysctl实用程序动态地配置共享内存(