sql语句能连等么,快来,立结

dqlstp 2009-02-02 05:22:36
譬如说A=B=C这样的句子就报错,那么应该怎样解决A=B=C=....N这样的问题呢,程序是用c#写的
...全文
599 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsen 2009-02-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 djc7811 的回复:]
string str=a;
for(int i=0;i <n;i++)
{
ssql=ssql + " and " + i +" =" + a;
}
[/Quote]

用循环拼成条件
然后执行
hbmy9107lwt 2009-02-03
  • 打赏
  • 举报
回复
chagel 2009-02-02
  • 打赏
  • 举报
回复
动态列?

string GetSqlWhere(IList columns)
{
if(columns == null || columns.Length == 0)
return String.Empty;
else if(columns.Length == 1)
return String.Format("{0} = {1}", columns[0]);

string first = columns[0];
StringBuilder builder = new StringBuilder(columns.Length);
for(int i=1; i < columns.Length; i++)
{
builder.Append(first);
builder.Append("=");
builder.Append(columns[i]);
builder.Append(" AND ");
}
return builder.ToString().SubString(0, builder.Length-1);
}
PowerRock 2009-02-02
  • 打赏
  • 举报
回复
貌似SQL只能用AND来实现。

如果要经常用到的话你可以使用存储过程,这样就不用重复写这么麻烦的SQL语句了,还提高了效率。
ProjectDD 2009-02-02
  • 打赏
  • 举报
回复
可以用in ,between not in ,like

some, any等语句或运算符来做,特别是如果针对一个集合时

除上面说的逻辑运算符and ,or以外
睡神在睡觉 2009-02-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sprc_lcl 的回复:]
一点都不笨,就这么搞地..SQL说:我只认这种..
[/Quote]

对头~
sprc_lcl 2009-02-02
  • 打赏
  • 举报
回复
一点都不笨,就这么搞地..SQL说:我只认这种..
dai78 2009-02-02
  • 打赏
  • 举报
回复
string str=a;
for(int i=0;i<n;i++)
{
ssql=ssql + " and " + i +" =" + a;
}
xiaoyanwei2000 2009-02-02
  • 打赏
  • 举报
回复
你的ABC是什么类型的,值类型的可以
chenguang79 2009-02-02
  • 打赏
  • 举报
回复
如果是sql语句的话。它没有连等,只能用where a=b and b=c and a=c只能这样了
dqlstp 2009-02-02
  • 打赏
  • 举报
回复
这个方法有点笨吧。。。。。而且n比较大
lzj033 2009-02-02
  • 打赏
  • 举报
回复
A=B and B=C
ljhcy99 2009-02-02
  • 打赏
  • 举报
回复
......
where 1=1
and A=B
and B=C
and C=..
内容简介 《SQL Server 2008编程入门经典(第3版)》由浅入深逐步介绍了SQL Server数据库的高级主题,重点讨论了SQL Server 2008的特殊功能以及与其他编程环境的不同之处。作者Robert Vieria是Microsoft SQL,Server方面的权威,他采用通俗易懂的方法揭示了SQL Server-2008核心组件的重要更改。 《SQL Server 2008编程入门经典(第3版)》首先概述了数据库设计的概念,介绍了如何用SQL Setver 2008实现这些基本概念。然后,讲述了RDBMS(关系数据库管理系统)的功能和它在开发系统架构方面的优势。SQL Server 2008的新增内容和更改包括:DATE和TIME数据类型、hierarchyID数据类型、MERGE命令和多行插入,以及递归查询等。《SQL Server 2008编程入门经典(第3版)》旨在帮助您快速地掌握Microsoft SQL Selwer2008的编程技术。 编辑推荐 《SQL Server 2008编程入门经典(第3版)》主要内容 RDBMS如何存储、管理和检索数据 创建和修改表的方法 数据库范式的多种形式 编写脚本和使用存储过程的技巧 索引的优缺点 锁和死锁对系统性能的各种影响 理解触发器及其使用方式 《SQL Server 2008编程入门经典(第3版)》读者对象 《SQL Server 2008编程入门经典(第3版)》适合于希望全面了解数据库设计概念和学习SQL的开发人员。读者具有数据库方面的基础知识有助于更好地理解《SQL Server 2008编程入门经典(第3版)》的内容。 作者简介 作者:(美国)韦拉(Rovert Vieria) 译者:孙皓 马煜 合著者:杨大川 韦拉(Robert Vieria),是畅销书作者。他从1 980年开始深入学习计算技术,从构建和修复计算机软件包,到通过Z80、Basic以及6502汇编语言进行编程。1 983年,Robert开始攻读计算机信息系统的学位,随后转而研究“PC故障”并开始使用数据库语言(从dBase到SQL Server)进行编程,于1990年获得商业管理学位。此外,他还获得了CMA、MCSD、MCT以及MCDBA等认证。Robert目前是俄勒冈州波兰特市的Huron Consuiting Group的Stockarnp事务所的DBA团队领导人,偶尔也会在数据库开发、商业智能和其他主题方面发表演讲。 其他责任者简介: 杨大川,毕业于美国纽约州立大学布法罗分校计算机系,曾担任美国硅谷Annuncio Software等公司的首席工程师,归国后,他于2003年创办了北京迈思奇科技有限公司并担任技术总监,为国内外多家大中型企业提供商业智能咨询和项目实施服务,并逐渐从高新技术外包开发走向了自主知识产权产品的研发道路。他曾被誉为微软全球最有价值专家(MVP);2008年荣获“中关村年度优秀创业留学人员”称号:现担任中国科学院软件学院的兼职教授。 目录 第1章 RDBMS基础:SQLServer数据库的构成 1.1 数据库对象概述 1.1.1 数据库对象 1.1.2 事务日志 1.1.3 最基本的数据库对象:表 1.1.4 文件组 1.1.5 数据库关系图 1.1.6 视图 1.1.7 存储过程 1.1.8 用户自定义函数 1.1.9 用户和角色 1.1.10 规则 1.1.11 默认值 1.1.12 用户自定义数据类型 1.1.13 全文目录 1.2 SQL Server数据类型 1.3 SQL Server对象标识符 1.3.1 需要命名的对象 1.3.2 命名规则 1.4 本章小结 第2章 SQL Server管理工具 2.1 联机丛书 2.2 SQLServer配置管理器 2.2.1 服务管理 2.2.2 网络配置 2.2.3 协议 2.2.4 客户端 2.3 SQLServer Management Studio 2.3.1 启动Management Studio 2.3.2 “查询”窗口 2.4 SQL Server集成服务(SSIS) 2.5 BulkCopy Program(bcp) 2.6 SQL ServerProfiler 2.7 sqlcmd 2.8 Power Shell 2.9 本章小结 第3章 T-SQL基本语句 3.1 基本SELECT语句 3.1.1 SELECT语句与FROM子句 3.1.2 WHERE子句 3.1.3 ORDERBY子句 3.1.4 使用GROUPBY子句聚合数据 3.1.5 使用HAVING子句给分组设置条件 3.1.6 使用FORXML子句输出XML 3.1.7 通过OPTION子句利用提示 3.1.8 DISTINCT和ALL谓词 3.2 使用INSERT语句添加数据 3.2.1 多行插入 3.2.2 INSERTINTOSELECT语句 3.3 用UPDATE语句更改数据 3.4 DELETE语句 3.5 本章小结 3.6 练习 第4章 连接 4.1 连接 4.2 内部连接 4.3 外部连接 4.3.1 简单的外部连接 4.3.2 处理更复杂的外部连接 4.4 完全连接 4.5 交叉连接 4.6 JOIN语句的早期语法结构 4.6.1 内部连接的早期语法结构 4.6.2 外部连接的早期语法结构 4.6.3 交叉连接的早期语法结构 4.7 联合 4.8 本章小结 4.9 练习 第5章 创建和修改数据表 5.1 SQLserver中的对象名 5.1.1 模式名 5.1.2 数据库名 5.1.3 通过服务器命名 5.1.4 回顾默认值 5.2 CReATE语句 5.2.1 CREATEDATAASE 5.2.2 CREATETABLE 5.3 ALTER语句 5.3.1 AITERDATABASE 5.3.2 ALTERTABLE 5.4 DROP语句 5.5 使用GUI工具 5.5.1 使用ManagementStudio创建数据库 5.5.2 回到代码:使用MariagementStudio创建脚本的基础知识 5.6 本章小结 5.7 练习 第6章 约束 6.1 约束的类型 6.1.1 域约束 6.1.2 实体约束 6.1.3 参照完整性约束 6.2 约束命名 6.3 键约束 6.3.1 主键约束 6.3.2 外键约束 6.3.3 唯一约束 6.4 CHECK约束 6.5 DEFAuLT约束 6.5.1 在cREATETABLE语句中定义DEFAULT约束 6.5.2 在已存在的表中添加DEFAUIT约束 6.6 禁用约束 6.6.1 在创建约束时忽略无效的数据 6.6.2 临时禁用已存在的约束 6.7 规则和默认值 6.7.1 规则 6.7.2 默认值 6.7.3 确定哪个表和数据类型使用给定的规则或默认值 6.8 用于实现数据完整性的触发器 6.9 如何选择 6.1 0本章小结 第7章 更复杂的查询 7.1 子查询的概念 7.2 关联子查询 7.2.1 关联子查询的工作原理 7.2.2 在WHERE子句中的关联子查询 7.2.3 处理NULL数据——ISNULL函数 7.3 派生表 7.4 EXISTS运算符 7.5 混合数据类型:CAST和CONVERT 7.6 MERGE命令 7.6.1 BYl.ARGET和BYSOURCE 7.6.2 OUTPUT子句 7.7 性能方面的考虑 7.8 本章小结 7.9 练习 第8章 规范化和其他基本设计问题 8.1 表 8.2 保持数据“规范 8.2.1 准备工作 8.2.2 第一范式 8.2.3 第二范式 8.2.4 第三范式 8.2.5 其他范式 8.3 关系 8.3.1 一对一关系 8.3.2 一对一或一对多关系 8.3.3 多对多关系 8.4 数据库关系图 8.4.1 表 8.4.2 添加和删除表 8.4.3 关系 8.5 反规范化 8.6 超出规范化的一些规则 8.6.1 保持简单 8.6.2 选择数据类型 8.6.3 尽量进行存储 8.7 创建一个快速示例 8.7.1 创建数据库 8.7.2 添加数据库关系图和初始表 8.7.3 添加关系 8.7.4 添加一些约束 8.8 本章小结 8.9 练习 第9章 SQLServer存储和索引结构 9.1 SQLServer存储机制 9.1.1 数据库 9.1.2 区段 9.1.3 页 9.1.4 行 9.1.5 稀疏列 9.2 理解索引 9.2.1 平衡树(B.树) 9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种索引 9.4.1 选择性 9.4.2 注意成本 9.4.3 选择群集索引 9.4.4 列顺序问题 9.4.5 修改索引 9.4.6 删除索引 9.4.7 从查询计划中获取提示 9.4.8 使用数据库引擎调整向导 9.5 维护索引 9.5.1 碎片 9.5.2 确定碎片和页拆分的可能性 9.6 本章小结 9.7 练习 第10章 视图 10.1 简单的视图 10.2 更加复杂的视图 10.3 使用T-SOL编辑视图 10.4 删除视图 10.5 在MaliagementStudio中创建和编辑视图 10.6 审查:显示现有的代码 10.7 保护代码:加密视图 10.8 关于模式绑定 10.9 使用VIEWMETADATA使视图看起来像表一样 10.10 索引(物化)视图 10.11 本章小结 10.12 练习 第11章 编写脚本和批处理 11.1 脚本的基础知识 11.1.1 USE语句 11.1.2 声明变量 11.1.3 使用@@IDENTITY 11.1.4 使用@@ROWCOUNT 11.2 批处理 11.2.1 批处理中的错误 11.2.2 何时使用批处理 11.3 sqlcmd 11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过返回值确认成功或失败 12.6 错误处理 12.6.1 以前的方式 12.6.2 在错误发生前处理错误 12.6.3 手动引发错误 12.6.4 添加自定义的错误消息 12.7 存储过程的优点 12.7.1 创建可调用的进程 12.7.2 为了安伞性使用存储过程 12.7.3 存储过程和性能 12.8 扩展存储过程(XP) 12.9 递归简介 12.10 调试 12.10.1 启动调试器 12.10.2 调试器的组成 12.10.3 使用调试器 12.11 .NET程序集 12.12 本章小结 第13章 用户自定义函数 13.1 UDF的定义 13.2 返回标量值的uDF 13.3 返回表的UDF 13.4 调试用户自定义函数 13.5 数据库中的.NET 13.6 本章小结 13.7 练习 第14章 事务和锁 14.1 事务 14.1.1 BEGINTRAN 14.1.2 COMMITTRAN 14.1.3 ROLLBACKTRAN 14.1.4 SAVETRAN 14.2 SQLServer日志的工作方式 14.2.1 失败和恢复 14.2.2 隐式事务 14.3 锁和并发 14.3.1 通过锁可以防止的问题 14.3.2 可以锁定的资源 14.3.3 锁升级和锁对性能的影响 14.3.4 锁定模式 14.3.5 锁的兼容性 14.3.6 指定一种特有的锁定类型——优化器提示 14.4 设置隔离级别 14.5 处理死锁(1205错误) …… 第15章 触发器 第16章 初识XML 第17章 Reporting Services 第18章 使用Integration Services进行集成 第19章 扮演管理员的角色 附录
内容简介 《SQL Server 2008编程入门经典(第3版)》由浅入深逐步介绍了SQL Server数据库的高级主题,重点讨论了SQL Server 2008的特殊功能以及与其他编程环境的不同之处。作者Robert Vieria是Microsoft SQL,Server方面的权威,他采用通俗易懂的方法揭示了SQL Server-2008核心组件的重要更改。 《SQL Server 2008编程入门经典(第3版)》首先概述了数据库设计的概念,介绍了如何用SQL Setver 2008实现这些基本概念。然后,讲述了RDBMS(关系数据库管理系统)的功能和它在开发系统架构方面的优势。SQL Server 2008的新增内容和更改包括:DATE和TIME数据类型、hierarchyID数据类型、MERGE命令和多行插入,以及递归查询等。《SQL Server 2008编程入门经典(第3版)》旨在帮助您快速地掌握Microsoft SQL Selwer2008的编程技术。 编辑推荐 《SQL Server 2008编程入门经典(第3版)》主要内容 RDBMS如何存储、管理和检索数据 创建和修改表的方法 数据库范式的多种形式 编写脚本和使用存储过程的技巧 索引的优缺点 锁和死锁对系统性能的各种影响 理解触发器及其使用方式 《SQL Server 2008编程入门经典(第3版)》读者对象 《SQL Server 2008编程入门经典(第3版)》适合于希望全面了解数据库设计概念和学习SQL的开发人员。读者具有数据库方面的基础知识有助于更好地理解《SQL Server 2008编程入门经典(第3版)》的内容。 作者简介 作者:(美国)韦拉(Rovert Vieria) 译者:孙皓 马煜 合著者:杨大川 韦拉(Robert Vieria),是畅销书作者。他从1 980年开始深入学习计算技术,从构建和修复计算机软件包,到通过Z80、Basic以及6502汇编语言进行编程。1 983年,Robert开始攻读计算机信息系统的学位,随后转而研究“PC故障”并开始使用数据库语言(从dBase到SQL Server)进行编程,于1990年获得商业管理学位。此外,他还获得了CMA、MCSD、MCT以及MCDBA等认证。Robert目前是俄勒冈州波兰特市的Huron Consuiting Group的Stockarnp事务所的DBA团队领导人,偶尔也会在数据库开发、商业智能和其他主题方面发表演讲。 其他责任者简介: 杨大川,毕业于美国纽约州立大学布法罗分校计算机系,曾担任美国硅谷Annuncio Software等公司的首席工程师,归国后,他于2003年创办了北京迈思奇科技有限公司并担任技术总监,为国内外多家大中型企业提供商业智能咨询和项目实施服务,并逐渐从高新技术外包开发走向了自主知识产权产品的研发道路。他曾被誉为微软全球最有价值专家(MVP);2008年荣获“中关村年度优秀创业留学人员”称号:现担任中国科学院软件学院的兼职教授。 目录 第1章 RDBMS基础:SQLServer数据库的构成 1.1 数据库对象概述 1.1.1 数据库对象 1.1.2 事务日志 1.1.3 最基本的数据库对象:表 1.1.4 文件组 1.1.5 数据库关系图 1.1.6 视图 1.1.7 存储过程 1.1.8 用户自定义函数 1.1.9 用户和角色 1.1.10 规则 1.1.11 默认值 1.1.12 用户自定义数据类型 1.1.13 全文目录 1.2 SQL Server数据类型 1.3 SQL Server对象标识符 1.3.1 需要命名的对象 1.3.2 命名规则 1.4 本章小结 第2章 SQL Server管理工具 2.1 联机丛书 2.2 SQLServer配置管理器 2.2.1 服务管理 2.2.2 网络配置 2.2.3 协议 2.2.4 客户端 2.3 SQLServer Management Studio 2.3.1 启动Management Studio 2.3.2 “查询”窗口 2.4 SQL Server集成服务(SSIS) 2.5 BulkCopy Program(bcp) 2.6 SQL ServerProfiler 2.7 sqlcmd 2.8 Power Shell 2.9 本章小结 第3章 T-SQL基本语句 3.1 基本SELECT语句 3.1.1 SELECT语句与FROM子句 3.1.2 WHERE子句 3.1.3 ORDERBY子句 3.1.4 使用GROUPBY子句聚合数据 3.1.5 使用HAVING子句给分组设置条件 3.1.6 使用FORXML子句输出XML 3.1.7 通过OPTION子句利用提示 3.1.8 DISTINCT和ALL谓词 3.2 使用INSERT语句添加数据 3.2.1 多行插入 3.2.2 INSERTINTOSELECT语句 3.3 用UPDATE语句更改数据 3.4 DELETE语句 3.5 本章小结 3.6 练习 第4章 连接 4.1 连接 4.2 内部连接 4.3 外部连接 4.3.1 简单的外部连接 4.3.2 处理更复杂的外部连接 4.4 完全连接 4.5 交叉连接 4.6 JOIN语句的早期语法结构 4.6.1 内部连接的早期语法结构 4.6.2 外部连接的早期语法结构 4.6.3 交叉连接的早期语法结构 4.7 联合 4.8 本章小结 4.9 练习 第5章 创建和修改数据表 5.1 SQLserver中的对象名 5.1.1 模式名 5.1.2 数据库名 5.1.3 通过服务器命名 5.1.4 回顾默认值 5.2 CReATE语句 5.2.1 CREATEDATAASE 5.2.2 CREATETABLE 5.3 ALTER语句 5.3.1 AITERDATABASE 5.3.2 ALTERTABLE 5.4 DROP语句 5.5 使用GUI工具 5.5.1 使用ManagementStudio创建数据库 5.5.2 回到代码:使用MariagementStudio创建脚本的基础知识 5.6 本章小结 5.7 练习 第6章 约束 6.1 约束的类型 6.1.1 域约束 6.1.2 实体约束 6.1.3 参照完整性约束 6.2 约束命名 6.3 键约束 6.3.1 主键约束 6.3.2 外键约束 6.3.3 唯一约束 6.4 CHECK约束 6.5 DEFAuLT约束 6.5.1 在cREATETABLE语句中定义DEFAULT约束 6.5.2 在已存在的表中添加DEFAUIT约束 6.6 禁用约束 6.6.1 在创建约束时忽略无效的数据 6.6.2 临时禁用已存在的约束 6.7 规则和默认值 6.7.1 规则 6.7.2 默认值 6.7.3 确定哪个表和数据类型使用给定的规则或默认值 6.8 用于实现数据完整性的触发器 6.9 如何选择 6.1 0本章小结 第7章 更复杂的查询 7.1 子查询的概念 7.2 关联子查询 7.2.1 关联子查询的工作原理 7.2.2 在WHERE子句中的关联子查询 7.2.3 处理NULL数据——ISNULL函数 7.3 派生表 7.4 EXISTS运算符 7.5 混合数据类型:CAST和CONVERT 7.6 MERGE命令 7.6.1 BYl.ARGET和BYSOURCE 7.6.2 OUTPUT子句 7.7 性能方面的考虑 7.8 本章小结 7.9 练习 第8章 规范化和其他基本设计问题 8.1 表 8.2 保持数据“规范 8.2.1 准备工作 8.2.2 第一范式 8.2.3 第二范式 8.2.4 第三范式 8.2.5 其他范式 8.3 关系 8.3.1 一对一关系 8.3.2 一对一或一对多关系 8.3.3 多对多关系 8.4 数据库关系图 8.4.1 表 8.4.2 添加和删除表 8.4.3 关系 8.5 反规范化 8.6 超出规范化的一些规则 8.6.1 保持简单 8.6.2 选择数据类型 8.6.3 尽量进行存储 8.7 创建一个快速示例 8.7.1 创建数据库 8.7.2 添加数据库关系图和初始表 8.7.3 添加关系 8.7.4 添加一些约束 8.8 本章小结 8.9 练习 第9章 SQLServer存储和索引结构 9.1 SQLServer存储机制 9.1.1 数据库 9.1.2 区段 9.1.3 页 9.1.4 行 9.1.5 稀疏列 9.2 理解索引 9.2.1 平衡树(B.树) 9.2.2 SQLServer中访问数据的方式 9.3 创建、修改和删除索引 9.3.1 CREATEINDEX语句 9.3.2 创建XML索引 9.3.3 随约束创建的隐含索引 9.3.4 在稀疏列和地理空间列上创建索引 9.4 明智地选择——在何时何地使用何种索引 9.4.1 选择性 9.4.2 注意成本 9.4.3 选择群集索引 9.4.4 列顺序问题 9.4.5 修改索引 9.4.6 删除索引 9.4.7 从查询计划中获取提示 9.4.8 使用数据库引擎调整向导 9.5 维护索引 9.5.1 碎片 9.5.2 确定碎片和页拆分的可能性 9.6 本章小结 9.7 练习 第10章 视图 10.1 简单的视图 10.2 更加复杂的视图 10.3 使用T-SOL编辑视图 10.4 删除视图 10.5 在MaliagementStudio中创建和编辑视图 10.6 审查:显示现有的代码 10.7 保护代码:加密视图 10.8 关于模式绑定 10.9 使用VIEWMETADATA使视图看起来像表一样 10.10 索引(物化)视图 10.11 本章小结 10.12 练习 第11章 编写脚本和批处理 11.1 脚本的基础知识 11.1.1 USE语句 11.1.2 声明变量 11.1.3 使用@@IDENTITY 11.1.4 使用@@ROWCOUNT 11.2 批处理 11.2.1 批处理中的错误 11.2.2 何时使用批处理 11.3 sqlcmd 11.4 动态SQL:用ExEC命令动态生成代码 11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过返回值确认成功或失败 12.6 错误处理 12.6.1 以前的方式 12.6.2 在错误发生前处理错误 12.6.3 手动引发错误 12.6.4 添加自定义的错误消息 12.7 存储过程的优点 12.7.1 创建可调用的进程 12.7.2 为了安伞性使用存储过程 12.7.3 存储过程和性能 12.8 扩展存储过程(XP) 12.9 递归简介 12.10 调试 12.10.1 启动调试器 12.10.2 调试器的组成 12.10.3 使用调试器 12.11 .NET程序集 12.12 本章小结 第13章 用户自定义函数 13.1 UDF的定义 13.2 返回标量值的uDF 13.3 返回表的UDF 13.4 调试用户自定义函数 13.5 数据库中的.NET 13.6 本章小结 13.7 练习 第14章 事务和锁 14.1 事务 14.1.1 BEGINTRAN 14.1.2 COMMITTRAN 14.1.3 ROLLBACKTRAN 14.1.4 SAVETRAN 14.2 SQLServer日志的工作方式 14.2.1 失败和恢复 14.2.2 隐式事务 14.3 锁和并发 14.3.1 通过锁可以防止的问题 14.3.2 可以锁定的资源 14.3.3 锁升级和锁对性能的影响 14.3.4 锁定模式 14.3.5 锁的兼容性 14.3.6 指定一种特有的锁定类型——优化器提示 14.4 设置隔离级别 14.5 处理死锁(1205错误) …… 第15章 触发器 第16章 初识XML 第17章 Reporting Services 第18章 使用Integration Services进行集成 第19章 扮演管理员的角色 附录
第一部分 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

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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