一台windows的服务器,安装oracle9,共享池,缓冲区,java池,大型池和pga 分别设置多少大小?

K_A_N 2008-11-04 03:56:35
共享池,缓冲区,java池,大型池和pga 分别设置多少大小才能够充分应用这个服务器的配置。
...全文
278 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzgtx0007 2010-09-18
  • 打赏
  • 举报
回复
我来学习的
shamoyizhihu 2009-09-16
  • 打赏
  • 举报
回复
等待结果
K_A_N 2008-11-05
  • 打赏
  • 举报
回复
我是32bit的操作系统。学习了
范佩西_11 2008-11-04
  • 打赏
  • 举报
回复
刚好今天也在研究这个问题。书本上说的
数据库缓冲区oracle内存的80%
共享池 19%
redo日志缓冲区及其他1%;
具体可参照楼上的。我测试数据基本可以的。
oracledbalgtu 2008-11-04
  • 打赏
  • 举报
回复
系统和数据库是32bit和64bit是不一样的!!
32bit,且内存>2.5G,试试下面的:
sga_max_size=1600m
db_cache_size=1200m
shared_pool_size=200m
java_pool_size=80m
large_pool_size=80m
pga_aggregate_target=250m

64bit:
sga_max_size=系统内存*0.8*0.8
db_cache_size=sga_max_size*0.7
shared_pool_size=sga_max_size*0.18
java_pool_size=sga_max_size*0.1
large_pool_size=sga_max_size*0.1
pga_aggregate_target=系统内存*0.8*0.2


--安装oracle9,共享池,缓冲区,java池,大型池和pga 分别设置多少大小?
[Quote=引用楼主 K_A_N 的帖子:]
共享池,缓冲区,java池,大型池和pga 分别设置多少大小才能够充分应用这个服务器的配置。
[/Quote]
YY_MM_DD 2008-11-04
  • 打赏
  • 举报
回复
参考下
http://topic.csdn.net/t/20040915/18/3376085.html
又是违规昵称 2008-11-04
  • 打赏
  • 举报
回复
不太清楚windows服务器下怎么分,
solaris下可以这样:


Oracle用机器总内存的3/4

OLTP系统下, 一般情况:
SGA用oracle的80%
PGA用20%

OLAP系统下,PGA与SGA可以对半

你说的其它一些参数不宜定死, 根据实际情况再作调整
第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §1.3 数据块、区间和段 28 §1.3.1 数据块(data block) 28 §1.3.2 区间(extent) 28 §1.3.3 段(segment) 28 §1.4 SQL语句处理 29 §1.4.1 SQL语句处理顺序 29 §1.4.2 COMMIT语句处理顺序 32 §1.5 共享 33 §1.6 块缓存(数据高速缓冲区) 33 §1.7 数据库写入进程 34 §1.8 日志写进程 34 §1.9 数据库检查点 34 §1.10 归档处理 35 §1.11 程序全局区(PGA) 35 第2章 警告日志与跟踪日志 35 §2.1 警告与日志文件 36 §2.1.1 经常查看警告日志文件内容 36 §2.1.2 熟悉警告日志的事件或消息 36 §2.1.3 分析警告日志错误 40 §2.2 对警告日志进行归档 43 §2.3 跟踪文件 44 §2.3.1 跟踪文件的产生 44 §2.3.2 分析跟踪文件的信息 45 §2.3.3 跟踪文件的内容 45 §2.4 关于NET的日志与跟踪 47 §2.4.1 日志文件(LOG File) 47 §2.4.1.1 日志中的错误信息 47 §2.4.1.2 日志文件的命名 47 §2.4.1.3 设置日志参数 48 §2.4.1.4 在配置文件中设置日志参数 49 §2.4.1.5 在运行控制实用程序中设置日志参数 50 §2.4.1.6 理解监听日志中信息 50 §2.4.1.7 理解连接管理器信息 53 §2.4.2 跟踪文件( Trace File ) 53 §2.4.2.1 跟踪文件的命名: 54 §2.4.2.2 参数设置与初始化文件: 54 §2.4.2.3 在控制实用程序运行中设置跟踪参数 56 §2.4.2.4 服务器/客户包跟踪 57 §2.4.2.5 评估NET跟踪信息 58 §2.4.2.6 使用跟踪助理(Trace Assistant)检查跟踪文件 60 第3章 初始化参数、SQL脚本文件 63 §3.1 初始化参数文件 63 §3.2 在参数文件中指定参数值 64 §3.2.1 参数文件中的规则控制 64 §3.2.2 在参数值中使用特殊字符 65 §3.2.3 修改参数值 66 §3.2.4 显示当前参数值 69 §3.2.5 参数的使用 69 §3.2.6 参数的类型 69 §3.2.7 不能在参数文件中指定的参数 70 §3.2.8 当参数指定错误时怎么办? 70 §3.3 参数内容说明 70 §3.4 DBA常用参数说明 71 §3.4.1 跟踪文件路径(BACKGROUND_DUMP_DEST) 71 §3.4.2 在缓冲区驻留对象(BUFFER_POOL_KEEP) 71 §3.4.3 版本兼容(COMPATIBLE) 72 §3.4.4 控制文件路径(CONTROL_FILES) 72 §3.4.5 CPU个数(CPU_COUNT) 72 §3.4.6 数据缓冲区块数(DB_BLOCK_BUFFERS) 72 §3.4.7 数据块大小(DB_BLOCK_SIZE) 73 §3.4.8 读数据块数(DB_FILE_MULTIBLOCK_READ_COUNT) 73 §3.4.9 数据文件的数目(DB_FILES) 73 §3.4.10 全局数据库名(GLOBAL_NAMES) 74 §3.4.11 数据库实例名(INSTANCE_NAME) 74 §3.4.12 许可的最大会话数(LICENSE_MAX_SESSIONS) 74 §3.4.13 许可的最大用户数(LICENSE_MAX_USERS) 74 §3.4.14 许可的会话警告(LICENSE_SESSIONS_WARNING) 75 §3.4.15 归档文件目标路径(LOG_ARCHIVE_DEST) 75 §3.4.16 归档文件目标路径(LOG_ARCHIVE_DEST_ n) 75 §3.4.17 日志缓冲区大小(LOG_BUFFER) 76 §3.4.18 检查点块数(LOG_CHECKPOINT_INTERVAL) 76 §3.4.19 检查点间隔(LOG_CHECKPOINT_TIMEOUT) 76 §3.4.20 对大卸出文件大小(MAX_DUMP_FILE_SIZE) 76 §3.4.21 对大回滚段数(MAX_ROLLBACK_SEGMENTS) 77 §3.4.22 打开的光标数(OPEN_CURSORS) 77 §3.4.23 优化方式(OPTIMIZER_MODE) 77 §3.4.24 进程数(PROCESSES) 77 §3.4.25 回滚段名称(ROLLBACK_SEGMENTS) 78 §3.4.26 服务名(SERVICE_NAMES) 78 §3.4.27 会话的数(SESSIONS) 78 §3.4.28 共享大小(SHARED_POOL_SIZE) 78 §3.4.29 分类区的大小(SORT_AREA_SIZE) 79 §3.4.30 用户卸出文件的路径(USER_DUMP_DEST) 79 §3.5 SQL脚本文件 79 §3.5.1 建立数据字典的脚本 79 §3.5.2 建立附加的数据字典 80 §3.5.3 带“NO”的脚本 81 §3.5.4 移植的脚本 81 §3.5.5 JAVA脚本 81 第6章 性能优化基础知识 82 §5.1 理解ORACLE性能优化 82 §5.1.1 响应时间与吞吐量的折衷 82 §5.1.2 临界资源 83 §5.1.3 过度请求的影响 83 §5.1.4 调整以解决问题 83 §5.2 优化的执行者 84 §5.3 设置性能目标 84 第7章 系统优化方法 85 §6.1 何时优化效率最高 85 §6.1.1 系统设计阶段和开发阶段的优化 85 §6.1.2 改善产品系统的优化 85 §6.2 优化的优先步骤 86 §6.2.1 步骤1:优化商业规则 86 §6.2.2 步骤2:优化数据设计 87 §6.2.3 步骤3:优化应用程序设计 87 §6.2.4 步骤4:优化数据库的逻辑结构 87 §6.2.5 步骤5:优化数据库操作 87 §6.2.6 步骤6:优化访问路径 88 §6.2.7 步骤7:优化内存分配 88 §6.2.8 步骤8:优化I/O和物理结构 89 §6.2.9 步骤9:优化资源争用 89 §6.2.10 步骤10:优化所采用的平台 89 §6.3 应用优化方法 90 §6.3.1 设定明确的优化目标 90 §6.3.2 创建最少可重复测试 90 §6.3.3 测试假想 90 §6.3.4 记录和自动测试 90 §6.3.5 避免常见错误 90 第二部分 ORACLE应用系统设计优化 91 第8章ORACLE数据库系统优化安装 91 §7.1 应用系统环境规划和Oracle系统安装考虑 91 §7.1.1 操作系统安装考虑 91 §7.1.2 Oracle系统安装考虑 92 §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统有关目录所有文件的保护 94 §7.3.2 避免新用户使用默认system系统表空间 94 §7.4 Oracle系统所在服务器的独立性 94 第9章 项目分析、设计与管理 94 §9.1 项目分析要点考虑 95 §9.1.1 对应用系统类型的认识 95 §9.1.2 软件项目计划 95 §9.1.3 开发环境资源的配置 96 §9.1.4 各种人员的招募要求 96 §9.1.5 开发组工作的开始 96 §9.2 应用系统运行环境分析 96 §9.2.1 数据库服务器性能的考虑 97 §9.2.2 数据库服务器硬盘空间的估计 97 §9.2.3 应用服务器的考虑 98 §9.2.4 网络带宽的考虑 98 §9.4 数据库逻辑设计 98 §9.4.1 系统表空间 98 §9.4.2 数据表空间和索引空间分开 99 §9.4.3 回滚段设置 99 §9.4.4 临时表空间设计规划 100 §9.4.5 数据文件和日志文件在不同磁盘上 101 §9.5 数据库物理设计 101 §9.5.1 定量估计 101 §9.5.2 表空间与数据文件 102 §9.5.3 物理设计原则 103 §9.5.4 数据库物理设计内容和步骤 103 §9.6 开发过程管理 104 §9.6.1 应用软件生命周期阶段的管理 105 §9.6.2 成功的三要素 106 §9.6.3 培植过程 106 §9.6.3.1 定义环境 107 §9.6.3.2 角色定义 107 §9.6.3.3 方案报告 107 §9.7 确定应用程序类型 108 §9.7.1 在线事务处理(OLTP) 108 §9.7.2 决策支持系统(DSS) 109 §9.7.3 多用途应用程序 109 §9.8 注册应用程序 109 §9.9 Oracle配置 110 §9.9.1 分布式系统 110 §9.9.2 多层系统 110 §9.9.3 Oracle并行服务器 110 §9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 113 §10.1 分析阶段的对表的理解 113 §10.2 正确的主键字段的选择 113 §10.3 字段类型及长度的选择 113 §10.3.1 如果能用字符型就不要用数字型 114 §10.3.2 相互产生运算的数字型字段长度和精度要一致 114 §10.3.2 不要为了节省空间而将字段的长度缩小或拆开 115 §10.4 将LOB类型的字段与其它的类型分开 115 §10.5 采用具有编码的设计方法 115 §10.6 建立公共字典表 115 §10.7 哪种类型的表设为cache 方式 116 §10.8 数据表和索引分开原则 116 §10.9 是否采用簇和分区 116 §10.10 表和索引的空间预分配 116 §10.11 确定数据库对象存储大小 117 §10.11.1 非簇表的大小计算 117 §10.11.2 索引大小计算 119 §10.11.3 簇表的大小计算 120 §10.11.4 位图索引的大小计算 122 §10.12 应用类型设计考虑要点 122 §10.13 应用系统性能优化原则 123 §10.13.1 分而治之 123 §10.13.2 预分配,预支取,预编译 123 §10.13.3 筛选 124 §10.13.4 大量(bluk),块和批处理 124 §10.13.5 对应用适当的分段 124 §10.13.6 优化目标 124 §10.13.7 优化步骤和方法 125 §10.13.8 使用ORACLE 诊断工具 126 第三部分 ORACLE应用系统开发优化 128 第11章 诊断与调整工具- 128 §11.1 警告日志文件 128 §11.1.1 警告日志文件管理 128 §11.1.2 参考警告日志文件调整 128 §11.2 后台进程与跟踪文件 128 §11.3 用户跟踪文件 128 §11.4 动态性能视图 129 §11.5 UTLBSTAT和UTLESTAT 129 §11.6 STATSPACK 129 §11.7 Oracle等待事件 129 §11.8 Oracle诊断和调整包 129 第12章 优化SQL语句 130 §12.1 SQL语句的优化方法 130 §12.1.1 重新构造语句 130 §12.1.2 调整或使触发器无效 137 §12.1.3 重组数据 137 §12.2 优化目标 137 §12.2.1 优化序列SQL语句 137 §12.2.2 优化并行执行 138 §12.2.3 调整OLTP应用 138 §12.3 实际优化例子 139 §12.3.1 避免基于规则优化器技术 139 §12.3.2 索引代价 139 §12.3.3 分析统计数据 139 §12.3.4 避免复杂的表达式 142 §12.3.5 处理复杂的逻辑 143 §12.3.6 一般的SQL语句优化 143 §12.4 SQL语句优化技巧 144 §12.4.1 对所有SQL语句执行EXPLAIN_PLAN 145 §12.4.2 磁盘读和缓冲区获取 146 §12.4.3 判定式崩溃 146 §12.5 使用EXISTS和IN 148 §12.6 分离事务(Discrete Transactions ) 149 §12.7 测试SQL语句性能 151 §12.7.1 SQL_Trace实用工具 151 §12.7.2 TKPROF实用程序 151 §12.8 使用SQL_Trace和TKPROF 151 §12.8.1 设置跟踪初始化参数 152 §12.8.2 启用SQL_Trace实用工具 152 §12.8.3 用TKPROF格式化跟踪文件 153 §12.8.4 解释TKPROF输出文件 155 §12.8.5 解释计划(Explain Plan)策略 156 §12.8.6 AUTOTRACE 实用程序 157 第13章 数据访问方法 160 §13.1 使用索引的访问方法 161 §13.1.1 何时创建索引 161 §13.1.2 索引列和表达式的选择 161 §13.1.3 选择复合索引的主列 161 §13.1.4 要用可选择性索引 162 §13.1.5 测量索引的可选择性 162 §13.1.6 避免全表扫描 163 §13.1.7 编写避免使用索引的语句 163 §13.1.8 编写使用索引的语句 164 §13.1.9 重新构造索引 164 §13.1.10 压缩索引 165 §13.2 创建索引和使用索引 165 §13.2.1 使用函数索引 165 §13.2.2 使用位图索引- 166 §13.2.3 使用B树索引- 166 §13.2.4 使用反向键索引- 166 §13.2.5 使用索引组织表 166 §13.3 使用范围索引 166 §13.4 使用簇 - 167 §13.5 使用Hash 簇 - 168 §13.5.1 何时创建Hash 簇 168 §13.5.2 创建Hash 簇 168 §13.6 使用实体视图 - 169 §13.6.1 实体视图概念 169 §13.6.2 创建实体视图 169 §13.6.3 使用实体视图 169 §13.6.4 管理实体视图 169 第14章 优化器(Optimizer)简介 170 §14.1 Oracle优化器 170 §14.2 SQL处理体系结构 171 §14.2.1 解析程序 171 §14.2.2 优化程序 172 §14.2.3 行源程序产生器 172 §14.2.4 SQL执行 172 §14.3 EXPLAIN PLAN 172 §14.4 选择优化器路径及目标 172 §14.4.1 OPTIMIZER_MODE初始参数 173 §14.4.2 数据字典中的统计数据 173 §14.4.3 ALTER SESSION语句的OPTIMIZER_GOAL参数 174 §14.4.4 关于提示的改变目标 174 §14.5 基于代价优化器(CBO) 174 §14.5.1 CBO结构调整 175 §14.5.2 CBO需求 175 §14.5.3 使用CBO 176 §14.5.4 CBO访问路径 176 §14.6 基于规则(RBO)的优化程序 177 §14.6.1 RBO访问路径 178 §14.7 优化器操作 179 §14.7.1 可优化的SQL语句 180 §14.7.2 优化程序操作 180 §14.7.3 基于规则或基于代价优化方法 180 §14.8 优化连接* 181 §14.8.1 嵌套连接- 181 §14.8.2 合并连接- 183 第15章 使用优化器提示 183 §15.1 提示(Hint)概念 184 §15.1.1 提示的指定 184 §15.2 使用提示 185 §15.2.1 提示的指定 185 §15.2.1.1 ALL_ROWS 186 §15.2.1.2 FIRST_ROWS 186 §15.2.1.3 CHOOSE 186 §15.2.1.4 RULE 187 §15.2.2 关于访问方法的提示 187 §15.2.2.1 FULL 187 §15.2.2.2 ROWID 188 §15.2.2.3 CLUSTER 188 §15.2.2.3 HASH 188 §15.2.2.4 INDEX 188 §15.2.2.5 INDEX_ASC 189 §15.2.2.6 INDEX_COMBINE 189 §15.2.2.7 INDEX_JOIN 189 §15.2.2.8 INDEX_DESC 189 §15.2.2.9 INDEX_FFS 190 §15.2.2.10 NO_INDEX 190 §15.2.2.11 AND_EQUAL 190 §15.2.2.12 USE_CONCAT 190 §15.2.2.13 NO_EXPAND 190 §15.2.2.14 REWRITE 191 §15.2.2.15 NOWRITE 191 §15.2.3 关于连接次序的提示 191 §15.2.3.1 ORDERED 191 §15.2.3.2 STAR 191 第四部分 ORACLE系统调整 194 第16章 调整信息的来源 194 §16.1 警告日志文件 194 §16.1.1 警告日志文件信息 194 §16.1.2 管理警告日志文件 196 §16.2 后台、事件及用户跟踪文件 196 §16.2.1 后台跟踪文件 196 §16.2.2 事件跟踪 197 §16.2.3 用户跟踪文件 197 §16.2.4 管理跟踪文件 200 §16.3 性能调整视图 200 §16.3.1 常用性能优化视图V$_ 200 §16.3.2 常用性能优化视图DBA_ 201 §16.3.3 视图查询例子 201 §16.4 Oracle支持的调整脚本 202 §16.4.1 UTLBSTAT.SQL与UTLESTAT.SQL 202 §16.4.2 解释REPORT.TXT内容 203 §16.5 Oracle的STATSPACK 203 §16.6 图形性能调整工具 203 §16.6.1 Oracle 企业管理器/Oracle DBA 管理包 203 §16.6.2 OEM使用* 203 第17章 STATSPACK工具 204 §17.1 STATSPACK介绍 204 §17.1.1 STATSPACK与UTLBSTAT/UTLESTAT比较 204 §17.1.2 STATSPACK工作流程 204 §17.2 配置STATSPACK 205 §17.3 statspack安装 205 §17.3.1 交互安装STATSPACK 205 §17.3.2 批模式安装STATSPACK 206 §17.4 使用statspack 206 §17.4.1 取得STATSPACK快照 206 §17.4.2 自动进行统计搜集 207 §17.4.3 运行statspack性能报告 208 §17.4 删除statspack 209 §17.5 statspack支持的脚本和文档 209 第18章 动态性能视图与性能诊断 211 §18.1 当前会话状态视图 211 §18.2 计数和积累视图 211 §18.3 信息视图 212 §18.4 当前统计值与变化比率 213 §18.4.1 当前统计值与变化比率 213 §18.4.2 找出统计值的变化率 213 §18.5 有计划地调整系统的因子 214 §18.6 不足的CPU 214 §18.7 不足的内存 215 §18.8 I/O限制 215 §18.9 网络限制 215 §18.9 软件限制 216 第19章 调整内存分配 217 §19.1 理解内存分配要求 217 §19.2 监测内存分配问题 217 §19.3 调整操作系统内存需求 218 §19.4 调整Redo Log Buffer 219 §19.4.1观察Redo Log Buffer是否有竞争 219 §19.4.1.1 使用V$SYSSTAT 219 §19.4.1.2 使用V$SESSION_WAIT 221 §19.4.1.3 使用REPORT.TXT输出 222 §19.4.1.4 使用OEM监示Redo Log Buffer* 222 §19.4.1.5 使用V$SYSTEM_EVENT 223 §19.4.1.6 使用警告日志(Alert Log) 223 §19.4.2 调整Redo Log Buffer性能 223 §19.4.2.1 将Redo Log Buffer参数改大 223 §19.4.2.2 改善检查点效率 224 §19.4.2.3 加速归档处理 224 §19.4.2.4 减少重做日志产生 224 §19.5 调整共享 225 §19.5.1 理解共享的用途 225 §19.5.2 缓存语句的好处 225 §19.5.3 Shared Pool 部件 226 §19.5.4 测试Shared Pool 的性能 227 §19.5.5 用OEM测试Shared Pool 的性能- 231 §19.5.6 改善Shared Pool 的性能 231 §19.5.6.1 较大的Shared Pool 231 §19.5.6.2 给大的PL/SQL 语句一个空间 231 §19.5.6.3 在内存中保持PL/SQL 代码 232 §19.5.6.4 鼓励代码重用 233 §19.5.6.5 建立大的POOL 233 §19.6 调整数据缓冲区 234 §19.6.1 理解数据库缓冲区 234 §19.6.1.1 LRU列表 234 §19.6.1.2 脏(Dirty)列表 234 §19.6.1.3 用户服务器进程 235 §19.6.1.4 数据库写进程 235 §19.6.2 测试数据库缓冲区 235 §19.6.2.1 查询V$SYSSTAT 235 §19.6.2.2 使用V$SESS_IO和V$SESSION 236 §19.6.2.3 使用REPORT.TXT* 236 §19.6.2.4 使用OEM工具* 236 §19.6.3 改善数据库缓冲区性能* 236 §19.6.3.1 将参数改大些 236 §19.6.3.2 使用多个Buffer Pool 237 §19.6.3.3 将表缓存在内存中 242 第20章 调整物理I/O 243 §20.1 理解I/O问题 243 §20.1.1 调整 I/O: 自顶向下和自底向上 243 §20.1.2 分析 I/O需求 244 §20.2 调整数据文件I/O性能 245 §20.2.1 测试数据文件 I/O 245 §20.2.2 改善数据文件 I/O 246 §20.3 调整数据库写入器性能 248 §20.3.1 测试DBWR0 I/O 248 §20.3.2 改善DBWR0 I/O 250 §20.4 调整段的I/O 250 §20.4.1 理解 块I/O 251 §20.4.2 改善段块I/O 251 §20.5 调整checkpoint 和CKPT 的I/O 253 §20.6 调整归档及ARCO的I/O 253 §20.6.1 测量归档和ARCO I/O 254 §20.6.2 改善归档和ARCO I/O 255 §20.7 调整排序的I/O 256 §20.7.1 理解排序活动 256 §20.7.2 改善排序I/O 257 第21章 Oracle系统运行中的资源竞争 259 §21.1 理解锁存器竞争 259 §21.1.1 锁存器概念 259 §21.1.2 锁存器的类型 260 §21.2 检测锁存器竞争问题 260 §21.2.1 从V$LATCH中查询锁存器的竞争 261 §21.2.2 用STATSPACK报告锁存器的竞争 262 §21.3 减少锁存器竞争 262 §21.3.1 减少锁存器竞争的主要点 262 §21.3.2 共享与库高速缓存锁存器 264 §21.3.3 减少重做日志缓冲区锁存器竞争 264 §21.3.3.1 检查重做日志竞争 268 §21.3.3.2 分析重做日志竞争 269 §21.3.3.3 减少锁存器的竞争 270 §21.3.4 减少对LRU锁存器的竞争 270 §21.4 减少自由列表的竞争 270 §21.4.1 检测free list是否存在竞争 271 §21.4.2 调整free list以减少竞争 272 §21.5 减少对并行服务器的竞争 273 §21.5.1 确定并行服务器存在竞争 273 §21.5.2 降低并行服务器竞争 273 第23章 各种锁和完整性 274 §22.1 锁的概念 274 §22.2 分析v$lock 277 §22.2.1 用lock table锁定表 278 §22.2.2 会话更新专用锁定表的行- 279 §22.2.3 一个会话试图更新另一个会话更新过的行 279 §22.2.4 显式锁下的并发例子- 280 §22.3 监控系统中的锁 281 §22.3.1 查询V$LOCK是否存在争用 282 §22.3.2 查询V$LOCKED_OBJECT是否存在争用 283 §22.3.3 查询DBA_WAITERS是否存在争用 284 §22.3.4 查询DBA_BLOCKERS是否存在争用 285 §22.4 管理锁的竞争 285 §22.4.1 查询产生锁的SQL语句 286 §22.4.2 怎样释放锁 286 §22.5程序死锁的产生与避免 287 §22.5.1 程序死锁原因 287 §22.5.2 避免程序死锁方法 288 §22.5.3 程序死锁例子 288 §22.5.4 避免程序死锁例子 290 第23章 调整回滚段竞争 292 §23.1 回滚段的用途 292 §23.2 监测回滚段的竞争 292 §23.3 调整回滚段的竞争 294 §23.3.1 最小化回滚段的扩展 294 §23.3.2 分布回滚段的I/O 294 §23.3.3 调整回滚段的存储参数 295 §23.3.4 使用较小的回滚段 295 §23.4 Oracle9i的自动撤消管理 296 §23.4.1 自动管理撤消 296 §23.4.2 自动撤消管理表空间的建立 296 §23.4.3 检测自动撤消管理表空间的使用 297 第25章 调整共享服务器 298 §24.1 查询调度程序视图监测竞争 299 §24.2 降低调度程序竞争 299 §24.3 降低对共享的竞争 301 §24.4 确定最佳的调度程序和共享服务器数 303 第25章 操作系统与网络调整* 305 §25.1 理解操作系统性能问题 305 §25.1.1操作系统与硬件高速缓存 305 §25.1.2原始设备系统 305 §25.1.3进程调度程序 306 §25.1.4操作系统资源管理器 306 §25.2 检测操作系统性能问题 306 §25.3 解决操作系统性能问题- 307 §25.3.1调整服务器内存相关的参数 307 §25.3.2基于UNIX系统的执行 308 §25.3.3基于NT系统的执行 308 §25.3.4基于大型系统的执行 309 §25.4 网络系统性能问题 309 §25.4.1 网络的连接模式 309 §25.4.1.1 多线程服务配置 309 §25.4.1.2 注册检查 311 §25.4.1.3 预产生专用服务配置 312 §25.4.2 检测网络故障 313 §25.4.2.1 使用动态数据字典检测 313 §25.4.2.2 了解网络环境的速率 313 §25.4.3 解决网络故障 314 §25.4.3.1 分析瓶颈所在 314 §25.4.3.2 分析瓶颈信息 315 §25.4.3.3 调整阵列接口 316 §25.4.3.4 调整数据单元缓冲区大小 316 §25.4.3.5 在protocol.ora中加TCP.NODELAY 316 §25.4.3.6 使用连接管理器 316 第27章 数据库关闭/启动工作 317 §27.1 删除或归档旧的跟踪文件和跟踪日志 317 §27.2 重新命名警报日志 317 §27.3 产生创建控制文件命令* 318 §27.4 驻留程序包 318 §27.5 创建拥有者-对象的位图 319 §27.6 重新计算统计资料 320 §27.7 缩小扩展超过最佳值的回滚段* 320 第48章 调整实例恢复性能*(tuning 24) 321 §48.1 理解实例恢复* 321 §48.2 调整实例延迟及碰撞恢复* 321 §48.3 监示实例恢复* 321 §48.4 实例恢复阶段调整* 321 第49章 应用程序性能调整* 321 §49.1 在基表上创建索引 321 §49.1.1 何时创建B*树索引 321 §49.1.2何时创建位图树索引 322 §49.1.3何时创建逆关键字索引 322 §49.1.4何时不要建索引 322 §49.2 在select 语句上使用索引 323 §49.2.1评估索引的使用情况 323 §49.2.2避免不使用索引的SQL语句 323 §49.3 把具有大量数据I/O的处理放在服务器上 324 §49.4 在内存中保持PL/SQL 代码 324 §49.5 鼓励代码重用 325 §49.6 将表缓存在内存中 326 §49.7 了解SQL语句的速度差别 326 §49.8 在表结构设计和select语句中用decode 327 §49.9 将LOB类型单独存放 328 §49.10 分而治之 329 第50章 内存和CPU的优化 330 §50.1 应用类型 330 §50.1.1 oracle 如何响应OLTP数据访问请求 330 §50.1.2 oracle 如何响应批数据访问请求 330 §50.2 如何计算命中率 331 §50.3 影响命中率的因素 332 §50.3.1 字典表活动 332 §50.3.2 临时段的活动 332 §50.3.3 回滚段的活动 332 §50.3.4 索引活动 333 §50.3.5 表扫描 333 §50.3.6 OLTP和批应用类型 333 §50.4 内存和CPU的优化调整问题 334 §50.5 为应用选择目标命中率 334 §50.6 内存和CPU 的要求 335 第五部分 ORACLE系统高级用法介绍 340 第52章 安全管理+ 341 §52.1 用户验证 341 §52.1.1 数据库验证 341 §52.1.2 外部验证 341 §52.1.3 企业验证 341 §52.2 数据库权限管理 341 §52.2.1 理解安全角色 341 §52.2.2 理解管理 341 §52.2.3 数据库验证 341 §52.3 ORACLE 企业安全管理器 341 §52.4 监控数据库资产 341 §52.4.1 审计登录 341 §52.4.2 审计数据库操作 341 §52.4.3 审计数据库对象上的DML 341 §52.4.4 管理审计 341 §52.5 保护数据完整性 342 §52.6 Oracle 8I 因特网安全 342 §52.6.1 使用数字证书 342 §52.6.2 使用RADIUS协议的高级验证 342 §52.7 防火墙支持 342 §52.8 好的粒状存取控制 342 §52.9 数据库资源管理器 342 §52.10 硬件安全 342 §52.11 恢复丢失的数据 342 §52.11.1 操作系统备份 342 §52.11.2 逻辑备份 342 第53章 分布式数据库管理 342 §53.1 分布式数据库概念 343 §53.1.1 同质分布数据库 343 §53.1.2 异类分布数据库系统 344 §53.1.3 客户/服务器数据库结构 344 §53.2 数据库连接 344 §53.2.1 为什么使用数据库连接 344 §53.2.2 数据库连接中的全局名称 344 §53.2.3 数据库连接中的命名 345 §53.2.4 数据库连接中的类型 345 §53.3 分布数据库管理 346 §53.3.1 站点自治 346 §53.3.2 分布数据库安全 346 §53.3.3 审计数据库连接 347 §53.3.4 管理工具 347 §53.4 分布数据库中事务处理 348 §53.4.1 远程SQL语句 348 §53.4.2 分布SQL语句 349 §53.4.3 远程共享SQL语句和分布语句 349 §53.4.4 远程事务 349 §53.4.5 分布事务 350 §53.4.6 两阶段提交机制 350 §53.4.7 数据库连接名称的解析 350 §53.5 分布数据库应用开发 351 §53.5.1 分布数据库系统的透明性 351 §53.5.2 分布查询的优化 352 §53.6 民族语言的支持 352 §53.7 管理分布系统全局名称 352 §53.7.1 理解全局数据库名字版式 352 §53.7.2 确定全局数据库名字执行 353 §53.7.3 浏览全局数据库名 353 §53.7.4 在全局数据库名中改变域名 354 §53.7.5 改变全局数据库名 354 §53.8 建立数据库连接 357 §53.8.1 建立数据库连接的权限 357 §53.8.2 指定数据库连接类型 357 §53.8.3 指定连接用户 358 §53.9 建立共享数据库连接 359 §53.9.1 建立共享数据库连接 359 §53.9.2 管理数据库连接 360 §53.10 浏览数据库连接 361 §53.11 建立位置透明性 364 §53.12 分布事务 364 §53.13 设置分布事务初始化参数 364 §53.14 查看分布事务信息 365 §53.15 处理怀疑的事务 366 §53.16 手工处理处理怀疑的事务 366 第54章 复制管理- 367 §54.1 复制概念 367 §54.1.1 复制对象、组及站点 367 §54.1.2 复制环境类型 368 §54.1.3 复制环境管理工具 369 §54.2 主机概念与结构 370 §54.2.1 什么是主机复制 370 §54.2.1 主群组 371 §54.2.2 快照组 371 §54.3 传播的类型 371 §54.3.1 异步传播 371 §54.3.2 同步传播 371 §54.4 复制的类型 371 §54.4.1 行级复制 371 §54.4.2 串行传播 371 §54.4.3 并行传播 371 §54.4.4 过程化复制 371 §54.5 冲突解决 371 §54.5.1 冲突的类型 371 §54.5.2 避免冲突 371 §54.5.3 鉴别冲突 371 §54.5.4 解决冲突 371 §54.6 快照 371 §54.7 一些有用的工具 372 §54.8 ORACLE8 和ORACLE8I的新功能 372 §54.8.1 ORACLE8复制的新功能 372 §54.8.2 ORACLE8I复制的新功能 372 §54.9 小结 372 第56章 Oracle并行服务器安装与配置 373 §56.1 硬件环境概述 373 §56.2 Oracle并行服务器 374 §56.2.1 Oracle并行服务器组成 374 §56.2.2 Oracle动态并行执行 375 §56.3 Oracle并行服务器 375 §56.3.1 Oracle并行服务器概述 375 §56.3.2 Oracle并行服务器软件组成 376 §56.3.3 Oracle并行服务器安装概述 376 §56.3.3 数据库配置概述 377 §56.4 Oracle并行服务器安装前任务 377 §56.4.1 并行服务器节点硬件或软件环境需求 377 §56.4.2 企业管理器的硬件或软件环境需求 377 §56.4.3 共享磁盘子系统 378 §56.5 设置原始设备 378 §56.6 安装前步骤 381 §56.7 安装过程 382 §56.8 Oracle安装配置 382 §56.9 监听器(listener.ora ) 383 §56.10 目录服务访问(ldap.ora ) 384 §56.11 Net服务名(tnsnames.ora ) 384 §56.12 PROFILE文件(SQLNET.ORA ) 386 §56.13 安装之后建立数据库 387 §56.13.1 用Oracle数据库配置助理建立数据库 387 §56.13.2 用手工建立数据库 388 §56.14 以并行模式启动立数据库 388 §56.15 确认实例在运行 389 §56.16 Oracle并行服务器客户端配置 389 §56.17 Oracle并行服务器参数文件 390 §56.18 配置恢复管理器 392 §56.19 为RMAN配置目录 392 §56.20 并行服务器管理结构 395 §56.21 并行实例的启动 395 §56.22 并行实例的关闭 396 第57章 并行环境应用设计 397 §57.1 分析应用 397 §57.1.1 只读的表 397 §57.1.2 随机的查询与修改 397 §57.1.3 插入、修改与删除 397 §57.1.4 建立逆序键索引 398 §57.1.5 应用分区技术 398 §57.2 并行环境的数据库设计技术 400 §57.2.1 数据库操作、块类型及访问控制 400 §57.2.2 全局缓冲区的一致性工作和块种类 400 §57.2.3 产生数据库对象参数建议 401 §57.2.4 索引问题 401 §57.2.5 使用序列号 401 §57.2.6 逻辑和物理数据库布局 402 §57.2.6 全局缓存锁分配 403 §57.3 并行缓存设置 403 §57.3.1 并行缓存管理锁的设置 403 §57.3.2 Oracle 如何给块分配锁 404 §57.4 并行服务器应用的调整- 405 §57.4.1 调整并行服务器概述 406 §57.4.2 统计并行服务器性能 406 §57.4.3 确定同步代价 407 §57.4.4 初始化并行执行参数 408 §57.4.5 普通参数的调整 409 §57.4.5.1 并行操作中资源限制的参数 409 §57.4.5.2 影响资源消耗的参数 411 §57.4.5.3 与I/O相关的参数 412 第58章 并行查询管理 414 §58.1 Oracle并行选项、管理及调整 414 §58.1.1 Oracle并行选项 414 §58.1.2 Oracle并行选项设置 414 §58.1.2.1 用户的限制设置 414 §58.1.2.2 分配查询服务器进程 415 §58.1.2.3 并行度及其设置 415 §58.1.2.4 关于提示和查询提示强行并行 417 §58.1.2.5 监视并行查询情况 417 §58.2 并行数据加载(SQL*Loader) 417 §58.3 并行恢复 418 §58.4 并行SQL执行 418 §58.5 可以并行的SQL操作 419 §58.6 理解并行DML 420 §58.7 并行创建数据库表和索引 420 §58.7.1 并行创建数据库表 421 §58.7.2 并行创建索引 422 §58.8 并行性能有关的视图 422 第60章 高级安全管理 423 §120.1 Oracle的高级安全 423 附录A 动态性能视图(V$) 423 附录B 初始化参数 513 附录C 基本概念解释 514 C.1 分页是什么?,如何避免分页?* 514 C.2 检查点是什么?* 514 C.3 什么是模式? 514 C.4 B树索引 514 C.5 位图索引* 515 C.6 Oracle的锁机制 515 C.6.1 自动锁和显式锁 515 C.6.2 锁的级别 516 C.6.3 DML锁 516 C.6.4 DDL锁 518 C.6.5 锁存器与内部锁(Latches and Internal Locks) 518 C.7 Oracle的哈希簇(HASH CLUSTER) 519 C.7.1 在Hash Cluster中数据是如何存放的 519 C.7.2 Hash 键值 521 C.7.3 Hash 函数 521 C.8 Oracle的嵌套表(Nested table) 523
Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级的读取锁, 以防止在包含该查询的事务处理被提交之前更新任何对象读取。这种操作模式提供可重复的读取, 并确保在同一事务处理种对相同数据的两次查询看到的是相同的值。 值范围: TRUE | FALSE 默认值: FALSE row_locking: 说明: 指定在表已更新或正在更新时是否获取行锁。如果设置为 ALWAYS, 只有在表被更新后才获取行锁。如果设置为 INTENT, 只有行锁将用于SELECT FOR UPDATE, 但在更新时将获取表锁。 值范围: ALWAYS | DEFAULT | INTENT 默认值: ALWAYS shared_servers 说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。 值范围: 根据操作系统而定。 默认值 : 1 circuits: 说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。 默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。 Mts_multiple_listeners: 说明: 指定多个监听程序的地址是分别指定的, 还是用一个 ADDRESS_LIST 字符串指定。如果该值为 TRUE, MTS_LISTENER_ADDRESS 参数可被指定为: (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(PORT=5000)(HOST=zeus)) (ADDRESS=(PROTOCOL=decnet)(OBJECT=outa)(NODE=zeus)) 此参数在 8.1.3 版中已废弃。 值范围: TRUE | FALSE 默认值: FALSE mts_servers: 说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。 值范围: 根据操作系统而定。 默认值 : 1 mts_service: 说明 : 一个共享服务器参数, 用于指定已在调度程序上注册, 用来建立数据库连接的唯一服务名。如果要在没有调度程序的情况下仍能连接到数据库, 请将该值设置为与例程名相同。此参数自 8.1.3 版起已废弃。 值范围: 根据操作系统而定。 默认值 :0 mts_sessions: 说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。 值范围: 0 到 SESSIONS - 5 默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者中的较小值 shared_server_sessions: 说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。 值范围: 0 到 SESSIONS - 5 默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者中的较小值 mts_max_dispatchers 说明 : 指定在一个共享服务器环境中可同时运行的调度程序进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目 mts_max_servers: 说明 : 指定在一个共享服务器环境中可同时运行的共享服务器进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 20 dispatchers: 说明 : 为设置使用共享服务器共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息, 请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例: '(PROTOCOL=TCP)(DISPATCHERS=3)'。 值范围: 参数的有效指定值。 默认值 : NULL max_shared_servers: 说明 : 指定在一个共享服务器环境中可同时运行的共享服务器进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 20 mts_circuits: 说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。 默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。 Mts_listener_address: 说明 : 指定共享服务器的监听程序配置。监听程序进程需要一个监听地址, 以便处理系统所用的各个网络协议的连接请求。 除非 MTS_MULTIPLE_LISTENERS=TRUE, 否则每个条目都必须有一个独立的相邻值。此参数自 8.1.3 版起已废弃 语法 : (ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=7002)) 默认值 : NULL mts_dispatchers: 说明 : 为设置使用共享服务器共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息, 请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例: '(PROTOCOL=TCP)(DISPATCHERS=3)'。 值范围: 参数的有效指定值。 默认值 : NULL max_dispatchers: 说明 : 指定在一个共享服务器环境中可同时运行的调度程序进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目 nls_nchar_conv_excp: 说明: (如果值为 TRUE) 当在隐式转换中丢失数据时返回错误的参数。 值范围: FALSE | TRUE 默认值: TRUE nls_numeric_characters: 说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, 百万等等) 的字符。小数分隔符用来将一个数字的整数部分与小数部分分隔开。其格式是 。 值范围: 任何单字节字符, '+', '-', '<', '>' 除外。 默认值: 从 NLS_TERRITORY 中获得 nls_sort: 说明: 指定 ORDER BY 查询的比较顺序。对于二进制排序, ORDER BY 查询的比较顺序是以数值为基础的。对于语言排序, 则需要进行全表扫描, 以便将数据按照所定义的语言排序进行整理。 值范围: BINARY 或有效的语言定义名。 默认值: 从 NLS_LANGUAGE 中获得 nls_territory: 说明: 为以下各项指定命名约定, 包括日期和星期的编号, 默认日期格式, 默认小数点字符和组分隔符, 以及默认的 ISO 和本地货币符号。可支持的区域包括美国, 法国和日本。有关所有区域的信息, 请参阅 Oracle8i National Language Support Guide。 值范围: 任何有效的地区名。 默认值: 根据操作系统而定 nls_timestamp_format: 说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 09:26:50.10' (将值存储为 11 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_time_format: 说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。 语法: TIME '09:26:50' (将值存储为 7 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_time_tz_format: 说明: 指定一对值 (UTC,TZD), 设置 TIME WITH TIME ZONE 数据类型的默认值, 该数据类型包含 HOUR, MINUTE, SECOND, TIMEZONE_HOUR 和 TIMEZONE_MINUTE 这几个日期时间字段。UTC 是世界时而 TZD 是当地时区。 语法: TIME '09:26:50.20+ 02:00' (将值存储为 9 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_length_semantics: 说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串。现有的列将不受影响。 值范围: BYTE 或 CHAR。 默认值: nls_length_semantics 的数据库字符集的字符所使用的度量单位。BYTE。 nls_date_format: 说明: 指定与 TO_CHAR 和 TO_DATE 函数一同使用的默认日期格式。该参数的默认值由 NLS_TERRITORY 确定。该参数的值可以是包含在双引号内的任何有效的日期格式掩码。例如: ''MMM/DD/YYYY''。 值范围: 任何有效的日期格式掩码, 但不得超过一个固定长度。 默认值: 派生 nls_timestamp_tz_format: 说明: 与 NLS_TIME_TZ_FORMAT 相似, 其中的一对值指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH 和 DAY 日期值, HOUR, MINUTE 和 SECOND 时间值, 还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。 语法: TIMESTAMP '1997- 01- 31 09:26:50+ 02:00' (将值存储为 13 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_language: 说明: 指定数据库的默认语言, 该语言将用于消息, 日期和月份名, AD, BC, AM 和 PM 的符号, 以及默认的排序机制。可支持的语言包括英语, 法语和日语等等。 值范围: 任何有效的语言名。 默认值: 根据操作系统而定 nls_comp: 说明: 在 SQL 语句中, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句中进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。 值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: BINARY nls_currency: 说明: 为 L 数字格式元素指定用作本地货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。 值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 中获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。该参数的默认值是由 NLS_LANGUAGE指定的语言。 值范围: 任何有效的 NLS_LANGUAGE 值。 默认值: NLS_LANGUAGE 的值 nls_dual_currency: 说明: 用于覆盖 NLS_TERRITORY 中定义的默认双重货币符号。如果不设置该参数, 就会使用默认的双重货币符号; 否则就会启动一个值为双重货币符号的新会话。 值范围: 任何有效的格式名。。 默认值: 双重货币符号 nls_iso_currency: 说明: 为 C 数字格式元素指定用作国际货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。 值范围: 任何有效的 NLS_TERRITORY 值。 默认值: 从 NLS_TERRITORY 中获得 nls_calendar: 说明: 指定 Oracle 使用哪种日历系统作为日期格式。例如, 如果 NLS_CALENDAR 设置为 'Japanese Imperial', 那么日期格式为 'E YY-MM-DD'。即: 如果日期是 1997 年 5 月 15 日, 那么 SYSDATE 显示为 'H 09-05-15'。 值范围: Arabic Hijrah, English Hijrah, Gregorian, Japanese Imperial, Persian, ROC Official (Republic of China) 和 Thai Buddha。 默认值: Gregorian plsql_native_c_compiler: 说明: 指定用于将生成的 C 文件编译为目标文件的 C 编译程序的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件中包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。 值范围: C 编译程序的完整路径。 默认值: 无 remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。 值范围: TIMESTAMP | SIGNATURE 默认值: TIMESTAMP utl_file_dir: 说明: 允许数据库管理员指定 PL/SQL 文件 I/O 许可的目录。使用多个 UTL_FILE_DIR 参数即可指定多个目录。请注意所有用户均可读取或写入 UTL_FILE_DIR 参数中指定的所有文件。 值范围: 任何有效的目录路径。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。 值范围: TRUE | FALSE 默认值: FALSE plsql_native_make_utility: 说明: 指定 make 实用程序 (如 UNIX 中的 make 或 gmake, 即 GNU make) 的完整路径名。要从生成的 C 源中生成共享对象或 DLL, 需要使用 make 实用程序。 值范围: make 实用程序的完整路径名。 默认值: 无 plsql_native_library_dir: 说明: 由 PL/SQL 编译程序使用。它指定目录名, 其中存储了本机编译程序生成的共享对象。 范围值: 目录名。 默认值: 无 plsql_compiler_flags: 说明: 由 PL/SQL 编译程序使用。它将编译程序标志列表指定为一个用逗号分隔的字符串列表。 值范围: native (PL/SQL 模块将按本机代码来编译。), interpreted (然后 PL/SQL 模块将被编译为 PL/SQL 字节代码格式), debug (PL/SQL 模块将用探测调试符号来编译), non_debug。 默认值: " interpreted, non_debug " plsql_native_linker: 说明: 此参数指定链接程序 (如: UNIX 中的 ld, 或用于将目标文件链接到共享对象或 DLL 的 GNU ld) 的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件中包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。 值范围: 链接程序的完整路径名。 默认值: 无 plsql_native_make_file_name: 说明: 指定 make 文件的完整路径名。make 实用程序 (由 PLSQL_NATIVE_MAKE_UTILITY 指定) 使用此 make 文件生成共享对象或 DLL。每个平台附带有端口专用的 make 文件, 该文件包含使用 make 实用程序在该平台上生成 DLL 时要遵循的规则。 值范围: make 文件的完整路径名。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。 值范围: TRUE | FALSE 默认值: FALSE remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。 值范围: TIMESTAMP | SIGNATURE 默认值: TIMESTAMP shared_memory_address: 说明: SHARED_MEMORY_ADDRESS 和 HI_SHARED_MEMORY_ADDRESS 指定运行时 SGA 的起始地址。许多平台在链接时间指定 SGA 起始地址, 在这类平台上这些参数将被忽略。如果两个参数都设置为 0 或 NULL, 那么地址将根据平台而定。 值范围: 任何整数值。 默认值: 0 lock_sga: 说明: 用于将整个 SGA 锁定在物理内存中。在不支持这种功能的平台上, 该值将被忽略。 值范围: TRUE | FALSE 默认值: FALSE hi_shared_memory_address: 说明: 指定系统全局区 (SGA) 的运行时起始地址。在指定 SGA 连接时起始地址的平台上, 该值被忽略。在 64 位平台上, 请使用该值来指定高 32 位和低 32 位。如果不指定该值, 默认值是平台指定的位置。 值范围: 任何整数值。 默认值: 0 pre_page_sga: 说明: 一个根据平台而定的参数, 如果该参数为 TRUE, 将把所有 SGA 页装载到内存中, 以便使该例程迅速达到最佳性能状态。这将增加例程启动和用户登录的时间, 但在内存充足的系统上能减少缺页故障的出现。 值范围: TRUE | FALSE 默认值: FALSE sga_max_size: 说明: 指定例程存活期间所占用的系统全局区的最大大小。 值范围: 0 到各操作系统所允许的最大值。请注意, 由于该参数值的最小值在启动时已经调整完毕, 因而它无关紧要。 默认值: 如果未指定值, sga_max_size 的默认值将与启动时 SGA 的最初大小 (比如说 X) 相同。该大小取决于 SGA 中各种大小, 如缓冲区高速缓存, 共享, 大型等。如果指定的值小于 X, 则所使用的 sga_max_size 的值将为 X。也就是说, 它是 X 与用户指定的 sga_max_size 值两者之间的较大值。 Fast_start_parallel_rollback: 说明: 执行并行回退时确定进程的最大数量。在多数事务处理的运行时间都较长的系统上, 该值很有用。 值范围: FALSE | LOW | HIGH 默认值: LOW (2 * CPU_COUNT) transaction_auditing: 说明: 确定事务处理层是否生成一个特殊的重做记录, 其中包含用户登录名, 用户名, 会话 ID, 部分操作系统信息以及客户机信息。在使用某一重做日志分析工具时, 这些记录可能很有用。 值范围: TRUE | FALSE 默认值: TRUE transactions: 说明: 指定并行事务处理的最大数量。如果将该值设置得较大, 将增加 SGA 的大小, 并可增加例程启动过程中分配的回退段的数量。默认值大于 SESSIONS, 以实现递归事务处理。 值范围: 一个数值。 默认值: 派生 (1.1 * SESSIONS) enqueue_resources: 说明: 入队可使并行进程能够共享资源。例如, Oracle 允许一个进程以共享模式锁定一个表, 以共享更新模式锁定另一个表。 值范围: 10 - 65535 (7.3) 或 10 - 无限制 (8.1)。 默认值: 派生 (该值大于 DML_LOCKS + 20 即已足够) dml_locks: 说明: 所有用户获取的表锁的最大数量。对每个表执行 DML 操作均需要一个 DML 锁。例如, 如果 3 个用户修改 2 个表, 就要求该值为 6。 值范围: 0 或 20 到无限制。 默认值: 4 * TRANSACTIONS (派生) hash_join_enabled: 说明: 如果设置为 TRUE, 优化程序将在计算最有效的联接方法时考虑散列联接。Oracle 建议数据仓库应用程序应使用 TRUE值。 值范围: TRUE | FALSE 默认值: TRUE optimizer_features_enable: 说明: 允许更改 init.ora 参数, 该参数控制着优化程序的行为。受此影响的参数包括 PUSH_JOIN_PREDICATE, FAST_FULL_SCAN_ENABLED, COMPLEX_VIEW_MERGING 和 B_TREE_BITMAP_PLANS。 值范围: 8.0.0; 8.0.3; 8.0.4; 8.1.3。 默认值: 8.0.0 query_rewrite_integrity: 说明: Oracle Server 执行的查询重写的程度。如果设置为 ENFORCED, Oracle 将保证其一致性和完整性。如果设置为 TRUSTED, 将使用明确声明的关系来允许重写。如果设置为 STALE_TOLERATED, 即使实体化视图与基础数据不一致, 也仍可以进行重写。 值范围: ENFORCED, TRUSTED, STALE_TOLERATED 默认值: ENFORCED query_rewrite_enabled 说明: 启用或禁用对实体化视图的查询重写。一个特定实体化视图只在如下条件下启用: 会话参数和单独实体化视图均已启用, 并且基于成本的优化已启用。 值范围: TRUE | FALSE 默认值: FALSE partition_view_enabled: 说明: 如果将 PARTITION_VIEW_ENABLED 设置为 TRUE, 该优化程序将剪除 (或跳过) 分区视图中不必要的表访问。该参数还能更改基于成本的优化程序从基础表统计信息计算分区视图统计信息的方式。 值范围: TRUE | FALSE 默认值: FALSE optimizer_max_permutations: 说明: 对带有大量联接的查询进行语法分析时, 优化程序将会考虑限制表的交换数。这有助于确保对查询进行语法分析的时间保持在可接受的限制范围内, 但代价是无法找到最佳计划。如果该值小于 1000, 就应该可以确保每次查询的时间仅为几秒钟或更短。 值范围: 4-2^32 (~4.3 G)。 默认值: 80,000 optimizer_index_cost_adj: 说明: 在考虑太多或太少索引访问路径的情况下, 可以用来优化优化程序的性能。该值越低, 优化程序越容易选择一个索引。也就是说, 如果将该值设置为 50%, 索引访问路径的成本就是正常情况下的一半。 值范围: 1 -10000 默认值: 100 (一个索引访问路径的常规成本) star_transformation_enabled: 说明: 确定基于成本的查询转换是否将被应用到星型查询中。如果设置为 TRUE, 优化程序将考虑将基于成本的转换应用于星型查询中; 如果设置为 FALSE, 将不使用任何转换; 如果设置为 TEMP_DISABLE, 将考虑查询转换, 但不使用临时表。 值范围: TRUE | FALSE | TEMP_DISABLE 默认值: FALSE optimizer_mode: 说明: 指定优化程序的行为。如果设置为 RULE, 就会使用基于规则的优化程序, 除非查询含有提示。如果设置为 CHOOSE, 就会使用基于成本的优化程序, 除非语句中的表不包含统计信息。ALL_ROWS 或 FIRST_ROWS 始终使用基于成本的优化程序。 值范围: RULE | CHOOSE | FIRST_ROWS | ALL_ROWS 默认值: CHOOSE optimizer_index_caching: 说明: 调整基于成本的优化程序的假定值, 即在缓冲区高速缓存中期望用于嵌套循环联接的索引块的百分比。它将影响使用索引的嵌套循环联接的成本。将该参数设置为一个较高的值, 可以使嵌套循环联接相对于优化程序来说成本更低。 值范围: 0 - 100 %。 默认值: 0 job_queue_processes: 说明: 只用于复制环境。它指定每个例程的 SNP 作业队列进程的数量 (SNP0, ... SNP9, SNPA, ... SNPZ)。要自动更新表快照或执行由 DBMS_JOB 创建的请求, 请将该参数设置为 1 或更大的值。 值范围: 0 到 36 默认值: 0 max_transaction_branches: 说明: 控制分布式事务处理中分支的数量。将 MAX_TRANSACTION_BRANCHES 设置为较低的值, 可以根据 MAX_TRANSACTION_BRANCHES * DISTRIBUTED_TRANSACTIONS * 72 字节, 略微减少共享的空间量。此参数在 8.1.3 版中已废弃。 值范围: 1 - 32 默认值: 8 compatible: 说明: 允许您使用一个新的发行版, 同时保证与先前版本的向后兼容性。 值范围: 默认为当前发行版。 默认值: 由发行版确定 archive_lag_target: 说明: 此参数与基于时间的线程高级功能相关联。 值范围: 0 或 [60, 7200] 中的任意整数。 默认值: 0 为默认值, 此时将禁用基于时间的线程高级功能。否则, 值将代表秒数 aq_tm_processes: 说明: 如果大于零, 就会启用对队列消息的时间监视。该时间值可用于指定消息的延迟和失效属性 (用于应用程序的开发)。 值范围: 0 - 10 默认值: 0 tracefile_identifier: spfile: 说明: 指定当前使用的服务器参数文件的名称。 值范围: 静态参数 默认值: SPFILE 参数可在客户端 PFILE 中定义, 以指明要使用的服务器参数文件的名称。服务器使用默认服务器参数文件时, SPFILE 的值要由服务器在内部设置。 Logmnr_max_persistent_sessions: Standby_file_management: Trace_enabled: Ifile: 说明: 用于在当前参数文件中嵌入其他参数文件。您可以在一个参数文件的多个行上多次使用该参数, 但最多只能有三级嵌套。 值范围: 任何有效的参数文件名 (语法是 IFILE = parameter_file_name)。 默认值: NULL remote_listener: global_context_pool_size: 说明: 从 SGA 分配的用于存储和管理全局应用程序环境的内存量。 值范围: 任意整数值。 默认值: 1 M plsql_native_library_subdir_count: fixed_date: 说明: SYSDATE 返回的数据。对于必须始终返回固定日期而非系统日期的测试, 该值很有用。使用双引号或不使用引号。请勿使用单引号。 值范围: YYYY-MM-DD-HH24:MI:SS (或默认的 Oracle 日期格式)。 默认值: NULL db_name: 说明: 一个数据库标识符, 应与 CREATE DATABASE 语句中指定的名称相对应。 值范围: 任何有效名称最多可有 8 个字符。 默认值: 无 (但应指定) cluster_database: cluster_interconnects: cluster_database_instances: sql_version: replication_dependency_tracking: 说明: 跟踪相关性对复制服务器以并行方式传播所作的更改至关重要。如果设置为 FALSE, 数据库上的读/写操作将运行得更快, 但无法为复制服务器产生并行传播的相关性信息。 值范围: TRUE | FALSE 默认值: TRUE (即启用读/写相关性跟踪) remote_os_roles: 说明: 将 REMOTE_OS_ROLES 设置为 TRUE, 允许由远程客户机的操作系统来分配角色。如果设置为 FALSE, 则由远程客户机的数据库来识别和管理角色。 值范围: TRUE | FALSE 默认值: FALSE remote_os_authent: 说明: 将 REMOTE_OS_AUTHENT 设置为 TRUE, 允许使用 OS_AUTHENT_PREFIX 的值来验证远程客户机。 值范围: TRUE | FALSE 默认值: FALSE open_links: 说明: 指定在一次会话中同时打开的与远程数据库的连接的最大数量。该值应等于或超过一个引用多个数据库的单个 SQL 语句中引用的数据库的数量, 这样才能打开所有数据库以便执行该语句。 值范围: 0 - 255 (如果为 0, 不允许分布式事务处理)。 默认值: 4 open_links_per_instance: 说明: 指定 XA 应用程序中可移植的打开连接的最大数量。XA 事务处理使用可移植的打开的连接, 以便在提交一个事务处理后能将这些连接高速缓存。如果创建连接的用户就是拥有事务处理的用户, 各事务处理则可共享连接。 值范围: 0 - UB4MAXVAL 默认值: 4 remote_login_passwordfile: 说明: 指定操作系统或一个文件是否检查具有权限的用户的口令。如果设置为 NONE, Oracle 将忽略口令文件。如果设置为 EXCLUSIVE, 将使用数据库的口令文件对每个具有权限的用户进行验证。如果设置为 SHARED, 多个数据库将共享 SYS 和 INTERNAL 口令文件用户。 值范围:NONE | SHARED | EXCLUSIVE 默认值: NONE hs_autoregister: 说明: 启用或禁用“异构服务 (HS)”代理的自动自注册。如果启用, 信息将被上载到数据字典中, 以便在通过同一代理建立后续连接时降低开销。 值范围: TRUE | FALSE 默认值: TRUE global_names: 说明: 指定是否要求数据库链接与所连接的数据库同名。如果该值为 FALSE, 则不执行检查。要使分布式处理中的命名约定一致, 请将该参数设置为 TRUE。 值范围: TRUE | FALSE 默认值: TRUE distributed_transactions: 说明: 一个数据库一次可参与的分布式事务处理的最大数量。如果由于网络故障异常频繁而减少该值, 将造成大量未决事务处理。 值范围: 0 - TRANSACTIONS 参数值。 默认值: 根据操作系统而定 commit_point_strength: 说明: 一个用于确定分布式事务处理中提交点的位置的值。 值范围: 0 -255 默认值: 根据操作系统而定 db_domain: 说明: 指定数据库名的扩展名 (例如:US.ORACLE.COM) 为使一个域中创建的数据库名唯一, 建议指定该值。 值范围: 由句点分隔的任何字符串, 最长可以有 128 个字符。 默认值: WORLD dblink_encrypt_login: 说明: 在连接到其他 Oracle Server 时, 数据库链接是否使用加密口令。 值范围: TRUE | FALSE 默认值: FALSE backup_tape_io_slaves: 说明: 一个恢复管理器参数, 用于确定读取或写入磁带是否要使用服务器进程或一个附加的 I/O 从属。 值范围: TRUE | FALSE 默认值: FALSE tape_asynch_io: 说明: 用于控制对顺序设备的 I/O 操作 (例如, 将 Oracle 数据备份或复原到磁带上, 或从磁带上备份或复原 Oracle 数据) 是否异步。只有在您的平台支持对顺序设备的异步 I/O 操作的情况下, 将该值设置为 TRUE 才有效; 如果异步 I/O 的执行情况不稳定, 请将该值设置为 FALSE。 值范围: TRUE | FALSE 默认值: FALSE log_file_name_convert: 说明: 将主数据库上的一个日志文件的文件名转换为备用数据库上对等的路径和文件名。将一个日志文件添加到一个主数据库后, 必须将一个相应的文件添加到备用数据库中。该参数替代 Oracle7 中的 LOG_FILE_NAME_CONVERT 参数。 值范围: 任何格式为 ''主体日志文件的路径/文件名'' 和 ''备用日志文件的路径/文件名'' 的有效路径/文件名 默认值: NULL fal_server: 说明: 指定此备用数据库的 FAL 服务器。该值是一个 Oracle Net 服务名。此 Oracle Net 服务名被假定为已在备用数据库系统上正确配置, 可指向期望的 FAL 服务器。 值范围: Oracle Net 服务名的字符串值。 Fal_client: 说明: 指定供 FAL 服务 (通过 FAL_SERVER 参数配置) 来引用 FAL 客户机的 FAL 客户机名称。该参数的值是一个 Oracle Net 服务名。此 Oracle Net 服务名被假定为已在 FAL 服务器系统上正确配置, 可指向 FAL 客户机 (即: 此备用数据库)。 值范围: Oracle Net 服务名的字符串值。 Drs_start: 说明: 使 Oracle 可以确定是否应启动 DRMON 进程。DRMON 是一种不会导致致命错误的 Oracle 后台进程, 只要例程存在, 该进程就存在。 值范围: TRUE | FALSE。 默认值: FALSE remote_archive_enable: 说明: 控制是否可向远程目标执行重做日志文件归档操作。必须将该参数值设置为 "TRUE", 以便 Oracle 数据库例程对重做日志文件进行远程归档, 并且/或者接收远程归档的重做日志文件。 值范围: FALSE | TRUE 默认值: TRUE standby_preserves_names: 说明: 表明备用数据库上的文件名是否与主数据库上的文件名相同。 值范围: TRUE 或 FALSE。注: 如果将值设置为 True, 且备用数据库与主数据库位于同一系统上, 则主数据库文件可能被覆盖。 默认值: FALSE。 Standby_archive_dest: 说明: 指定来自一个主例程的归档日志的到达位置。STANDBY_ARCHIVE_DEST 和 LOG_ARCHIVE_FORMAT 用于在备用位置上虚拟完全合格的归档日志文件名。备用数据库上的 RFS 服务器将使用该值, 而不是 ARCHIVE_LOG_DEST。 值范围: NULL 字符串或非 RAW 类型的有效路径/设备名。 默认值: NULL db_file_name_convert: 说明: 将主数据库上的一个新数据文件的文件名转换为备用数据库上的文件名。 值范围: 一个有效的主/备用目录和文件名对。 默认值: 无 max_enable_roles: 说明: 指定一个用户可以启用的数据库角色 (包括子角色) 的最大数量。用户可启用的角色的实际数量是 2 加上 MAX_ENABLED_ROLES 的值, 因为每个用户都有两个附加的角色: PUBLIC 和用户自己的角色。 值范围: 0 -148 默认值: 20 O7_DICTIONARY_ACCESSIBILITY: 说明: 主要用于从 Oracle7 移植到 Oracle8i。如果该值为 TRUE, SYSTEM 权限 (如 SELECT ANY TABLE) 将不限制对 SYS 方案中各对象的访问 (Oracle7 行为)。如果该值为 FALSE, 只有被授予了 SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE 或 DELETE_CATALOG_ROLE 权限的用户才能访问 SYS 方案中的各对象。 值范围: TRUE | FALSE 默认值: TRUE sql92_security: 说明: 指定要执行一个更新或删除引用表列的值是否需要具有表级的 SELECT 权限。 值范围: TRUE | FALSE 默认值: FALSE audit_trail: 说明: 启用或禁用数据库审计。如果该参数为 TRUE 或 DB, 审计记录将被写入 SYS.AUD$ 表中; 如果参数为 OS, 则写入一个操作系统文件。 值范围: NONE | FALSE | DB | TRUE | OS 默认值: NONE rdbms_server_dn: 说明: RDBMS 服务器的唯一判别名。它用于在一个企业目录服务中检索企业角色。有关详细信息, 请参阅“Oracle Advanced Security Administrator's Guide”。 值范围: 所有 X.500 唯一判别名格式值。 默认值: 无 os_roles: 说明: 确定操作系统或数据库是否为每个用户标识角色。如果设置为 TRUE, 将由操作系统完全管理对所有数据库用户的角色授予。否则, 角色将由数据库标识和管理。 值范围: TRUE | FALSE 默认值: FALSE os_authent_prefix: 说明: 使用用户的操作系统帐户名和口令来验证连接到服务器的用户。该参数的值与各用户的操作系统帐户连接在一起。要去除 OS 帐户前缀, 请指定空值。 值范围: 任何标识符。 默认值: 根据操作系统而定 (通常是 'OPS$') object_cache_max_size_percent: 说明: 指定会话对象的高速缓存增长可超过最佳高速缓存大小的百分比, 最大大小等于最佳大小加上该百分比与最佳大小的乘积。如果高速缓存大小超过了这个最大大小, 系统就会尝试将高速缓存缩小到最佳大小。 值范围: 0% 到根据操作系统而定的最大值。 默认值: 10% object_cache_optimal_size: 说明: 指定在高速缓存超过最大大小的情况下, 会话对象高速缓存将被缩小到的大小。 值范围: 10K 到根据操作系统而定的最大值。 默认值: 100K session_max_open_files: 说明: 指定可在任一给定会话中打开的 BFILE 的最大数量。一旦达到这个数量, 此后将无法在该会话中打开更多文件。该参数还取决于操作系统参数 MAX_OPEN_FILES。 值范围: 1 - 至少为 (50, OS 级上的 MAX_OPEN_FILES)。 默认值: 10 parallel_execution_message_size: 说明: 指定并行执行 (并行查询, PDML, 并行恢复和复制) 消息的大小。如果值大于 2048 或 4096, 就需要更大的共享。如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 将在大存储之外指定消息缓冲区。 值范围: 2148 - 无穷大。 默认值: 如果 PARALLEL_AUTOMATIC_TUNING 为 FALSE, 通常值为 2148; 如果 PARALLEL_AUTOMATIC_TUNING 为 TRUE , 则值为 4096 (根据操作系统而定)。 Paralle_min_percent: 说明: 指定并行执行要求的线程的最小百分比。设置该参数, 可以确保并行执行在没有可用的恰当查询从属进程时, 会显示一个错误消息, 并且该查询会因此而不予执行。 值范围: 0 -100 默认值: 0, 表示不使用该参数。 Parallel_automatic_tuning: 说明: 如果设置为 TRUE, Oracle 将为控制并行执行的参数确定默认值。除了设置该参数外, 你还必须为系统中的表设置并行性。 值范围: TRUE | FALSE 默认值: FALSE parallel_threads_per_cpu: 说明: 说明一个 CPU 在并行执行过程中可处理的进程或线程的数量, 并优化并行自适应算法和负载均衡算法。如果计算机在执行一个典型查询时有超负荷的迹象, 应减小该数值。 值范围: 任何非零值。 默认值: 根据操作系统而定 (通常为 2) parallel_broadcast_enabled: 说明 : 通过使用一个散列联接或合并联接, 可以在将多个大结果集联接到一个小结果集 (以字节而不是行为单位来衡量大小) 时改善性能。如果该值设置为 TRUE, 优化程序可以将小结果集内的每个行都传播到大型集内的每个集群数据库处理行中。 值范围: TRUE | FALSE 默认值 : FALSE parallel_adaptive_multi_user: 说明: 启用或禁用一个自适应算法, 旨在提高使用并行执行方式的多用户环境的性能。通过按系统负荷自动降低请求的并行度, 在启动查询时实现此功能。当 PARALLEL_AUTOMATIC_TUNING = TRUE 时, 其效果最佳。 值范围: TRUE | FALSE 默认值: 如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 则该值为 TRUE; 否则为 FALSE parallel_max_servers: 说明: 指定一个例程的并行执行服务器或并行恢复进程的最大数量。如果需要, 例程启动时分配的查询服务器的数量将增加到该数量。 值范围: 0 -256 默认值: 由 CPU_COUNT, PARALLEL_AUTOMATIC_TUNING 和 PARALLEL_ADAPTIVE_MULTI_USER 确定 parallel_min_servers 说明: 指定为并行执行启动例程后, Oracle 创建的查询服务器进程的最小数量。 值范围: 0 - PARALLEL_MAX_SERVERS。 默认值: 0 log_archive_dest_state_3: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_3) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_4: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_4) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_5: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_5) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_6: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_7: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_8: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_9: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 Log_archive_start: 说明: n只在数据库处于“归档日志”模式的情况下适用。它指定重做日志是自动还是手动复制。建议值是 TRUE, 即执行自动归档; 否则就需要手动干预, 使用 ALTER SYSTEM ARCHIVE LOG ... 命令来阻止例程挂起。 值范围: TRUE | FALSE 默认值: FALSE log_archive_duplex_dest: 说明: 指定 LOG_ARCHIVE_DEST 外的另一个归档目标。在 Oracle8i 企业版中, 该参数被 LOG_ARCHIVE_DEST_n 代替。 值范围: 一个 NULL 字符串, 或者任何有效的路径或设备名, 原始分区除外。 默认值: NULL log_archive_format: 说明: LOG_ARCHIVE_FORMAT 只在数据库处于“归档日志”模式的情况下有用。文本字符串与变量 %s (日志序列号) 和 %t (线程号) 结合使用, 用于指定各归档重做日志文件的唯一文件名。该字符串被附加到 LOG_ARCHIVE_DEST 参数。 值范围: 任何有效的文件名。 默认值: 根据操作系统而定 log_archive_max_processes: 说明: 指定要求的 ARCH 进程的数量。如果 LOG_ARCHIVE_START = TRUE, 该值可以在例程启动时被评估; 也可以在通过 SQL*Plus 或 SQL 语法调用 ARCH 进程时评估。 值范围: 1 - 10 (包括端点) 的任何整数。 默认值: 1 log_archive_dest_2: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第二个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_min_succeed_dest: 说明: 定义在可以覆盖日志文件前必须将其复制到的目标的最小数量。该值应大于或等于 LOG_ARCHIVE_DEST_n 中 MANDATORY 目标的数量。 值范围: 1 - 5 (如果与 LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DUPLEX_DEST 共同使用, 则限制在 1-2)。 默认值: 1 log_archive_trace: 说明: 控制归档日志进程生成的输出。此进程可以通过下列方式启动 ARCn 后台进程 (在输出日志中指定为 ARCn) 明确的会话调用的前台进程 (在输出日志中指定为 ARCH) 或 “受管备用数据库”的远程文件服务器 (RFS) 进程。 值范围: 0: 禁用归档日志跟踪 (这是默认设置) 1: 重做日志文件的追踪归档 2: 每个归档日志目标的追踪归档状态 4: 追踪归档操作阶段 8: 追踪归档日志目标活动 16: 追踪详细的归档日志目标活动 32: 追踪归档日志目标参数修改 64: 追踪 ARCn 进程状态活动 默认值: 0 log_archive_dest_10: log_archive_dest_3: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第三个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第三个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest_state_2: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_2) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_5: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第五个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest_6: log_archive_dest_1: log_archive_dest_8: log_archive_dest_9: log_archive_dest_state_1: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_1) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_10 说明: 指定归档日志的目标。 值范围: 本地文件系统位置 (磁盘位置) 或通过 Oracle Net 服务名 (tns 服务) 指定的远程归档位置。: log_archive_dest_4: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置中的第四个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库中有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL create_bitmap_area_size: 说明: CREATE_BITMAP_AREA_SIZE 指定为创建位图索引而分配的内存量。 值范围: 根据操作系统而定。 默认值: 8 MB pga_aggregate_target: 说明: 指定连接到例程的所有服务器进程的目标 PGA 总内存。请在启用自动设置工作区之前将此参数设置为一个正数。这部分内存不驻留在 SGA 中。数据库将此参数值用作它所使用的目标 PGA 内存量。设置此参数时, 要将 SGA 从可用于 Oracle 例程的系统内存总量中减去。然后可将剩余内存量分配给 pga_aggregate_target。 值范围: 整数加字母 K, M 或 G, 以将此限值指定为千字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G 默认值: "未指定", 表示完全禁用对工作区的自动优化。 Sort_area_size: 说明: SORT_AREA_SIZE 以字节为单位, 指定排序所使用的最大内存量。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。如果超过了该内存量, 将使用临时磁盘段。 值范围: 相当于 6 个数据库块的值 (最小值) 到操作系统确定的值 (最大值)。 默认值: 根据操作系统而定 sort_area_retained_size 说明: 以字节为单位, 指定在一个排序运行完毕后保留的用户全局区 (UGA) 内存量的最大值。最后一行从排序空间中被提取后, 该内存将被释放回 UGA, 而不是释放给操作系统。 值范围: 从相当于两个数据库块的值到 SORT_AREA_SIZE 的值。 默认值: SORT_AREA_SIZE 的值 bitmap_merge_area_size: 说明: 指定合并从对索引的某一范围进行扫描而检索得到的位图要使用的内存量。 值范围: 根据系统而定。 默认值: 1MB workarea_size_policy: 说明: 指定调整工作区大小的策略。此参数控制优化工作区时所处的模式。 值范围: AUTO, MANUAL。 默认值: 如果设置PGA_AGGREGATE_TARGET, 则为 AUTO; 否则为 MANUAL。 Hash_area_size: 说明: 与并行执行操作和 DML 或 DDL 语句相关。它以字节为单位, 指定要用于散列联接的最大内存量。有关详细信息, 请参阅手册 Oracle8i Concepts。 值范围: 0 到根据操作系统而定的值。 默认值: 派生:2 * SORT_AREA_SIZE 参数值 db_create_online_log_dest_4: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 db_create_online_log_dest_3: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 Db_files: 说明: 可为该数据库打开的数据文件的最大数量。 值范围: MAXDATAFILES - 根据操作系统而定。 默认值: 根据操作系统而定 (在 Solaris 系统上为 200) db_create_online_log_dest_2: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 db_create_online_log_dest_1: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 Db_create_file_dest: 说明: 设置所创建的数据文件, 控制文件和联机日志的默认位置。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 Control_files: 说明: 指定一个或多个控制文件名。Oracle 建议对于不同设备或 OS 文件镜象使用多个文件。 值范围: 1 - 8 文件名 (带路径名)。 默认值: 根据操作系统而定 db_create_online_log_dest_5: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其中创建文件的许可。 Large_pool_size: 说明 : 指定大型的分配堆的大小, 它可被共享服务器用作会话内存, 用作并行执行的消息缓冲区以及用作 RMAN 备份和恢复的磁盘 I/O 缓冲区。 值范围: 600K (最小值); >= 20000M (最大值是根据操作系统而定的)。 默认值 : 0, 除非配置了并行执行或 DBWR_IO_SLAVES shared_pool_size: 说明: 以字节为单位, 指定共享大小共享包含如: 共享游标, 存储的过程, 控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能。 值范围:300 KB - 根据操作系统而定。 默认值: 如果是 64 位操作系统, 值为 64MB; 其他情况下, 值为 16MB。 Java_pool_size: 说明: 以字节为单位, 指定 Java 存储大小, 它用于存储 Java 的方法和类定义在共享内存中的表示法, 以及在调用结束时移植到 Java 会话空间的 Java 对象。有关详细信息, 请参阅 Oracle8i Java Developer's Guide。 值范围: 根据操作系统而定。 默认值: 根据操作系统而定 shared_pool_reserved_size: 说明: 指定要为较大连续共享内存请求而保留的空间, 以避免由碎片引起的性能下降。该大小应符合这样的条件:能存储为防止对象从共享刷新而普遍要求的所有大型过程和程序包。 值范围: SHARED_POOL_RESERVED_MIN_ALLOC 到 SHARED_POOL_SIZE 的一半 (字节)。 默认值: SHARED_POOL_SIZE 值的 5% cursor_sharing: 说明: 控制可以终止共享相同的共享游标的 SQL 语句类型。 值范围: 强制: 强制表达方式不同但语句意思相同的语句共享一个游标。 EXACT: 只令完全相同的 SQL 语句共享一个游标。 默认值: EXACT open_cursors: 说明: 指定一个会话一次可以打开的游标 (环境区域) 的最大数量, 并且限制 PL/SQL 使用的 PL/SQL 游标高速缓存的大小, 以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高, 这样才能防止应用程序耗尽打开的游标。 值范围: 1 - 操作系统限制值。 默认值: 64 serial_reuse: 说明: 指定何种类型的 SQL 游标应利用串行可重用内存功能。如果 CURSOR_SPACE_FOR_TIME = TRUE, 那么 SERIAL_REUSE 值将被忽略, 当作被设置为 DISABLE 或 NULL 的情况处理。 值范围: DISABLE | SELECT | DML | PLSQL | ALL | NULL 默认值: NULL session_cached_cursors: 说明: 指定要高速缓存的会话游标的数量。对同一 SQL 语句进行多次语法分析后, 它的会话游标将被移到该会话的游标高速缓存中。这样可以缩短语法分析的时间, 因为游标被高速缓存, 无需被重新打开。 值范围: 0 到根据操作系统而定的值。 默认值: 0 cursor_space_for_time: 说明: 在一个游标引用共享 SQL 区时, 确定将 SQL 区保留在共享中还是从中按过期作废处理。 值范围: TRUE | FALSE 默认值: FALSE (过期作废) rollback_segments: 说明: 指定要在例程启动过程中获取的一个或多个回退段, 即使其数量超过了 TRANSACTIONS / TRANSACTIONS_PER_ROLLBACK_SEGMENT 的值。公式为 ROLLBACK_SEGMENTS = (rbseg_name [, rbseg_name] ...) 值范围:除 SYSTEM 外, DBA_ROLLBACK_SEGS 中列出的任何回退段。 默认值: NULL (默认情况下使用公用回退段) undo_suppress_errors: 说明: 允许用户在 SMU 模式下尝试执行 RBU 操作 (如 ALTER ROLLBACK SEGMENT ONLINE) 时忽略错误。这样能让用户在将所有应用程序和脚本转换到 SMU 模式之前即可使用 SMU 功能。 值范围: True 或 False 默认值: False。 Max_rollback_segments: 说明: 指定 SGA 中高速缓存的回退段的最大大小。该数值指定一个例程中可同时保持联机状态 (即状态为 INUSE) 的回退段的最大数量。 值范围: 2 -65535 默认值: 最大值 (30, TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT) undo_retention: 说明: UNDO_RETENTION 参数用来指定要在数据库中保留的已提交的撤消信息总量。可在例程启动时设置该参数值。可以计算满足撤消保留要求所需的撤消空间量: UndoSpace = RD * UPS, 其中 UndoSpace 以撤消块数来表示, RD 用以秒为单位的 UNDO_RETENTION 来表示, UPS 以每秒撤消块数来表示。 值范围: 所允许的最大值为 (2 ** 32) 秒。 默认值: 30 秒。 Transactions_per_rollback_segment: 说明: 指定每个回退段允许的并行事务处理的数量。启动时获取的回退段的最小数量为 TRANSACTIONS 除以该参数值的结果。如果在参数 ROLLBACK_SEGMENTS 中命名了其他回退段, 就可以获取这些回退段。 值范围: 1 - 根据操作系统而定。 默认值: 5 undo_management: 说明: 指定系统应使用哪种撤消空间管理模式。如果设置为 AUTO, 例程将以 SMU 模式启动。否则将以 RBU 模式启动。在 RBU 模式下, 撤消空间会象回退段一样在外部分配。在 SMU 模式下, 撤消空间会象撤消表空间一样在外部分配。 值范围: AUTO 或 MANUAL 默认值: 如果启动第一个例程时忽略了 UNDO_MANAGEMENT 参数, 则将使用默认值 MANUAL, 并且例程将以 RBU 模式启动。如果这不是第一个例程, 则将按其他现有例程启动时使用的撤消模式来启动该例程。 Undo_tablespace: 说明: 撤消表空间仅用于存储撤消信息。UNDO_TABLESPACE 仅允许在系统管理撤消 (SMU) 模式下使用。例程将使用指定的撤消表空间, 。如果该表空间不存在, 或不是撤消表空间, 或正在由另一例程使用, 则例程 STARTUP 将失败。 默认值: 每个数据库都包含 0 个或更多的撤消表空间。在 SMU 模式下, 将为每个 ORACLE 例程分配一个 (且仅限一个) 撤消表空间。 Instance_name 说明: 在多个例程使用相同服务名的情况下, 用来唯一地标识一个数据库例程。INSTANCE_NAME 不应与 SID 混淆, 它实际上是对在一台主机上共享内存的各个例程的唯一标识。 值范围: 任何字母数字字符。 默认值: 数据库 SID service_names: 说明 : 为 Oracle Net 监听程序用来识别一个服务 (如: 复制环境中的一个特定数据库) 的例程指定服务名。如果该服务没有域, 将附加 DB_DOMAIN 参数。 语法 : SERVICE_NAMES = name1.domain, name2.domain 默认值 : DB_NAME.DB_DOMAIN (如果已定义) local_listener: 说明 : 一个 Oracle Net 地址列表, 用于标识 Oracle Net 监听程序所在的同一台计算机上的数据库例程。所有例程和调度程序都在该监听程序上注册, 以便启用客户机连接。该参数覆盖在 8.1 版本中废弃的 MTS_LISTENER_ADDRESS 和 MTS_MULTIPLE_LISTENERS 参数。 值范围: 一个有效的 Oracle Net 地址列表。 默认值: (ADDRESS_LIST=(Address=(Protocol=TCP)(Host=localhost)(Port=1521)) (Address=(Protocol=IPC)(Key=DBname))) license_sessions_warning: 说明: 指定对并行用户会话数量的警告限制。达到该限制后, 其他用户仍然可以连接, 但一条消息将被写入 ALERT 文件。具有 RESTRICTED SESSION 权限的用户将收到一条警告消息, 表明系统已接近最大容量。 值范围: 0 - LICENSE_MAX_SESSIONS 默认值: 0 license_max_sessions: 说明: 指定允许同时进行的并行用户会话的最大数量。达到该限制后, 只有具有 RESTRICTED SESSION 权限的用户才能连接到服务器。所有其他用户都会收到一条警告消息, 表明已达到系统最大容量的限制。 值范围: 0 - 会话许可的数量。 默认值: 0 license_max_users: 说明: 指定您可在该数据库中创建的用户的最大数量。并行会话使用许可和用户使用许可不应被同时启用。LICENSE_MAX_SESSIONS 或 LICENSE_MAX_USERS 或这两者的值应为零。 值范围: 0 - 用户许可的数量。 默认值: 0 db_block_checksum: 说明: DBWn, ARCH 和 SQL*loader 是否为每一个数据块读或写计算或校验块的校验和。 值范围: TRUE | FALSE 默认值: FALSE shadow_core_dump: 说明: 一个针对 UNIX 的参数, 用于指定是否将 SGA 信息转储到一个生成的核心文件中。如果设置为 FULL, SGA 将被包括在核心转储中。如果设置为 PARTIAL, SGA 将不被转储。 值范围: FULL | PARTIAL 默认值: FULL db_block_checking: 说明: 用于控制是否检查事务处理管理的块有无损坏。 值范围: TRUE | FALSE 默认值: FALSE background_core_dump: 说明: 是否将 SGA 信息转储到一个生成的核心文件中 (用于 UNIX)。 值范围: FULL | PARTIAL 默认值: FULL event: 说明: 由 Oracle 技术支持人员使用, 以调试系统。一般情况下, 不应变更该值。 值范围:不可用。 默认值: 无 user_dump_dest: 说明: 为服务器将以一个用户进程身份在其中写入调试跟踪文件的目录指定路径名。例如, 该目录可这样设置: NT 操作系统上的 C:/ ORACLE/UTRC; UNIX 操作系统上的 /oracle/utrc; 或 VMS 操作系统上的 DISK$UR3:[ORACLE.UTRC]。 值范围: 一个有效的本地路径名, 目录或磁盘。 默认值: 根据操作系统而定 timed_statistics: 说明: 收集操作系统的计时信息, 这些信息可被用来优化数据库和 SQL 语句。要防止因从操作系统请求时间而引起的开销, 请将该值设置为零。将该值设置为 TRUE 对于查看长时间操作的进度也很有用。 值范围: TRUE | FALSE 默认值: FALSE timed_os_statistics: 说明 : 由系统管理员使用, 以收集操作系统统计信息。为了有效地使用资源, 请只在需要时才设置该值。对于专用服务器, 会在用户连接, 断开连接以及弹出调用 (如果超出了指定的时间限制) 的情况下收集操作系统统计信息。对于共享服务器, 将为推入或弹出的调用收集统计信息。 值范围: 以秒为单位的时间。 默认值 : 0 (操作系统统计信息不被刷新) core_dump_dest: 说明: 指定核心转储位置的目录名 (用于 UNIX)。 值范围: 任何有效的目录名。 默认值: ORACLE_HOME/dbs oracle_trace_collection_name: 说明: 指定 Oracle Trace 收集名, 并在输出文件名中使用 (收集定义文件 .cdf 和数据收集文件 .dat)。如果该参数不为空, 且 ORACLE_TRACE_ENABLE = TRUE, 就会启动一个默认的 Oracle Trace 收集, 直到该值再次设置为 NULL。 值范围: 一个有效的收集名, 最长可为 16 个字符 (使用 8 个字符文件名的平台除外)。 默认值: NULL oracle_trace_collection_path: 说明: 指定 Oracle Trace 收集定义文件 (.cdf) 和数据收集文件 (.dat) 所在的目录路径名。 值范围: 完整的目录路径名。 默认值: 根据操作系统而定 (通常是 ORACLE_HOME/otrace/admin/cdf) background_dump_dest: 说明: 指定在 Oracle 操作过程中为后台进程 (LGWR, DBW n 等等) 写入跟踪文件的路径名 (目录或磁盘)。它还定义记录着重要事件和消息的数据库预警文件的位置。 值范围: 任何有效的目录名。 默认值: ORACLE_HOME/rdbms/log (根据操作系统而定) oracle_trace_enable: 说明: 要为服务器启用 Oracle Trace 收集, 请将该值设置为 TRUE。如果设置为 TRUE, 该服务器就可以使用 Oracle Trace。要启动一个收集过程, 请为 ORACLE_TRACE_COLLECTION_NAME 指定一个非空值; 或者使用 Oracle Trace Manager 来启动一个收集。 值范围: TRUE | FALSE 默认值: FALSE oracle_trace_collection_size: 说明: 以字节为单位, 指定 Oracle Trace 收集文件的最大大小。一旦该收集文件的大小达到这个最大值, 收集就会被禁用。如果值范围指定为零, 就表示没有大小限制。 值范围: 0 -4294967295 默认值: 5242880 oracle_trace_facility_path: 说明: 指定 Oracle TRACE 工具的定义文件 (.fdf) 所在的目录路径名。 值范围: 完整的目录路径名。 默认值: ORACLE_HOME/otrace/admin/fdf/ (根据操作系统而定) sql_trace: 说明: 禁用或启用 SQL 跟踪设备。如果设置为 TRUE, 将收集优化信息, 这些信息对改善性能很有用。由于使用 SQL 跟踪设备将引发系统开销, 只应在需要优化信息的情况下使用 TRUE。 值范围: TRUE | FALSE 默认值: FALSE oracle_trace_facility_name: 说明: 指定 Oracle Trace 产品定义文件名 (.fdf 文件名)。该文件包含可为使用 Oracle Trace 数据收集 API 的产品收集的所有事件和数据项的定义信息。Oracle 建议使用默认的文件 ORCLED.FDF。 值范围: 一个有效的设备名, 最长可有 16 个字符。 默认值: oracled max_dump_file_size: 说明: 指定每个跟踪文件的最大大小。如果您担心跟踪文件会占用太多空间, 可更改该限制。如果转储文件可以达到操作系统允许的最大大小, 请将该值指定为“无限制”。 值范围: 0 - 无限制 (可以用 'K' 或 'M' 为单位) 默认值: 10000 块 resource_limit: 说明: 确定是否在数据库概要文件中实行资源限制。如果设置为 FALSE, 将禁用资源限制。如果值为 TRUE, 即启用资源限制。 值范围: TRUE | FALSE 默认值: FALSE resource_manager_plan: 说明: 如果指定该值, 资源管理器将激活计划和例程的所有子项 (子计划, 指令和使用者组)。如果不指定, 资源管理器将被禁用, 但使用 ALTER SYSTEM 命令还可以启用。 值范围: 任何有效的字符串。 默认值: NULL sessions: 说明: 指定用户会话和系统会话的总量。默认数量大于 PROCESSES, 以允许递归会话。 值范围: 任何整数值。 默认值: 派生 (1.1 * PROCESSES + 5) java_soft_sessionspace_limit: 说明: 以字节为单位, 指定在 Java 会话中使用的 Java 内存 的 '软限制'。如果用户的会话持续时间 Java 状态使用过多的内存, Oracle 将生成一个警告并向跟踪文件写入一则消息。 值范围: 0 - 4GB 默认值: 0 cpu_count: 说明: Oracle 可用的 CPU 的数目 (用于计算其他参数值)。请勿更改该值。 值范围: 0 - 无限制。 默认值: 由 Oracle 自动设置 java_max_sessionspace_size: 说明: 以字节为单位, 指定可供在服务器中运行的 Java 程序所使用的最大内存量。它用于存储每次数据库调用的 Java 状态。如果用户的会话持续时间 Java 状态超过了该值, 则该会话会由于内存不足而终止。 值范围: 根据操作系统而定。 默认值: 0 processes: 说明: 指定可同时连接到一个 Oracle Server 上的操作系统用户进程的最大数量。该值应允许执行所有后台进程, 如: 作业队列 (SNP) 进程和并行执行 (Pnnn) 进程。 值范围: 6 到根据操作系统而定的一个值。 默认值: 由 PARALLEL_MAX_SERVERS 确定 control_file_record_keep_time: 说明: 控制文件中可重新使用部分中的记录必须保留的最短时间 (天数)。 值范围: 0 -365 默认值: 7 log_checkpoint_timeout: 说明: 指定距下一个检查点出现的最大时间间隔 (秒数)。将该时间值指定为 0, 将禁用以时间为基础的检查点。较低的值可以缩短例程恢复的时间, 但可能导致磁盘操作过量。 值范围: 0 - 无限制。 默认值: Oracle8i:900 秒。企业版: 1800 秒 recovery_parallelism: 说明: 指定参与例程或介质恢复的进程的数量。如果值为 0 或 1, 就表明恢复将由一个进程以串行方式执行。 值范围: 根据操作系统而定 (不能超过 PARALLEL_MAX_SERVERS)。 默认值: 根据操作系统而定 fast_start_mttr_target: 说明: 指定从单个数据库例程崩溃中恢复所需的时间 (估计秒数)。FAST_START_MTTR_TARGET 将在内部被转换为一组参数, 用于修改数据库的操作, 从而将它的恢复时间控制在总 "恢复平均时间 (MTTR)" 中的一定范围之内。只有具有 "快速启动故障恢复" 功能的版本才支持此参数。 值范围: [0, 3600]。它将计算数据缓冲区高速缓存条目数之上, 且大于最大日志中的块数的限值。 默认值: 0 log_checkpoints_to_alert: 说明: 指定将检查点信息记录到预警文件中。该参数对于确定检查点是否按所需频率出现很有用。 值范围: TRUE | FALSE 默认值: FALSE fast_start_io_target: 说明: 指定在系统崩溃或例程恢复期间需要的 I/O 数量。该值比 DB_BLOCK_MAX_DIRTY_TARGET 对恢复过程的控制更加精确。 值范围: 0 (禁用 I/O 恢复限制) 或 1000, 到高速缓存中的所有缓冲区数。 默认值: 高速缓存中的所有缓冲区数 log_checkpoint_interval: 说明: 指定在出现检查点之前, 必须写入重做日志文件中的 OS 块 (而不是数据库块) 的数量。无论该值如何, 在切换日志时都会出现检查点。较低的值可以缩短例程恢复所需的时间, 但可能导致磁盘操作过量。 值范围: 无限制 (指定 0 即可禁用该参数)。 默认值: 根据操作系统而定 log_buffer: 说明: 以字节为单位, 指定在 LGWR 将重做日志条目写入重做日志文件之前, 用于缓存这些条目的内存量。重做条目保留对数据
目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存 1-19 JAVA 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能表 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-13 临时表空间 8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 表空间 10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 截断一张表 11-18 删除一张表 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取表的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建表时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 表 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的表空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省值 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系中的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数中使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31
目录回到顶部↑第1章 开发成功的Oracle应用 1 1.1 我的方法 2 1.2 黑盒方法 4 1.3 开发数据库应用的正确(和不正确)方法 8 1.3.1 了解Oracle体系结构 8 1.3.2 理解并发控制 14 1.3.3 多版本 19 1.3.4 数据库独立性? 25 1.3.5 “怎么能让应用运行得更快?” 41 1.3.6 DBA与开发人员的关系 45 1.4 小结 46 第2章 体系结构概述 47 2.1 定义数据库和实例 48 2.2 SGA和后台进程 53 2.3 连接Oracle 56 2.3.1 专用服务器 56 2.3.2 共享服务器 57 2.3.3 TCP/IP连接的基本原理 58 2.4 小结 61 第3章 文件 63 .3.1 参数文件 64 3.1.1 什么是参数? 65 3.1.2 遗留的init.ora参数文件 67 3.1.3 服务器参数文件 69 3.1.4 参数文件小结 75 3.2 跟踪文件 76 3.2.1 请求的跟踪文件 77 3.2.2 针对内部错误生成的跟踪文件 80 3.2.3 跟踪文件小结 83 3.3 警告文件 83 3.4 数据文件 86 3.4.1 简要回顾文件系统机制 86 3.4.2 Oracle数据库中的存储层次体系 87 3.4.3 字典管理和本地管理的表空间 91 3.5 临时文件 93 3.6 控制文件 95 3.7 重做日志文件 95 3.7.1 在线重做日志 96 3.7.2 归档重做日志 98 3.8 密码文件 100 3.9 修改跟踪文件 103 3.10 闪回日志文件 104 3.10.1 闪回数据库 104 3.10.2 闪回恢复区 105 3.11 DMP文件(EXP/IMP文件) 106 3.12 数据泵文件 107 3.13 平面文件 110 3.14 小结 111 第4章 内存结构 113 4.1 进程全局区和用户全局区 113 4.1.1 手动PGA内存管理 114 4.1.2 自动PGA内存管理 121 4.1.3 手动和自动内存管理的选择 131 4.1.4 PGA和UGA小结 132 4.2 系统全局区 133 4.2.1 固定SGA 137 4.2.2 重做缓冲区 137 4.2.3 块缓冲区缓存 138 4.2.4 共享 145 4.2.5 大 148 4.2.6 Java 149 4.2.7 流 150 4.2.8 自动SGA内存管理 150 4.3 小结 151 第5章 Oracle进程 153 5.1 服务器进程 153 5.1.1 专用服务器连接 154 5.1.2 共享服务器连接 156 5.1.3 连接与会话 157 5.1.4 专用服务器共享服务器 163 5.1.5 专用/共享服务器小结 166 5.2 后台进程 167 5.2.1 中心后台进程 168 5.2.2 工具后台进程 175 5.3 从属进程 178 5.3.1 I/O从属进程 178 5.3.2 并行查询从属进程 179 5.4 小结 179 第6章 锁 181 6.1 什么是锁? 181 6.2 锁定问题 184 6.2.1 丢失更新 184 6.2.2 悲观锁定 185 6.2.3 乐观锁定 187 6.2.4 乐观锁定还是悲观锁定? 197 6.2.5 阻塞 198 6.2.6 死锁 201 6.2.7 锁升级 206 6.3 锁类型 206 6.3.1 DML锁 207 6.3.2 DDL锁 215 6.3.3 闩 218 6.3.4 手动锁定和用户定义锁 226 6.4 小结 227 第7章 并发与多版本 229 7.1 什么是并发控制? 229 7.2 事务隔离级别 230 7.2.1 READ UNCOMMITTED 232 7.2.2 READ COMMITTED 233 7.2.3 REPEATABLE READ 235 7.2.4 SERIALIZABLE 237 7.2.5 READ ONLY 239 7.3 多版本读一致性的含义 240 7.3.1 一种会失败的常用数据仓库技术 240 7.3.2 解释热表上超出期望的I/O 241 7.4 写一致性 244 7.4.1 一致读和当前读 244 7.4.2 查看重启动 247 7.4.3 为什么重启动对我们很重要? 250 7.5 小结 251 第8章 事务 253 8.1 事务控制语句 254 8.2 原子性 255 8.2.1 语句级原子性 255 8.2.2 过程级原子性 257 8.2.3 事务级原子性 260 8.3 完整性约束和事务 260 8.3.1 IMMEDIATE约束 260 8.3.2 DEFERRABLE约束和级联更新 261 8.4 不好的事务习惯 263 8.4.1 在循环中提交? 264 8.4.2 使用自动提交? 270 8.5 分布式事务 271 8.6 自治事务 273 8.6.1 自治事务如何工作? 273 8.6.2 何时使用自治事务? 276 8.7 小结 279 第9章 redo与undo 281 9.1 什么是redo? 281 9.2 什么是undo? 282 9.3 redo和undo如何协作? 285 9.4 提交和回滚处理 289 9.4.1 COMMIT做什么? 289 9.4.2 ROLLBACK做什么? 296 9.5 分析redo 297 9.5.1 测量redo 298 9.5.2 redo生成和BEFORE/AFTER触发器 300 9.5.3 我能关掉重做日志生成吗? 306 9.5.4 为什么不能分配一个新日志? 310 9.5.5 块清除 312 9.5.6 日志竞争 315 9.5.7 临时表和redo/undo 317 9.6 分析undo 321 9.6.1 什么操作会生成最多和最少的undo? 321 9.6.2 ORA-01555: snapshot too old错误 323 9.7 小结 334 第10章 数据库表 335 10.1 表类型 335 10.2 术语 337 10.2.1 段 337 10.2.2 段空间管理 339 10.2.3 高水位线 340 10.2.4 freelists 342 10.2.5 PCTFREE和PCTUSED 345 10.2.6 LOGGING和NOLOGGING 348 10.2.7 INITRANS和MAXTRANS 349 10.3 堆组织表 349 10.4 索引组织表 352 10.5 索引聚簇表 368 10.6 散列聚簇表 376 10.7 有序散列聚簇表 386 10.8 嵌套表 390 10.8.1 嵌套表语法 390 10.8.2 嵌套表存储 399 10.8.3 嵌套表小结 402 10.9 临时表 402 10.10 对象表 410 10.11 小结 418 第11章 索引 421 11.1 Oracle索引概述 422 11.2 B*树索引 423 11.2.1 索引键压缩 426 11.2.2 反向键索引 429 11.2.3 降序索引 435 11.2.4 什么情况下应该使用B*树索引? 437 11.2.5 B*树小结 448 11.3 位图索引 448 11.3.1 什么情况下应该使用位图索引? 449 11.3.2 位图联结索引 453 11.3.3 位图索引小结 455 11.4 基于函数的索引 456 11.4.1 重要的实现细节 456 11.4.2 一个简单的基于函数的索引例子 457 11.4.3 只对部分行建立索引 465 11.4.4 实现有选择的惟一性 467 11.4.5 关于CASE的警告 467 11.4.6 关于ORA-01743的警告 469 11.4.7 基于函数的索引小结 470 11.5 应用域索引 470 11.6 关于索引的常见问题和神话 472 11.6.1 视图能使用索引吗? 472 11.6.2 Null和索引能协作吗? 472 11.6.3 外键是否应该加索引? 475 11.6.4 为什么没有使用我的索引? 476 11.6.5 神话:索引中从不重用空间 483 11.6.6 神话:最有差别的元素应该在最前面 486 11.7 小结 490 第12章 数据类型 491 12.1 Oracle数据类型概述 491 12.2 字符和二进制串类型 494 12.2.1 NLS概述 494 12.2.2 字符串 497 12.3 二进制串:RAW类型 504 12.4 数值类型 506 12.4.1 NUMBER类型的语法和用法 509 12.4.2 BINARY_FLOAT/BINARY_DOUBLE类型的语法和用法 513 12.4.3 非固有数值类型 513 12.4.4 性能考虑 514 12.5 LONG类型 515 12.5.1 LONG和LONG RAW类型的限制 516 12.5.2 处理遗留的LONG类型 517 12.6 DATE、TIMESTAMP和INTERVAL类型 523 12.6.1 格式 523 12.6.2 DATE类型 525 12.6.3 TIMESTAMP类型 533 12.6.4 INTERVAL类型 541 12.7 LOB 类型 544 12.7.1 内部LOB 545 12.7.2 BFILE 557 12.8 ROWID/UROWID类型 559 12.9 小结 560 第13章 分区 561 13.1 分区概述 561 13.1.1 提高可用性 562 13.1.2 减少管理负担 564 13.1.3 改善语句性能 569 13.2 表分区机制 571 13.2.1 区间分区 571 13.2.2 散列分区 574 13.2.3 列表分区 579 13.2.4 组合分区 581 13.2.5 行移动 583 13.2.6 表分区机制小结 585 13.3 索引分区 586 13.3.1 局部索引与全局索引 587 13.3.2 局部索引 587 13.3.3 全局索引 594 13.4 再论分区和性能 610 13.5 审计和段空间压缩 617 13.6 小结 618 第14章 并行执行 619 14.1 何时使用并行执行 620 14.2 并行查询 622 14.3 并行DML 628 14.4 并行DDL 631 14.4.1 并行DDL和使用外部表的数据加载 632 14.4.2 并行DDL和区段截断 634 14.5 并行恢复 643 14.6 过程并行化 643 14.6.1 并行管道函数 644 14.6.2 DIY并行化 648 14.7 小结 652 第15章 数据加载和卸载 655 15.1 SQL*Loader 655 15.1.1 用SQLLDR加载数据的FAQ 660 15.1.2 SQLLDR警告 686 15.1.3 SQLLDR小结 686 15.2 外部表 687 15.2.1 建立外部表 688 15.2.2 处理错误 693 15.2.3 使用外部表加载不同的文件 697 15.2.4 多用户问题 697 15.2.5 外部表小结 698 15.3 平面文件卸载 698 15.4 数据泵卸载 708 15.5 小结 710 索引 711
一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。 3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。 4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。 5.Where子句可以接收From子句输出的数据,而HAVING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。 6.在SQL语句中,用于向表中插入数据的语句是Insert。 7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select语句。 8.使用Describe命令可以显示表的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。 11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。 12.根据约束的作用域,约束可以分为表级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。 13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID的主键约束。 ALTER TABLE Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 . 17. 从存储结构的角度来说,Oracle数据库可分为物理结构和逻辑结构。 18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM系统表空间。 19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。 20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。尤其适合多用户环境中,可以生成唯一的序列号而没有磁盘I/O或事务处理锁定开销。 21. 一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READ WRITE)状态。 二、选择 1.在全局存储区SGA中,哪部分内存区域是循环使用的?( B ) A.数据缓冲区 B.日志缓冲区 C. 共享 D.大 2.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资源?( D ) A.DBWR B.LGWR C. SMON D.PMON 3. 如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图?( A ) A. DBA视图 B. ALL视图 C. USER视图 D. 动态性能视图 4. 下列哪一项是Oracle数据库中最小的存储分配单元? ( C ) A. 表空间 B. 段 C. 盘区 D. 数据块 5. 下面的各选项中哪一个正确描述了Oracle数据库的逻辑存储结构? ( A ) A. 表空间由段组成,段由盘区组成,盘区由数据块组成 B. 段由表空间组成,表空间由盘区组成,盘区由数据块组成 C. 盘区由数据块组成,数据块由段组成,段由表空间组成 D. 数据块由段组成,段由盘区组成,盘区由表空间组成 6. 下列的哪个子句在SELECT语句中用于排序结果集?( D ) A. Having子句 B. Where子句 C. From子句 D. Order by子句 7. Having子句的作用是( B )。 a. 查询结果的分组条件 B. 组的筛选条件 C. 限定返回的行的判断条件 D. 对结果集进行排序 8. 下列哪个函数可以把一个列中的所有值相加求和? ( B ) A MAX B. SUM C. COUNT D. AVG 9. 下列哪个子句是SELECT语句中必选项?( A ) A. FROM B.WHERE C.HAVING D. ORDER BY 10. 下列哪个子句实现对一个结果集进行分组和汇总?( D ) A.HAVING B. ORDER BY C. WHERE D. GROUP BY 11. 查询一个表的总记录数,可以采用_________统计函数。( C ) A. AVG(*) B. SUM(*) C. COUNT(*) D.MAX(*) 12. 要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和T_Name列。如果要插入一行数据,这一行的T_ID值是100,T_Name值是RFUIT。应该使用的SQL语句是_____。( A ) A. INSERT INTO Type Values(100, ‘FRUIT’) B. SELECT * FROM Type WHERE T_ID=100 AND T_NAME=’FRUIT’ C. UPDATE SET T_ID=100 FROM Types WHERE T_Name=’FRUIT’ D. DELET * FROM Types WHERE T_ID=100 AND T_Name=’FRUIT’ 13. 用_____语句修改表的一行或多行数据。( A ) A.Update B.set C.Select D.Where 14. 使用什么命令可以清除表中所有的内容? ( D ) A.INSERT B.UPDATE C. DELETE D.TRUNCATE 15.关于模式的描述下列哪一项不正确?( C ) A.表或索引等模式对象一定属于某一个模式 B.在Oracle数据库中,模式与数据库用户是一一对应的 C.一个表可以属于多个模式 D.一个模式可以拥有多个表 16.唯一约束与主键约束的一个区别是?( D ) A.唯一约束的列的值不可以有重复值 B.唯一约束的列的值可以不是唯一的 C.唯一约束的列不可以为空值 D.唯一约束的列可以为空值 17. 只能存储一个值的变量是哪种变量?( B ) A. 游标 B. 标量变量 C. 游标变量 D. 记录变量 18. 声明%TPYE类型的变量时,服务器将会做什么操作?( A ) A. 为该变量检索数据库列的数据类型 B.复制一个变量 C.检索数据库中的数据 D.为该变量检索列的数据类型和值 19.下列哪一项可以正确地引用该记录变量中的一个值?( B ) A.rec_abc(1) B. rec_abc(1).col C. rec_abc.col D.rec_abc.first() 20. 在定义游标时使用的FOR UPDATE子句的作用是______。( C ) A.执行游标 B. 执行SQL语句的UPDATE语句 C.对要更新表的列进行加锁 D. 都不对 21. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记录添加到视图,应当在定义视图时指定下列哪一个子句?( C ) A.WITH GRANT OPTION B. WITH READ ONLY C. WITH CHECK OPTION D. WITH CHECK ONLY 22. 如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字典视图?( D ) A. DBA_VIEWS B. DBA_OBJECTS C. DBA_CLU_COLUMNS D. DBA_UPDATABLE_COLUMNS 23. 在下列各选项中,关于序列的描述哪一项是不正确的?( D ) A. 序列是Oracle提供的用于产生一系列唯一数字的数据库对象 B.序列并不占用实际的存储空间 C.使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其中,NEXTVAL 将返回序列生成的下一个值,而CURRVAL返回序列的当前值 D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值 24. 在下列各选项中,关于同义词的描述哪一项是不正确的?( B ) A.同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称 B.在创建同义词时,所替代的模式对象必须存在 C.Oracle中的同义词分为公有同义词和私有同义词 D.公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有 25. 下列哪个锁模式不属于Oracle?( D ) A. 共享锁 B.排他锁 C. 行级共享锁 D. 死锁 26. 想在另一个模式中创建表,用户最少应该具有什么系统权限?( B ) A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) A.SET ROLE ALL B. SET ROLE ENABLE ALL C. ALTER SESSION ALL D.ALTER USER ROLE ALL 28. 下列哪一个操作可以用来为一个备份操作手动分配通道?( A ) A.ALLOCATE CHANNEL B. CREATE CHANNEL C. CHANNEL ALLOCATE D. CREATE LINK 29. 下列哪一个命令用来显示RMAN通道的配置信息?( C ) A. LIST B. DISPLAY C.SHOW D.都可以 30. 下列哪一个命令可以用来执行不完全恢复?( B ) A. RESTORE DATABASE UNTIL B. RECOVER DATABASE UNTIL C. RECOVER DATA UNTIL D. RESTORE DATA UNTIL 三、简答题 1. 说明数据库模式与用户之间的区别。 答案: 数据库模式与用户之间的区别在于:用户是数据库的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系列逻辑数据结构或对象的集合,是数据库中对象的组织和管理单位。 2. 简要游标的作用和游标操作的基本步骤。 答案: 游标的作用是将数据库的中数据检索出来后缓存,可以被PL/SQL程序一行一行的读取并处理。支持一条、多条、零条记录的处理。 游标的基本操作步骤为: (1)声明游标,使用查询来定义游标的列和行 (2)打开游标,使用PL/SQL命令OPEN来打开一个声明的游标 (3)提取数据,从游标中重复提取每条记录到数据结构中,直到数据集合被提交 (4)关闭游标,使用完游标后将其关闭 3.Oracle数据库的工作模式有哪两种?它们之间有有何区别? 答案: 在Oracle数据库中,数据库的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。其中,在专用服务器模式中为每个用户进程创建一个服务器进程,用户进程与服务器进程之间是1:1的关系;在共享服务器模式中,一个服务器进程可以为多个用户进程服务器。 4.说明数据库内存结构中SGA和PGA的组成,以及这两个内存区存放信息的区别。 答案: SGA区由数据缓冲区共享、重做日志缓冲区、大型JAVA构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA区数据供多个用户共享,所以SGA区又称为共享全局区。用户对数据库的各种操作主要在SGA区中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。PGA区是在用户进程连接数据库,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小。 5. 说明数据库表空间的种类,以及不同类型表空间的作用。 答案: 数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。 SYSTEM表空间主要用于存储数据库的数据字典、PL/SQL程序的源代码和解释代码、数据库对象的定义。撤销表空间专门进行回退信息的自动管理。临时表空间是专门进行临时段管理的表空间。用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 6. 说明Oracle 10g数据库文本初始化参数文件与服务器初始化参数文件的区别。 答案: 文本初始化参数文件是一个本地的初始化参数文件,而服务器初始化参数文件是一个放在数据库服务器端的共享的二进制初始化参数文件。文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件中,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及各个部分的作用。 答案: PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的,语句块之间可以相互嵌套,每个语句块完成特定的功能。  声明部分:以关键字DECLARE开始,BEGIN结束。主要用于声明变量、常量、数据类型、游标、异常处理名称以及本地(局部)子程序定义等。  执行部分:是PL/SQL块的功能实现部分,以关键字BEGIN开始,EXCEPTION或END结束(如果PL/SQL块中没有异常处理部分,则以END结束)。该部分通过变量赋值、流程控制、数据查询、数据操纵、数据定义、事务控制、游标处理等实现块的功能。 异常处理部分:以关键字EXCEPTION开始,END结束。该部分用于处理该块执行过程中产生的异常。 8. 说明触发器的种类和对应的作用对象、触发事件。 答案: 触发器包括DML触发器、INSTEAD-OF触发器和系统触发器。其中,DML触发器主要作用于表,其事件有INSERT、UPDATE、DELETE;INSTEAD-OF触发器主要主用于视图,其事件有INSERT、UPDATE、DELETE;系统触发器主要是DML事件和系统事件发生时调用的触发器,其中DML事件包括CREATE、DROP、ALTER等,系统事件包括LOGON、LOGOFF、STARTUP、SHUTDOWN、SERVERERROR等。 9.简述Oracle数据库角色的种类、作用,以及如何利用角色为用户授权。 答案: Oracle数据库中角色分为系统预定义的角色和用户自定义的角色两类。角色是一系列权限的集合,可以先将权限授予角色,然后将角色授予具有相同权限的用户。 四、求解题 现有关系数据库如下: S(SNO,SNAME,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 其中,S为供应商,包含属性的含义依次是供应商代码、供应商名字、供应商所在城市;P为零件,包含属性的含义依次是零件代码、零件名字、颜色、重量;J为工程项目,包含属性的含义依次是工程项目代码、工程项目名字、工程项目所在城市;SPJ为供货关系,包含属性的含义依次是供应商代码、零件代码、工程项目代码,某供应商向某个项目供应数量的零件数量。 请用SQL语言完成如下问题: (1)查询供应工程J1零件P1的供应商号码SNO (2)查询供应工程J1零件为红色的供应商号码SNO (3)查询没有使用北京供应商生产的红色零件的工程号JNO 五、设计题(E-图) 六、PL/SQL语言程序设计题。 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生: 现要建立关于系、学生、班级的数据库,关系模式为: 班CLASS(班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num) 学生STUDENT(学号studentid,姓名name,年龄age,班号classid) 系DEPARTMENT(系号deptid,系名deptname) 试用PL/SQL语言完成以下功能: 1. 建表,在定义中要求声明: (1) 每个表的主外键。 (2) 每个班级的人数不能超过30人。 (3) 学生的年龄介于15到40岁之间。 (4) 学生姓名不能为空。 2. 插入如下数据 CLASS表 classid subject deptname enrolltime num 101 软件 计算机 1995 20 102 微电子 计算机 1996 30 111 无机化学 化学 1995 29 112 高分子化学 化学 1996 25 121 统计数学 数学 1995 20 131 现代语言 中文 1996 20 141 国际贸易 经济 1997 30 142 国际金融 经济 1996 14 STUDENT表 studentid name age classid 8101 张三 18 101 8102 钱四 16 121 8103 王玲 17 131 8105 李飞 19 102 8109 赵四 18 141 8110 李可 20 142 8201 张飞 18 111 8302 周瑜 16 112 8203 王亮 17 111 8305 董庆 19 102 8409 赵龙 18 101 8510 李丽 20 142 DEPARTMENT表 deptid deptname 001 数学 002 计算机 003 化学 004 中文 005 经济 3. 学校又新增加了一个物理系,编号为006 4. 学生张三退学,请更新相关的表。 1、有一张表test,有3个字段id,name,parentid。parentid是指父亲的id,请写一个sql语句,找出当过爷爷的id和name。 2、有一张学生表student,字段有student_id,name,即学号,名字。 还有一张选课表,字段有student_id,lesson_id。 还有一张课程表,字段lesson_id,lesson_name。 学生和课程是多对多的关系。 写一个sql语句,找出所有选了全部课程的学生。 3、有一张表person表,字段有id,name,age。age是年龄。 写一个sql语句,找出年龄最接近的2个人。 如有下面4条记录: 1,a,18 2,b,20 3,c,25 4,d,26 则输出3,4 emp表和dept表完成下列练习 Emp员工表 empno ename job Mgr Hiredate Sal Comm Deptno 员工号 员工姓名 工作 上级编号 受雇日期 薪金 佣金 部门编号 Dept表 Deptno Dname Loc 部门编号 部门名称 地点 1.列出至少有一个员工的所有部门。 select dept_id from s_emp where userid is not null; 2.列出薪金比“chad”多的所有员工。 select id,salary from s_emp where salary>(select salary from s_emp where first_name='Chad'); 3.列出所有员工的姓名及其直接上级的姓名。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+); 4.列出受雇日期早于其直接上级的所有员工。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+) and l.start_date>e.start_date; 5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。 6.列出所有“CLERK”(办事员)的姓名及其部门名称。 7.列出最低薪金大于1500的各种工作。 8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。 9.列出薪金高于公司平均薪金的所有员工。 10.列出与“SCOTT”从事相同工作的所有员工。 11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 13.列出在每个部门工作的员工数量、平均工资和平均服务期限。 14.列出所有员工的姓名、部门名称和工资。 15.列出从事同一种工作但属于不同部门的员工的一种组合。 16.列出所有部门的详细信息和部门人数。 17.列出各种工作的最低工资。 18.列出各个部门的MANAGER(经理)的最低薪金。 19.列出所有员工的年工资,按年薪从低到高排序。 原文:http://www.2xyd.cn/showtopic-524.aspx Oracle习题二附答案 使用scott/tiger的emp表完成练习 更多编程相关:http://www.2xyd.cn/showforum-11.aspx 答案: 1. select distinct dname from dept where deptno in (select distinct deptno from emp); 要查部门编号如果存在于emp 表中,说明这个部门有员工。 2. select ename,job,mgr,hiredate,sal from emp where sal> (select sal from emp where ename='SMITH'); 3. select e.ename, e.mgr , w.ename from emp e, emp w where e.mgr=w.empno; 4. select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate from emp e, emp w where e.mgr=w.empno and e.hiredate< w.hiredate; 5. select e.ename,e.hiredate, d.dname,d.deptno from emp e, dept d where e.deptno (+)=d.deptno; 本例子使用的是外连接, 也可以用右连接。 select e.ename,e.hiredate, d.dname,d.deptno from emp e right join dept d on e.deptno=d.deptno; 6. select e.ename,e.hiredate,e.job, d.dname,d.deptno from emp e, dept d where e.deptno =d.deptno and e.job=upper('clerk'); 7. select job, min(sal) from emp group by job having min(sal)>1500; 8. select e.ename,d.dname from emp e,dept d 2楼 where e.deptno=d.deptno and d.dname=upper('sales'); 或者: select ename from emp where deptno = (select deptno from dept where dname=upper('SALES')); 9. select ename, job, sal from emp where sal> (select avg(sal) from emp ); 10. select ename, job from emp where job = (select job from emp where ename=upper('scott')); 11. select ename, sal,job from emp where sal in (select sal from emp where deptno=30); 12. select ename, sal,job from emp where sal >all (select sal from emp where deptno=30); 或者 select ename ,sal from emp where sal> (select max(sal) from emp where deptno=30); 13. select d.deptno,d.dname, count(e.ename), avg(e.sal), avg(months_between(sysdate,e.hiredate)) from emp e, dept d where e.deptno(+)= d.deptno group by d.deptno,dname; 或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。 select e.*,d.dname , from (select deptno, count(ename) ,avg(sal),avg(months_between(sysdate,hiredate)) from emp group by deptno) e, dept d where e.deptno =d.deptno; 14. select d.dname, e.ename, sal+nvl(comm,0) from emp e, dept d where d.deptno=e.deptno; 15. select e.ename,e.job, e.deptno ,d.job, d.deptno from emp e, emp d where e.job=d.job and e.deptno<>d.deptno; 16. select count(e.ename),d.dname from emp e, dept d where e.deptno(+)= d.deptno group by e.deptno,d.dname; 或者写成 select d.deptno,e.*,d.dname from (select deptno,count(ename) from emp group by deptno) e,dept d where e.deptno(+)= d.deptno; 17. select job,min(sal+nvl(comm,0))from emp group by job; 18. select deptno,min(sal) from emp where job=upper('manager') group by deptno ; 19. select ename , (sal+nvl(comm,0))*12 yearsal from emp order by yearsal ; --1、列出至少有一个雇员的所有部门   select distinct dname from dept where deptno in (select distinct deptno from emp);   --2、列出薪金比"SMITH"多的所有雇员   select ename,sal from emp where sal>(select sal from emp where ename=upper('smith'));   --3、列出所有雇员的姓名及其直接上级的姓名   select e.ename,m.ename from emp e,emp m where e.mgr=m.empno(+);   --4、列出入职日期早于其直接上级的所有雇员   select ename from emp e where hiredate<(select hiredate from emp where empno=e.mgr);   --5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门   select dname,ename from dept d left join emp e on d.deptno=e.deptno;   --6、列出所有“CLERK”(办事员)的姓名及其部门名称   select ename,dname from emp e left join dept d on e.deptno=d.deptno where job=upper('clerk');   --7、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录   select job,min(sal) from emp group by job having min(sal)>1500;   --8、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号   select ename from emp where deptno = (select deptno from dept where dname=uppder('SALES'))   --9、列出薪金高于公司平均水平的所有雇员   select ename from emp where sal>(select avg(sal) from emp);   --10、列出与“SCOTT”从事相同工作的所有雇员   select ename from emp where job=(select job from emp where ename=upper('scott'));   --11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金   select ename,sal from emp where sal in (select sal from emp where deptno=30);   --12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金   select ename ,sal from emp where sal>(select max(sal) from emp where deptno=30);   --13、列出每个部门的信息以及该部门中雇员的数量   select d.deptno,dname,count(ename) from dept d left join emp e on (d.deptno=e.deptno)   group by d.deptno,dname   --14、列出所有雇员的雇员名称、部门名称和薪金   Select e.ename,d.dname,e.sal from emp e left join dept d on (d.deptno=e.deptno)   --15、列出从事同一种工作但属于不同部门的雇员的不同组合   Select tba.ename,tbb.ename,tba.job,tbb.job,tba.deptno,tba.deptno   From emp tba,emp tbb   Where tba.job=tbb.job and tba.deptno<>tbb.deptno   --16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员   Select dept.deptno,dname,loc,count(empno)   From dept,emp   Where dept.deptno=emp.deptno(+)   Group by dept.deptno,dname,loc   --17、列出各种类别工作的最低工资   Select min(sal) from emp group by job   --18、列出各个部门的MANAGER(经理)的最低薪金   Select deptno,min(sal) from emp where job=upper(‘manager’) group by deptno   --19、列出按年薪排序的所有雇员的年薪   select (sal+nvl(comm,0))*12 as avn from emp order by avn   --20、列出薪金水平处于第四位的雇员   Select * from (Select ename,sal, rank() over (order by sal desc) as grade from emp) where grade=4 --1、选择部门30中的雇员   select * from emp where deptno=30;   --2、列出所有办事员的姓名、编号和部门   select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where job=upper(‘clerk’);   --3、找出佣金高于薪金的雇员   select * from emp where comm>sal;   --4、找出佣金高于薪金60%的雇员   select * from emp where comm>sal*0.6   --5、找出部门10中所有经理和部门20中的所有办事员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘));   --6、找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘)) or (job<>upper(‘manager’) and job<>upper(‘clerk’) and sal>=2000)   --7、找出收取佣金的雇员的不同工作   select distinct job from emp where comm>0;   --8、找出不收取佣金或收取的佣金低于100的雇员   select * from emp where nvl(comm,0)<100;   --9、找出各月最后一天受雇的所有雇员   select * from emp where hiredate= last_day(hiredate);   --10、找出早于25年之前受雇的雇员   select * from emp where months_between(sysdate,hiredate)/12>25;   select * from emp where hiredate0;   --25、以年、月和日显示所有雇员的服务年限   Select months_between(sysdate,hiredate)/12 as “年”, months_between(sysdate,hiredate) as “月”, sysdate-hiredate as “日” from emp

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧