Microsoft SQL Server 2000技术内幕


Microsoft SQL Server 2000技术内幕

文章插图
Microsoft SQL Server 2000技术内幕【Microsoft SQL Server 2000技术内幕】《MicrosoftSQLServer2000技术内幕》是2002年北京大学出版社出版的图书,作者是蒂兰妮 。
基本介绍书名:Microsoft SQL Server 2000技术内幕
作者:蒂兰妮
译者:莱恩工作室
ISBN:9787301051290
页数:960
定价:140.00元
出版社:北京大学出版社
出版时间:2002-12
装帧:简装本
开本:16开
内容介绍《Microsoft程式设计系列·SQL Server2000技术内幕》是由着名作家与产品开发小组成员共同编写的,对于那些需要了解SQL Server内部结构如何影回响用程式的开发和功能的读者来说,这都是一本必备和必读之书 。通过学习《Microsoft程式设计系列·SQL Server2000技术内幕》对SQL Server 2000引擎的正式指导,您可以掌握目前首选的关係资料库管理系统(RDBMS)的内部工作方式 。本书目录前言第一部分 概述第一章 Microsoft SQL Server的演变过程:从1989年到2000年1.1 SQL Server:初期阶段1.2 Ron的故事1.3 Kalen的故事1.4 Microsoft SQL Server的发布1.5 开发角色的演变1.6 OS/2和友好的攻击1.7 SQL Server 4.21.7.1 即将发布的OS/2 2.01.7.2 4.2版本的发布1.8 用于Windows NT的SQL Server1.9 成功带来的巨大变化1.10 合作开发的结束1.11 管理SQL951.12 下一版本1.13 Sphinx的秘密1.14 新世纪的软体第二章 介绍SQL Server2.1 SQL Server引擎2.1.1 Transact-SQL2.2 DBMS强制的数据完整性2.2.1 声明数据完整性2.2.2 数据类型2.2.3 CHECK约束和规则2.2.4 默认值2.2.5 触发器2.3 事务处理2.3.1 原子性2.3.2 一致性2.3.3 孤立性2.3.4 持久性2.4 对称伺服器构架2.4.1 传统的进程/执行绪模式2.4.2 SQL Server的进程/执行绪模式2.4.3 多用户性能2.5 安全性2.5.1 监视和管理安全性2.6 较高的可用性2.7 分散式数据处理2.8 数据複製2.9 系统管理2.9.1 SQL Server Enterprise Manager2.9.2 Distributed Management Objects2.9.3 Windows Management Instrumentation2.9.4 SQL-DMO和Visual Basic脚本2.9.5 SQL Server Agent2.10 SQL Server的实用程式和扩展2.10.1 Web Assistant Wizard和Internet启用2.10.2 SQL Profiler2.10.3 SQL Server Service Manager2.10.4 System Monitor的集成2.10.5 Client Network实用程式2.10.6 Server Network实用程式2.10.7 SQL Server的安装2.10.8 OSQL和ISQL2.10.9 SQL Query Analyzer2.10.10 大量複製和数据传输服务2.10.11 SNMP集成2.10.12 SQL Server Books Online2.11 客户开发接口2.11.1 ODBC2.11.2 OLE DB2.11.3 ADO2.11.4 DB-Library2.11.5 ESQL/C2.11.6 伺服器开发接口2.12 总结第二部分 基本结构概述第三章 SQL Server的基本结构3.1 SQL Server引擎3.1.1 Net-Library3.1.2 开放式数据服务3.1.3 关係引擎和存储引擎3.1.4 访问方法管理器3.1.5 行操作管理器和索引管理器3.1.6 页面管理器和文本管理器3.1.7 事务管理器3.1.8 锁管理器3.1.9 其他管理器3.2 管理记忆体3.2.1 缓冲区管理器和记忆体池3.2.2 访问记忆体内页面3.2.3 访问自由页(惰性编写器)3.2.4 检查点3.2.5 使用缓冲区管理器访问页面3.2.6 大量记忆体问题3.2.7 日誌管理器3.3 事务的记录和恢复3.3.1 锁定和恢复3.3.2 页面LSN和恢复3.4 SQL Server核心和与作业系统的互动3.4.1 执行绪化和对称多处理技术3.4.2 辅助执行绪池3.4.3 Windows NT/2000中的磁碟I/O3.5 总结第三部分 使用Microsoft SQL Server第四章 规划和安装SQL Server4.1 SQL Server的版本4.1.1 嵌入的SQL Server4.2 硬体指导原则4.2.1 使用“Windows硬体兼容列表”中的硬体4.2.2 性能=Fn(处理器周期,记忆体,I/O传输量)4.2.3 在基準程式上的投资4.3 硬体组件4.3.1 处理器4.3.2 记忆体4.3.3 磁碟驱动器、控制器和磁碟阵列 4.3.4 RAID解决方案4.3.5 有关驱动器和控制器的更多信息4.3.6 不间断电源(UPS)4.3.7 磁碟子系统4.3.8 后备伺服器的能力4.3.9 其他硬体的考虑因素4.4 作业系统4.5 档案系统4.6 安全性和用户环境4.7 许可4.7.1 SQL Server的Processor License4.7.2 Server License和CAL4.7.3 多元化:中间件、事务伺服器和多层结构的使用4.7.4 多实例4.8 网路协定4.9 排序规则4.9.1 字元集4.9.2 排序顺序4.10 多个实例4.10.1 安装命名实例4.10.2 命名实例的伺服器连线4.11 安装SQL Server4.11.1 从以前的版本进行升级安装4.12 安装后的基本配置4.12.1 启动SQL Server服务4.12.2 更改系统管理员的密码4.12.3 配置SQL Server的错误日誌4.12.4 使用多实例4.13 远程安装和无人参与安装4.13.1 远程安装4.13.2 无人参与安装4.13.3 更改安装选项4.13.4 添加其他组件4.14 总结第五章 资料库资料库档案5.1 特殊的系统资料库5.1.1 master5.1.2 model5.1.3 tempdb5.1.4 pubs5.1.5 Northwind5.1.6 msdb5.2 资料库档案5.3 创建资料库5.3.1 CREATE DATABASE示例5.4 扩大和收缩资料库5.4.1 自动的档案扩大5.4.2 人工的档案扩大5.4.3 自动的档案收缩5.4.4 人工的档案收缩5.5 日誌大小方面的变化5.5.1 日誌截断5.6 使用资料库档案组5.6.1 默认档案组5.6.2 FILEGROUP CREATION示例5.7 修改资料库5.7.1 ALTER DATABASE示例5.8 资料库内幕5.8.1 空间分配5.9 设定资料库选项5.9.1 状态选项5.9.2 游标选项5.9.3 自动选项5.9.4 SQL选项5.9.5 恢複选项5.10 资料库的其他考虑因素5.10.1 资料库与方案5.10.2 使用可移动媒介5.10.3 分离和重新附加资料库5.10.4 兼容性级别 5.11 备份和恢複数据库5.11.1 备份的类型5.11.2 恢复模式5.11.3 选择备份类型5.11.4 恢複数据库5.12 总结第六章 表6.1 创建表6.1.1 命名表和列6.1.2 预留的关键字6.1.3 分隔标识符6.1.4 命名约定6.1.5 数据类型6.1.6 关于NULL的更多内容6.2 用户定义的数据类型6.3 IDENTITY属性6.4 内部存储6.4.1 数据页6.4.2 介绍数据页6.4.3 数据行的结构6.4.4 列偏移量数组6.4.5 固定长度和可变长度行的存储6.4.6 页面连结6.4.7 文本和图像数据6.4.8 sql_variant数据类型6.5 约束6.5.1 PRIMARY KEY和UNIQUE约束6.5.2 FOREIGN KEY约束6.5.3 约束检查的解决方法6.5.4 对删除表的限制6.5.5 自引用表6.5.6 CHECK约束6.5.7 默认约束6.5.8 有关约束的更多内容6.6 修改表6.6.1 更改数据类型6.6.2 添加新列6.6.3 添加、删除、禁用或启用约束6.6.4 删除列6.6.5 启用或禁用触发器6.7 临时表6.7.1 私有临时表(#)6.7.2 全局临时表(##)6.7.3 直接使用tempdb6.7.4 临时表中的约束6.8 系统表6.9 总结第七章 查询数据7.1 SELECT语句7.2 联接7.2.1 外部联接7.2.2 旧式的*=OUTER JOIN操作符7.2.3 交叉联接7.3 处理NULL7.3.1 现实生活中的NULL7.3.2 IS NULL和=NULL7.4 子查询7.4.1 相关子查询7.5 视图和派生表7.5.1 修改视图7.5.2 分区视图7.6 其他搜寻表达式7.6.1 LIKE7.6.2 BETWEEN7.6.3 聚合函式7.6.4 数据立方——聚合的变化形式7.6.5 TOP7.6.6 UNION7.7 总结第八章 索引8.1 索引结构8.1.1 群集索引 8.1.2 非群集索引8.2 创建索引8.2.1 约束和索引8.3 索引页的结构8.3.1 具有唯一标识符的群集索引行8.3.2 索引行的格式8.4 索引空间的需求8.4.1 B树的大小8.4.2 实际大小和估计大小8.5 管理索引8.5.1 碎片类型8.5.2 检测碎片8.5.3 删除碎片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.7.5 保持唯一性8.8 总结第九章 修改数据9.1 基本的修改操作9.1.1 INSERT9.1.2 UPDATE9.1.3 DELETE9.1.4 通过视图修改数据9.2 数据修改内幕9.2.1 插入行9.2.2 拆分页面9.2.3 删除行9.2.4 更新行9.2.5 表级数据修改和索引级数据修改9.2.6 记录9.2.7 锁定9.3 总结第十章 使用Transact-SQL编程10.1 作为程式语言的Transact-SQL10.1.1 多级编程10.2 Transact-SQL编程结构10.2.1 变数10.2.2 控制流工具10.2.3 CASE10.2.4 PRINT10.2.5 RAISERROR10.2.6 FORMATMESSAGE10.2.7 运算符10.2.8 标量函式10.2.9 表值函式10.3 Transact-SQL示例和难题10.3.1 生成测试数据10.3.2 获取等级10.3.3 查找间隔之间的差别10.3.4 代替重申的选择10.4 全文搜寻10.4.1 全文索引10.4.2 设定全文索引10.4.3 维护全文索引10.4.4 查询全文索引10.4.5 全文索引的性能考虑因素10.5 总结第十一章 批处理档案、存储过程和函式11.1 批处理档案11.2 例程11.3 存储过程11.3.1 嵌套的存储过程11.3.2 存储过程中的递归11.3.3 存储过程的参数11.4 用户定义的函式11.4.1 表变数 11.4.2 标量值函式11.4.3 表值函式11.4.4 系统表值函式11.4.5 管理用户定义的函式11.5 将存储过程改写为函式11.6 滚动您自己的系统例程11.6.1 您自己的系统过程11.6.2 您自己的系统函式11.7 执行批处理档案或存储过程(和函式)11.7.1 步骤1:解析命令并创建序列树11.7.2 步骤2:编译批处理档案11.7.3 步骤3:执行11.7.4 步骤4:重新编译执行计画11.7.5 例程的存储11.7.6 加密例程11.7.7 修改例程11.8 临时存储过程11.8.1 私有临时存储过程11.8.2 全局临时存储过程11.8.3 通过直接使用tempdb创建的过程11.9 自动启动存储过程11.10 系统存储过程11.10.1 常规系统过程11.10.2 编目存储过程11.10.3 SQL Server Agent存储过程11.10.4 複製存储过程11.10.5 扩展存储过程11.11 EXECUTE(“ANY STRING”)11.12 总结第十二章 事务和触发器12.1 事务12.1.1 明确事务和隐含事务12.1.2 事务中的错误检查12.1.3 事务的孤立级别12.1.4 事务的其他特性12.1.5 嵌套的事务块12.1.6 保存点12.2 触发器12.2.1 后触发器12.2.2 替代触发器12.2.3 管理触发器12.2.4 使用触发器执行引用动作12.2.5 递归触发器12.3 总结第十三章 特殊的Transact-SQL操作:使用游标和大对象13.1 游标的基础知识13.2 游标和ISAM13.2.1 使用ISAM类型的应用程式的问题13.3 游标模型13.3.1 Transact-SQL游标13.3.2 API伺服器游标13.3.3 客户游标13.3.4 默认结果集13.3.5 API伺服器游标和Transact-SQL游标13.4 游标的适当使用13.4.1 逐行操作13.4.2 查询操作13.4.3 滚动应用程式13.4.4 选择游标13.4.5 游标成员、滚动和更改敏感度13.5 使用Transact-SQL游标13.5.1 DECLARE13.5.2 OPEN13.5.3 FETCH13.5.4 UPDATE13.5.5 DELETE13.5.6 CLOSE13.5.7 DEALLOCATE 13.5.8 最简单的游标语法13.5.9 完全可滚动的Transact-SQL游标13.5.10 使用Transact-SQL游标进行并行性控制13.6 游标变数13.6.1 获得游标信息13.7 使用文本和图像数据13.7.1 WRITETEXT13.7.2 READTEXT13.7.3 UPDATETEXT13.8 总结第四部分 性能和调整第十四章 锁定14.1 锁管理器14.1.1 镇管理器和孤立级别14.1.2 原子锁14.1.3 死锁14.2 用户数据的锁类型14.2.1 锁的类型14.2.2 锁的粒度14 2.3 锁的持续时间14.2.4 锁的拥有关係14.2.5 查看锁14.3 锁的兼容性14.4 锁定的内部结构14.4.1 锁块14.4.2 锁拥有者块14.4.3 syslockinfo表14.5 绑定连线14.6 行级锁定和页面级锁定14.6.1 锁的提升14.7 锁定暗示和跟蹤标记14.8 总结第十五章 查询处理器15.1 SQL管理器15.2 编译和最佳化15.2.1 编译15.2.2 最佳化15.2.3 查询最佳化器的工作方式15.2.4 联接选择15.2.5 其他处理策略15.2.6 维护统计信息15.3 过程快取15.4 使用存储过程和快取机制15.4.1 特殊快取15.4.2 自动参数化15.4.3 sp_executesql过程15.4.4 準备和执行方法15.4.5 共享快取计画15.4.6 检查计画快取15.4.7 快取中的多个计画15.4.8 使用存储过程和其他快取机制的时间15.4.9 重新编译存储过程15.4.10 存储过程的其他好处15.5 执行15.6 总结第十六章 调整查询16.1 开发小组16.2 应用程式和资料库设计16.2.1 规範化资料库16.2.1 评估重要事务16.2.3 精简表行的长度和键16.3 计画高峰使用16.4 互动式系统的感知回响时间16.5 原型、基準程式和测试16.5.1 开发方法学16.6 创建有用的索引16.6.1 谨慎选择群集索引16.6.2 使非群集索引具有较高的选择性16.6.3 裁剪对重要事务的索引16.6.4 注意列的顺序16.6.5 联接中使用的索引列16.6.6 根据需要创建或删除索引16.6.7 Index Tuning Wizard 16.7 监视查询的性能16.7.1 STATISTICS IO16.7.2 STATISTICS TIME16.7.3 计画显示16.7.4 使用查询暗示16.7.5 存储过程的最佳化16.8 并行性和一致性的权衡16.9 解决阻塞的问题16.9.1 索引和阻塞16.10 解决死锁问题16.10.1 循环死锁示例16.10.2 转换死锁示例16.10.3 防止死锁16.10.4 处理死锁16.10.5 自愿作为死锁的牺牲者16.10.6 观察锁定活动16.10.7 标识阻塞的原因16.10.8 锁暗示16.11 隔离OLTP和DSS应用程式16.12 环境因素16.12.1 区分大小写16.12.2 可控性和ANSI兼容设定16.12.3 区域特定的SET选项16.13 总结第十七章 配置和性能监视17.1 作业系统的配置设定17.1.1 任务管理17.1.2 资源分配17.1.3 PAGEFILE.SYS的位置17.1.4 档案系统选择17.1.5 不重要的服务17.1.6 网路协定17.2 SQL Server的配置设定17.2.1 伺服器範围的选项17.2.2 缓冲区管理器选项17.2.3 SQLSERVER.EXE的启动参数17.3 系统维护17.4 监视系统行为17.4.1 SQL Profiler17.4.2 System Monitor17.4.3 其他性能监视因素17.5 总结参考书目