《数据访问宝典 实现最优性能可伸缩性的数据库应用程序》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:(美)古德森,斯图亚特著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302220718
  • 页数:256 页
图书介绍:本书展示了如何显著提升数据库应用程序中的性能,揭示了中间件影响应用程序性能的原因,并指导开发人员设计和编写在每个主要环境中能够得到较好性能的代码。

第1章 性能问题与以前不同了 1

1.1 现在的情况如何 3

1.1.1 网络 4

1.1.2 数据库驱动程序 4

1.1.3 环境 5

1.1.4 数据库应用程序 6

1.2 本书的目标 7

第2章 提高性能的设计策略 9

2.1 应用程序 10

2.1.1 数据库连接 10

2.1.2 事务管理 19

2.1.3 SQL语句 24

2.1.4 数据检索 26

2.1.5 扩展的安全性 31

2.2 静态SQL与动态SQL 36

2.3 网络 37

2.4 数据库驱动程序 38

2.5 理解数据库系统 39

2.6 使用对象/关系映射工具 40

2.7 小结 41

第3章 为什么数据库中间件很重要 43

3.1 数据库中间件是什么 44

3.2 数据库中间件影响应用程序性能的原理 44

3.3 数据库驱动程序 45

3.3.1 数据库驱动程序的功能 45

3.3.2 数据库驱动程序的架构 47

3.3.3 运行时性能调校选项 52

3.3.4 配置数据库驱动程序/数据提供程序 53

3.4 小结 62

第4章 为提高性能而调校环境 63

4.1 运行时环境(Java与.NET) 64

4.1.1 JVM 65

4.1.2 .NET CLR 69

4.2 操作系统 69

4.3 网络 72

4.3.1 数据库协议包 72

4.3.2 网络包 75

4.3.3 配置包的容量 77

4.3.4 分析网络路径 78

4.3.5 减少网络转发和争用 80

4.3.6 避免网络包分片 82

4.3.7 增加网络带宽 88

4.4 硬件 88

4.4.1 内存 89

4.4.2 磁盘 91

4.4.3 CPU(处理器) 93

4.4.4 网络适配器 96

4.4.5 虚拟化 98

4.5 小结 99

第5章 ODBC应用程序:编写良好的代码 101

5.1 管理连接 102

5.1.1 高效地建立连接 102

5.1.2 使用连接池 102

5.1.3 一次建立一个连接 103

5.1.4 为多条语句使用一个连接 103

5.1.5 高效地获取数据库信息和驱动程序信息 103

5.2 管理事务 104

5.2.1 管理事务提交 104

5.2.2 选择正确的事务模型 111

5.3 执行SQL语句 111

5.3.1 使用存储过程 111

5.3.2 使用语句与预先编译的语句 113

5.3.3 使用参数数组 113

5.3.4 使用游标库 115

5.4 检索数据 115

5.4.1 检索长数据 116

5.4.2 限制检索的数据量 117

5.4.3 使用绑定列 118

5.4.4 使用SQLExtendedFetch而不是SQLFetch 119

5.4.5 确定结果集中记录的数量 120

5.4.6 选择正确的数据类型 121

5.5 更新数据 121

5.6 使用目录函数 122

5.6.1 尽可能不使用目录函数 122

5.6.2 避免查找模式 123

5.6.3 使用假查询确定表的特征 123

5.7 小结 125

第6章 JDBC应用程序:编写良好的代码 127

6.1 管理连接 128

6.1.1 高效地建立连接 128

6.1.2 使用连接池 128

6.1.3 一次建立一个连接 129

6.1.4 为多条语句使用一个连接 129

6.1.5 高效地断开连接 129

6.1.6 高效地获取数据库信息和驱动程序信息 131

6.2 管理事务 131

6.2.1 管理事务提交 131

6.2.2 选择正确的事务模型 136

6.3 执行SQL语句 137

6.3.1 使用存储过程 137

6.3.2 使用语句与预先编译的语句 139

6.3.3 使用批处理与预先编译的语句 140

6.3.4 使用getXXX方法从结果集获取数据 141

6.3.5 检索自动生成的键 142

6.4 检索数据 143

6.4.1 检索长数据 143

6.4.2 限制检索的数据量 144

6.4.3 确定结果集中记录的数量 145

6.4.4 选择正确的数据类型 146

6.4.5 选择正确的游标 146

6.5 更新数据 149

6.5.1 使用定位更新、插入和删除(updateXXX方法) 149

6.5.2 使用getBestRowIdentifier()方法优化更新和删除 150

6.6 使用数据库元数据方法 151

6.6.1 尽可能不使用数据库元数据方法 151

6.6.2 避免查找模式 151

6.6.3 使用假查询确定表的特征 152

6.7 小结 154

第7章 .NET应用程序:编写良好的代码 155

7.1 管理连接 156

7.1.1 高效地建立连接 156

7.1.2 使用连接池 156

7.1.3 一次建立一个连接 157

7.1.4 高效地断开连接 157

7.1.5 高效地获取数据库信息和数据提供程序信息 159

7.2 管理事务 159

7.2.1 管理事务提交 159

7.2.2 选择正确的事务模型 164

7.3 执行SQL语句 165

7.3.1 执行检索小数据或不检索数据的SQL语句 165

7.3.2 使用Command.Prepare方法 167

7.3.3 使用参数数组/批处理与预先编译的语句 168

7.3.4 使用批量加载 169

7.3.5 使用纯托管提供程序 170

7.4 选择.NET对象与方法 171

7.4.1 避免使用CommandBuilder对象 171

7.4.2 在DataReader和DataSet对象之间做出选择 172

7.4.3 使用GetXXX方法从DataReader对象获取数据 172

7.5 检索数据 173

7.5.1 检索长数据 173

7.5.2 限制检索的数据量 174

7.5.3 选择正确的数据类型 175

7.6 更新数据 176

7.7 小结 177

第8章 连接池和语句池 179

8.1 JDBC连接池模型 179

8.1.1 配置连接池 180

8.1.2 指导原则 181

8.2 ODBC连接池模型 182

8.2.1 根据ODBC规范定义的连接池 182

8.2.2 配置连接池 183

8.2.3 指导原则 184

8.3 ADO.NET连接池模型 184

8.3.1 配置连接池 184

8.3.2 指导原则 185

8.4 为连接池使用重新认证 186

8.5 使用语句池 189

8.5.1 联合使用语句池和连接池 189

8.5.2 指导原则 191

8.6 小结:整体考虑 191

第9章 开发良好的基准 193

9.1 开发基准 194

9.1.1 定义基准目标 194

9.1.2 再现产品环境 195

9.1.3 隔离测试环境 199

9.1.4 再现工作负荷 199

9.1.5 测量正确的任务 200

9.1.6 在足够长的时间中进行测量 201

9.1.7 准备数据库 203

9.1.8 一次进行一个修改 204

9.1.9 访问其他因素 204

9.2 基准实例 205

9.3 小结 209

第10章 性能问题调试 211

10.1 从何处开始 212

10.2 数据库应用程序部署中的改变 214

10.3 数据库应用程序 214

10.4 数据库驱动程序 216

10.4.1 运行时性能调校选项 216

10.4.2 驱动程序架构 216

10.5 环境 217

10.5.1 运行时环境(Java和.NET) 218

10.5.2 操作系统 218

10.5.3 网络 218

10.5.4 硬件 219

10.6 案例研究 221

10.6.1 案例研究1 221

10.6.2 案例研究2 224

10.6.3 案例研究3 226

10.6.4 案例研究4 227

10.6.5 案例研究5 229

10.6.6 案例研究6 232

10.6.7 案例研究7 234

10.6.8 案例研究8 235

10.7 小结 237

第11章 面向服务架构(SOA)环境中的数据访问 239

11.1 面向服务的架构(SOA)是什么 240

11.2 SOA环境中数据访问的指导原则 241

11.2.1 除了SOA专家之外还需要数据专家 241

11.2.2 使数据访问和业务逻辑相分离 242

11.2.3 针对性能进行设计和调校 244

11.2.4 考虑数据集成 244

11.3 小结 246

附录 术语表 247