《规划与建立高性能SQL Server 6.5数据库》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)(R.D.斯科奈德)Robert D.Schneider著;李小坚等译
  • 出 版 社:机械工业出版社;西蒙与舒斯特国际出版公司
  • 出版年份:1997
  • ISBN:7111058895
  • 页数:403 页
图书介绍:(美)(R.D.斯科奈德)RobertD.Schneider著;李小坚等译.规划与建立高性能SQLServer6.5数据库.机械工业出版社;西蒙与舒斯特国际出版公司

目录 1

译者的话 1

前言 1

第1章 建立优化测试环境 1

1.1 测试前应遵循的步骤 1

1.1.1 硬件因素 1

1.1.2 软件因素 2

1.1.3 数据因素 2

1.1.4 制定测试计划 2

1.1.5 操作因素 4

1.2 测试过程中应遵循的步骤 5

1.3 测试后应遵循的步骤 6

1.3.1 正式评估 6

1.3.2 确定下一步骤 6

第1部分 创建一个设计优良的数据库 10

第2章 规范化设计 10

2.1 第一范式 10

2.2 第二范式 10

2.3 第三范式 12

2.4 何时不用规范化 13

2.4.1 计算值 13

2.4.2 历史信息 14

2.4.3 分区 15

2.5 特殊数据类型 16

2.5.1 变长度字符串 16

2.5.2 变长度二进制数据 19

2.5.3 文本和图形 19

2.6 约束 23

2.6.1 主关键字约束 25

2.6.1.1 标识属性 28

2.6.1.2 标识初值 29

2.6.1.3 标识增量 30

2.6.1.4 TIMESTAMP 31

2.6.2 外关键字约束 32

2.6.3 唯一性约束 34

2.6.4 检验约束 34

2.6.5 规则 37

2.6.6 缺省值 37

2.7 用户自定义数据类型 39

2.7.1 ANSI规范和SQL Server 45

2.7.2 禁止约束 47

2.8 使用视图 48

2.9 依赖 50

第3章 检索策略 53

3.1.1 簇式索引 54

3.1 索引结构 54

3.1.2 非簇式索引 56

3.1.3 叶子页与非叶子页 56

3.2 主关键字 57

3.3 筛选列 59

3.4 连接列 61

3.5 宽索引关键字与窄索引关键字 63

3.6 唯一索引和非唯一索引 65

3.7 字符索引和数值索引 65

3.8 复合索引问题 66

3.9 避免高度重复索引 69

3.10 簇式索引和已预排序的数据 71

3.11 簇式索引和数据重组 71

3.12 排序列 71

3.13 索引和特殊数据类型 73

3.14 索引与工作表 74

3.15 多余的索引 76

3.16 索引填充因子 77

3.17 索引存放位置 81

4.2 优化器的特征和算法 83

4.3 优化器性能诊断 83

4.1 什么是优化器 83

第4章 了解Microsoft SQL Server优化器 83

4.3.1 使用SHOWPLAN 84

4.3.2 关于SHOWPLAN的一些论题 90

4.4 编程考虑 116

4.4.1 给优化器以提示 117

4.4.2 查询处理选项 126

4.5 UPDATE STATISTICS命令 128

第2部分 改善数据库访问 131

第5章 SQL技巧 131

5.1.1 标准连接 132

5.1 连接的类型 132

5.1.2 交叉连接 133

5.1.3 内连接 133

5.1.4 左外连接 133

5.1.5 右外连接 134

5.1.6 全外连接 135

5.1.7 数值型与非数值型连接和搜索 136

5.2 SQL批处理 138

5.3 CASE表达式 139

5.3.1 COALESCE函数 141

5.3.2 NULLIF函数 142

5.4 子字符串搜索 142

5.5.2 全局临时表 145

5.5.1 局部临时表 145

5.5 临时表和工作表 145

5.5.3 隐式工作表 146

5.5.4 显式临时表 146

5.5.5 改善临时表的性能 147

5.6 子查询 148

5.7 视图(VIEW)开销 149

5.8 在SQL中使用数学运算 152

5.9 联合(UNION) 154

5.10 排序(SORTING) 156

5.11 上卷(ROLLUP) 159

5.12 CUBE 161

5.13 从存储过程中插入 163

5.14 插入和缺省值 164

5.15 更新扩展 164

5.16 多表删除 165

5.17 大规模删除操作 165

第6章 存储过程和触发器 167

6.1 存储过程 167

6.1.1 创建和维护存储过程 167

6.1.2 为什么使用存储过程 170

6.1.3 经常用到的例程 170

6.1.4 自动启动存储过程 172

6.1.5 扩展的存储过程 174

6.1.6 客户/服务器 178

6.1.7 安全性 178

6.1.8 改善存储过程的性能 180

6.1.9 重新编译存储过程 180

6.2 触发器 181

6.2.1 检验跟踪 181

6.2.2 数据复制 182

6.2.3 级联删除 182

7.1 事务 184

第7章 一般技巧 184

7.1.1 事务和数据定义语言(DDL) 185

7.1.2 嵌套事务 186

7.1.3 保存点 188

7.1.4 避免长事务 189

7.1.5 什么时候不用事务 190

7.1.6 BEGIN TRANSACTION和COMMIT TRANSACTION的位置 191

7.1.7 向已有的应用程序中加入事务 192

7.1.8 事务日志和文字/图形 192

7.1.9 隐式事务 193

7.1.10 事务放弃控制 195

7.1.11 分布式事务 195

7.1.12 错误检查 198

7.2 游标 202

7.2.1 服务器游标 202

7.2.2 不灵敏游标选项 204

7.2.3 可滚动游标 205

7.2.4 只读游标 206

7.2.5 利用游标检测数据的改变 206

7.2.6 更新 208

7.2.7 游标释放 209

7.3 并发性 209

7.3.1 锁问题 210

7.3.2 避免锁溢出 212

7.3.3 事务隔离级别 213

7.4 其余技巧 223

第8章 客户/服务器研究 226

8.1 评估网络能力 226

8.2 最小化网络通信量 226

8.2.1 改善分布式查询 226

8.2.2 利用复制 226

8.2.3 只读取必要的列 227

8.2.4 用连接代替顺序的SELECTS 227

8.2.5 利用存储过程 229

8.2.6 只选择必要的行 229

8.3 调试网络 230

8.2.7 只更新改变的列 230

8.4 客户/服务器连接的持续 231

第3部分 优化SQL Server引擎 233

第9章 监控工具 233

9.1 使用性能监视器 233

9.1.1 对象 234

9.1.2 设置警报 234

9.1.3 登录 235

9.1.4 报告 237

9.2 sp_monitor 237

9.3 数据库一致性检查工具(DBCC) 238

9.4 跟踪标志 239

9.5 sp_configure 241

9.6 SQL Trace 243

9.7 全局变量 247

9.7.1 @@CONNECTION 248

9.7.2 @@CPU_BUSY 248

9.7.3 @@CURSOR_ROWS 248

9.7.4 @@DATEFIRST 248

9.7.5 @@DBTS 249

9.7.6 @@ERROR 249

9.7.10 @@IO_BUSY 250

9.7.9 @@IDEL 250

9.7.7 @@FETCH_STATUS 250

9.7.8 @@IDENTITY 250

9.7.11 @@LANGID 251

9.7.12 @@LANGUAGE 251

9.7.13 @@MAX_CONNECTIONS 251

9.7.14 @@MAX_PRECISION 251

9.7.15 @@MICROSOFTVERSION 251

9.7.16 @@NESTLEVEL 251

9.7.17 @@OPTIONS 252

9.7.18 @@PACK_RECEIVED 253

9.7.21 @@PROCID 254

9.7.20 @@PCAKET_ERRORS 254

9.7.19 @@PACK_SENT 254

9.7.22 @@REMSERVER 255

9.7.23 @@ROWCOUNT 255

9.7.24 @@SERVERNAME 255

9.7.25 @@SERVICENAME 255

9.7.26 @@SPID 256

9.7.27 @@TEXTSIZE 256

9.7.28 @@TIMETICKS 256

9.7.33 @@VERSION 257

9.7.32 @@TRANCOUNT 257

9.7.31 @@TOTAL_WRITE 257

9.7.29 @@TOTAL_ERRORS 257

9.7.30 @@TOTAL_READ 257

第10章 Windows NT网络操作系统集成 258

10.1 机器问题 258

10.1.1 CPU 258

10.1.2 内存 258

10.1.3 磁盘驱动器 258

10.4 配置选项 259

10.4.1 可交换文件 259

10.3 性能监视器 259

10.2 专用服务器和非专用服务器 259

10.4.2 优先级的增加 260

10.4.3 服务器任务 260

第11章 磁盘管理 261

11.1 磁盘存储概念 261

11.1.1 页 261

11.1.2 盘区 261

11.1.3 分配单元 261

11.1.4 设备 261

11.1.5 数据库 264

11.1.6 物理名 264

11.2.1 RAID 265

11.2 磁盘存储选项 265

11.1.7 逻辑名 265

11.2.2 操作系统磁盘条带化 266

11.2.3 镜像 267

11.2.4 段 269

11.2.5 文件系统类型 269

11.3 DBCC工具与磁盘信息 270

11.3.1 CHECKALLOC 270

11.3.2 CHECKCATALOG 271

11.3.3 CHECKTABLE 271

11.3.4 CHECKDB 272

11.3.5 CHECKIDENT 273

11.3.6 DBREINDEX 273

11.3.7 DBREPAIR 274

11.3.8 NEWALLOC 274

11.3.9 SHOW_STATISTICS 276

11.3.10 SHOWCONTIG 277

11.3.11 SHRINKDB 277

11.3.12 TEXTALLOC 278

11.3.13 TEXTALL 279

11.3.14 UPDATEUSAGE 279

11.4.1 磁盘碎片 280

11.4 碎片 280

11.4.2 数据库碎片 281

11.5 sp_spaceused存储过程 282

11.6 索引填充因子 283

11.7 I/O主题 283

11.7.1 异步I/O 283

11.7.2 惰性写 284

11.7.3 优先读 284

11.7.4 统计信息 286

11.7.5 举例 288

11.8 在RAM中存储tempdb 291

11.7.6 配置参数 291

第12章 引擎参数 293

12.1 内存 293

12.1.1 设置内存参数 293

12.1.2 数据缓存 293

12.1.3 存储过程高速缓存 300

12.2 锁 303

12.2.1 锁定义 303

12.2.2 锁对象 304

12.2.3 配置参数 310

12.3 线程 313

12.3.1 Windows NT线程对象 313

12.3.2 多处理器研究 316

12.4.1 描述事务日志 317

12.4 日志 317

12.4.2 改变事务日志大小 320

12.4.3 放置事务日志 323

12.4.4 监视日志使用情况 324

12.4.5 转储事务日志 325

12.4.6 截断事务日志 327

12.4.7 使用检查点 328

12.4.9 事务日志和镜像 330

12.4.10 SQL Server日志对象 330

12.4.8 管理日志的使用 330

12.5 DBCC工具与引擎信息 334

12.5.1 MEMUSAGE 334

12.5.2 OPENTRAN 337

12.5.3 PERFMON 338

12.5.4 PINTABLE 338

12.5.5 UNPINTABLE 339

12.5.6 FROCCACHE 339

12.5.7 ROWLOCK 339

12.5.8 SQLPERF 340

12.5.9 USEROPTIONS 342

13.1 sp_helpdb 344

第13章 数据库参数与用户配置 344

13.2 多个小数据库和单个大数据库 345

13.3 直接更改系统表 345

13.4 开放数据库的数量 346

13.5 开放对象的数量 346

13.6 存储过程缓冲 346

13.10 恢复间隔 347

13.11 控制用户连接 347

13.12 SELECT INTO/大块拷贝 347

13.9 数据库大小 347

13.8 数据库优先读高速缓冲 347

13.7 为加载创建(CREATE FOR LOAD) 347

13.13 仅为DBO使用 348

13.14 在恢复时无检验点 348

13.15 只读 348

13.16 单用户 349

13.17 缺省空列 349

13.18 在检验点截断日志 349

13.19 用户配置和管理 350

13.19.1 SQL Server用户对象 350

13.19.2 统计信息 350

13.19.3 例子 351

14.2 配制 354

14.2.1 打包大小设定 354

14.1.3 NET——每秒的网络写操作 354

14.2.2 远程访问 354

第14章 网络参数 354

14.1.1 NET——命令队列长度 354

14.1 统计量 354

14.1.2 NET——每秒的网络读操作 354

14.2.3 远程登录时间溢出 355

14.2.4 远程查询时间溢出 355

14.3 SQL Server用户自定义计数器对象 356

第15章 SQL Enterprise Manager 358

15.1 术语介绍 358

15.2 实例 358

16.2.1 报表 363

16.2.2 分发信息 363

第16章 高效复制 363

16.2 为什么要复制 363

16.1 什么是复制 363

16.2.3 只读数据 364

16.3 复制概念 364

16.3.1 紧凑一致性 364

16.3.2 松散一致性 364

16.3.7 分布数据库 365

16.3.6 订阅者 365

16.3.4 文章(条目) 365

16.3.5 出版物 365

16.3.3 数据出版 365

16.3.8 日志阅读进程 368

16.3.9 同步进程 368

16.3.10 分发进程 368

16.4 SQL Server复制—出版DB对象 368

16.4.1 统计 368

16.5 SQL Server复制—订阅对象 368

16.6 复制储存过程 369

16.7 高效复制 370

16.7.1 复制拓扑计划 371

16.7.2 事务日志 371

16.7.3 内存 371

16.7.4 控制出版数据的总量 372

16.7.5 主关键字 372

16.7.6 外关键字 372

16.7.7 控制发行的数量 372

附录A 事例分析 373

附录B SQL Replay 1.10 392