SQL Server 2008实战

SQL Server 2008实战 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:萨克
出品人:
页数:713
译者:金迎春
出版时间:2010-2
价格:99.00元
装帧:
isbn号码:9787115221063
丛书系列:图灵程序设计丛书·数据库系列
图书标签:
  • 数据库
  • SQLServer
  • DB
  • 计算机类
  • 计算机
  • 图书馆
  • T-SQL
  • IT
  • SQL Server
  • 数据库
  • SQL
  • 2008
  • 实战
  • 编程
  • 开发
  • 教程
  • 数据管理
  • 技术
  • 入门
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

T-SQL一直以来都是SQL Server编程的基础。和传统的 T-SQL书籍不同,《SQL Server 2008实战》以独特的 “技巧”形式来介绍知识点,涵盖了数据处理(增删改、视图、索引、存储过程、触发器等)、数据应用(Web服务、 CLR集成、分布式查询等)和数据库配置(主体、安全、数据库镜像和快照、备份等)3个方面的内容。其中每一个技巧中都包含了有代表性的示例和精炼的解析。

《SQL Server 2008实战》实用、高效、技巧性强,适用于 SQL Server专业技术人员,也可供初学者学习参考。

数据之巅:现代数据库系统架构与性能优化深度解析 本书聚焦于当前企业级数据库领域的前沿技术与最佳实践,旨在为资深数据库管理员、系统架构师及高级开发人员提供一套全面、深入且极具实操指导意义的知识体系。我们不局限于单一版本的数据库产品,而是着眼于构建高可用、高性能、可扩展的现代数据基础设施。 --- 第一部分:下一代数据库架构设计 第一章:云原生数据库的演进与选型哲学 本章将深入探讨从传统本地部署(On-Premise)向云原生(Cloud-Native)数据库迁移的驱动力与技术挑战。我们将剖析公有云、私有云及混合云环境下的数据库部署模式,并重点对比当前主流关系型数据库(如PostgreSQL、MySQL的现代分支)与新型NoSQL数据库(如文档型、图数据库、时序数据库)在特定业务场景下的适用性。读者将学习如何建立一套科学的数据库选型框架,评估TCO(总体拥有成本)、SLO(服务等级目标)和数据治理复杂度。 第二章:分布式系统的基石:一致性、可用性与分区容错性(CAP/PACELC理论的实战应用) 深入解析分布式数据库系统的核心矛盾。本章将超越基础理论,聚焦于如何在实践中权衡CAP定理的三个要素。我们将详细分析Paxos、Raft等共识算法在数据同步中的具体实现,并探讨面向OLTP和OLAP场景下,强一致性、最终一致性以及会话一致性的场景化选择。重点剖析NewSQL数据库如何通过智能路由和分布式事务管理机制,实现跨节点的数据强一致性保证。 第三章:数据湖仓一体化(Lakehouse)架构的构建与实践 随着非结构化数据和半结构化数据的激增,传统数据仓库面临瓶颈。本章详细介绍Lakehouse架构的理念,即如何利用廉价的云存储(如对象存储)作为数据湖,并通过元数据管理层(如Delta Lake, Apache Hudi, Apache Iceberg)赋予数据湖事务性、模式演进和ACID特性。内容覆盖数据摄入(ETL/ELT)、数据分层(Bronze, Silver, Gold层设计)以及如何通过高性能计算引擎(如Spark, Presto/Trino)对湖中数据进行实时和批处理分析。 --- 第二部分:高性能数据引擎调优与内核剖析 第四章:深入查询优化器:成本模型与执行计划的精细控制 本章是性能调优的核心。我们不再停留在“看执行计划”的层面,而是深入探究现代数据库优化器的成本模型(Cost Model)。内容包括:统计信息的准确性维护(直方图、多列统计)、索引选择性评估的内在逻辑,以及连接算法(Nested Loop, Hash Join, Merge Join)在不同数据分布下的性能拐点。重点讲解如何通过优化器提示(Hints)或自定义函数,引导优化器生成最优执行路径,尤其是在处理复杂子查询和窗口函数时。 第五章:存储引擎与I/O子系统的极限优化 本章聚焦于数据在磁盘和内存中的生命周期。我们将分析行存、列存(Columnar Storage)的适用场景及其内部压缩算法(如字典编码、Run-Length Encoding)。详细介绍缓冲池(Buffer Pool)/缓存层的管理机制,包括页面置换策略(LRU的变种)和预读机制。此外,针对SSD和NVMe存储,我们探讨I/O调度器的选择、延迟敏感型工作负载的I/O路径优化,以及如何通过对齐数据页大小来最大化吞吐量。 第六章:并发控制与事务隔离级别的深入探究 事务的正确性是数据库的生命线。本章对比MVCC(多版本并发控制)的实现差异(如快照隔离、读已提交隔离)。深入解析锁机制(行锁、页锁、表锁)的粒度和升级策略,并重点分析死锁的检测与预防。对于高并发场景,我们将介绍乐观并发控制(OCC)的适用性,以及如何在高吞吐量下平衡数据一致性与系统响应时间。 --- 第三部分:数据生命周期管理与运营运维(DBA 3.0) 第七章:数据安全与合规性:加密、脱敏与访问控制的深度实践 在数据隐私法规日益严格的背景下,本章提供了全面的安全框架。内容涵盖静态数据加密(TDE)的性能影响分析,传输层加密(SSL/TLS)的配置最佳实践。重点讲解数据脱敏技术(如动态数据屏蔽、假名化)在不同用户角色下的实施方案。同时,系统性阐述基于角色的访问控制(RBAC)和属性访问控制(ABAC)在大型组织中的部署策略。 第八章:高可用性(HA)与灾难恢复(DR)策略的现代化 本章超越传统的故障转移集群。我们将详细比较同步复制、异步复制在RPO(恢复点目标)和RTO(恢复时间目标)上的差异。深入探讨基于日志/基于数据页的复制技术,以及跨地域、跨云平台的容灾架构(如异地多活)。关键内容包括:自动化故障切换的测试流程、增量数据恢复点目标(PITR)的精确计算与验证。 第九章:可观测性(Observability)驱动的性能监控与主动运维 现代数据库运维强调“可观测性”而非简单的“监控”。本章讲解如何整合指标(Metrics)、日志(Logs)和追踪(Traces)三大数据流,构建全面的数据库健康视图。介绍基于Prometheus/Grafana或商业APM工具如何捕获慢查询的因果链条,实现从应用请求到数据库执行的端到端延迟分析。探讨如何利用机器学习模型对性能基线漂移进行早期预警,实现主动式运维。 第十章:数据库自动化运维(DataOps)与基础设施即代码(IaC) 本章面向自动化和DevOps实践。我们将介绍如何使用Terraform、Ansible或云厂商的自动化工具来管理数据库实例的生命周期,包括自动化部署、配置变更和版本升级。详细阐述CI/CD流程中如何安全地集成数据库Schema迁移工具(如Flyway/Liquibase),确保应用代码和数据结构变更的同步性与原子性。 --- 本书的特色在于其前瞻性、跨平台视野以及对底层原理的深度挖掘。它不是针对特定产品的老旧手册,而是面向未来数据架构的指南,是驱动下一代数据平台稳定、高效运行的宝贵参考。

作者简介

Joseph Sack,世界知名的SQL Server技术专家,微软认证数据库管理员(MCDBA),有10多年的SQL Server开发和管理工作经验。目前就职于微软公司高级现场工程组(Premier Field Engineering team)。除本书外,他撰写的SQL Server 2000 Fast Answers for DBAs and Developers(即本书前身)是Amazon五星著作,与人合写的Pro SQL Server 2005也广受好评。

目录信息

第1章 select 1
1.1 基本的select语句 1
1.1.1 从表中选择指定列 2
1.1.2 从所有行中选择所有列 2
1.2 使用基本where子句进行有选择的查询 3
1.2.1 使用where子句指定结果集中返回的行 3
1.2.2 组合搜索条件 4
1.2.3 否定搜索条件 5
1.2.4 保持where子句无歧义 5
1.3 使用运算符和表达式 6
1.3.1 在日期范围搜索中使用between 7
1.3.2 使用比较运算符 8
1.3.3 检测null值 9
1.3.4 基于一组值返回行 9
1.3.5 like和通配符结合使用 9
1.3.6 声明变量及为变量赋值 11
1.4 数据分组 12
1.4.1 使用group by子句 12
1.4.2 使用group by all 13
1.4.3 使用having选择性地查询分组的数据 13
1.5 对结果排序 14
1.5.1 使用order by子句 15
1.5.2 在排序的结果中使用top关键字 16
1.6 select子句技术 18
1.6.1 使用distinct消除重复值 18
1.6.2 在聚合函数中使用distinct 18
1.6.3 使用列别名 19
1.6.4 使用select创建脚本 20
1.6.5 字符串拼接 21
1.6.6 使用select创建逗号分隔的列表 21
1.6.7 使用into子句 22
1.7 子查询 23
1.8 从多个数据源查询 24
1.8.1 使用内联结 25
1.8.2 使用外联结 26
1.8.3 使用交叉联结 27
1.8.4 在同一查询中多次引用同一个表 27
1.8.5 使用衍生表 28
1.8.6 使用union组合结果集 29
1.9 使用apply来为每行调用表值函数 30
1.9.1 使用cross apply 30
1.9.2 使用outer apply 32
1.10 数据源高级技术 33
1.10.1 使用tablesample来返回
随机行 33
1.10.2 使用pivot把单列值转化为多列和聚合数据 34
1.10.3 使用unpivot规范化数据 36
1.10.4 使用except和intersect返回不重复的或匹配的行 38
1.11 汇总数据 40
1.11.1 使用cube汇总数据 40
1.11.2 使用rollup来汇总数据 42
1.11.3 使用分组集创建自定义汇总 43
1.11.4 展现grouping生成的行 44
1.11.5 使用grouping_id标识分组级别 46
1.12 公共表表达式 49
1.12.1 使用非递归的公共表表达式 49
1.12.2 使用递归的公共表表达式 52
第2章 执行、捕获和跟踪数据修改 55
2.1 insert 55
2.1.1 向表中插入一行 55
2.1.2 使用默认值插入行 56
2.1.3 显式向一个identity列插入值 57
2.1.4 在表中插入拥有uniqueidentifier列的行 59
2.1.5 使用insert...select语句插入行 59
2.1.6 调用存储过程插入数据 60
2.1.7 通过values插入多个行 62
2.1.8 将values作为表源来使用 62
2.2 update 63
2.2.1 更新一行 64
2.2.2 根据from和where子句更新行 65
2.2.3 更新大值数据类型的列 66
2.2.4 使用openrowset和bulk插入或更新图片文件 68
2.2.5 在维护sql server事务控制时向文件系统存储非结构化数据 69
2.2.6 “就地”赋值并修改数据库值 73
2.3 delete 75
2.3.1 删除行 75
2.3.2 截断表 76
2.4 高级数据修改技术 77
2.4.1 使用top分块修改数据 77
2.4.2 在一条语句中执行insert、update和delete 78
2.5 捕获和跟踪数据修改的改变 81
2.5.1 返回数据修改语句影响的行 81
2.5.2 异步捕获表数据修改 83
2.5.3 从cdc表查询所有变更 87
2.5.4 从cdc表查询净变更 89
2.5.5 翻译cdc更新掩码 90
2.5.6 使用lsn边界 92
2.5.7 禁用对表和数据库的变更数据捕获 93
2.5.8 以最小的磁盘开销跟踪净数据更改 93
第3章 事务、锁定、阻塞和死锁 100
3.1 事务控制 100
3.1.1 使用显式事务 101
3.1.2 使用dbcc opentran显示最早的活动事务 104
3.1.3 通过会话查询事务信息 104
3.2 锁定 106
3.2.1 查看锁的活动 108
3.2.2 控制表的锁升级行为 109
3.3 事务、锁定和并发 110
3.4 阻塞 115
3.4.1 找到并解决阻塞进程 116
3.4.2 配置语句等待锁释放的时长 118
3.5 死锁 118
3.5.1 使用跟踪标志位找出死锁 119
3.5.2 设置死锁优先级 121
第4章 表 123
4.1 表基础 123
4.1.1 创建表 126
4.1.2 为既有表添加列 126
4.1.3 修改列定义 127
4.1.4 创建计算列 128
4.1.5 减少null列的存储空间 129
4.1.6 删除表中的列 131
4.1.7 报告表信息 132
4.1.8 删除表 132
4.2 排序规则基础 133
4.2.1 查看排序规则元数据 133
4.2.2 指定列的排序规则 134
4.3 键 134
4.3.1 创建有主键的表 135
4.3.2 为既有表增加主键约束 136
4.3.3 创建一个有外键引用的表 136
4.3.4 为既有表增加外键 137
4.3.5 创建递归外键引用 138
4.3.6 允许外键的级联修改 139
4.4 代理键 140
4.4.1 在创建表的时候使用identity 属性 141
4.4.2 使用dbcc checkident来查看和纠正identity种子值 142
4.4.3 使用rowguidcol属性 143
4.5 约束 143
4.5.1 创建唯一约束 144
4.5.2 为既有表增加unique约束 145
4.5.3 使用check约束 145
4.5.4 为既有表增加check约束 146
4.5.5 禁止和启用约束 147
4.5.6 在表创建时使用default约束 148
4.5.7 为既有表增加default约束 149
4.5.8 从表删除约束 150
4.6 临时表和表变量 150
4.6.1 使用临时表在批处理中进行多次查找 151
4.6.2 创建表变量来保存临时结果集 152
4.7 管理超大型表 153
4.7.1 实现表分区 154
4.7.2 确定数据在分区中的位置 157
4.7.3 增加新的分区 158
4.7.4 移除分区 160
4.7.5 把分区移动到不同的表 161
4.7.6 移除分区函数和分区方案 162
4.7.7 用文件组提高vldb的可管理性 162
4.7.8 用数据压缩减少磁盘空间使用 164
第5章 索引 167
5.1 索引预览 167
5.1.1 创建表索引 169
5.1.2 在非键列上强制唯一性 170
5.1.3 在多个列上创建索引 171
5.1.4 定义索引列排序方向 172
5.1.5 查看索引元数据 172
5.1.6 禁用索引 174
5.1.7 删除索引 174
5.1.8 使用drop_existing改变既有索引 174
5.2 控制索引创建的性能和并发性 175
5.2.1 在tempdb中创建临时索引 175
5.2.2 控制索引创建的并行执行计划 176
5.2.3 在索引创建过程中允许用户表访问 176
5.3 索引选项 177
5.3.1 使用索引include 177
5.3.2 使用pad_index和fillfactor 178
5.3.3 禁用页和/或行索引锁定 178
5.4 管理超大型索引 179
5.4.1 在文件组上创建索引 180
5.4.2 实现索引分区 180
5.4.3 为行的子集做索引 181
5.4.4 减小索引的大小 182
第6章 全文搜索 183
6.1 全文索引和全文目录 183
6.1.1 创建全文目录 183
6.1.2 创建全文索引 184
6.1.3 修改全文目录 186
6.1.4 修改全文索引 187
6.1.5 检索全文目录和索引元数据 189
6.1.6 从全文索引中去掉普通字符串 190
6.1.7 删除全文索引 193
6.1.8 删除全文目录 193
6.2 基本搜索 194
6.2.1 使用freetext来搜索全文索引的列 194
6.2.2 使用contains来搜索单词 195
6.3 高级搜索 196
6.3.1 使用contains和通配符来搜索 196
6.3.2 使用contains来搜索变形匹配 196
6.3.3 使用contains根据词的相邻搜索结果 197
6.4 排名搜索 197
6.4.1 根据含义返回排名搜索结果 198
6.4.2 根据权值返回排名搜索结果 199
第7章 视图 201
7.1 普通视图 201
7.1.1 创建基本视图 202
7.1.2 查询视图定义 203
7.1.3 显示视图及其结构 204
7.1.4 刷新视图定义 205
7.1.5 修改视图 206
7.1.6 删除视图 206
7.1.7 使用视图修改数据 206
7.2 视图加密 207
7.3 索引视图 208
7.3.1 创建索引视图 208
7.3.2 强制优化器为索引视图使用索引 210
7.4 分区视图 211
第8章 sql server函数 216
8.1 聚合函数 216
8.1.1 返回平均值 217
8.1.2 返回行总数 217
8.1.3 找出表达式中的最小值和最大值 218
8.1.4 返回值的和 218
8.1.5 使用统计聚合函数 219
8.2 数学函数 219
8.3 字符串函数 221
8.3.1 把字符值转化为ascii以及把ascii转回字符 222
8.3.2 返回整数和字符unicode值 222
8.3.3 获取某个字符串在另一个字符串中的起始位置 223
8.3.4 使用通配符找到某个字符串在另一个字符串中的起始位置 223
8.3.5 检测字符串相似度 224
8.3.6 获取字符串最左和最右部分 224
8.3.7 检测字符串中的字符数或者字节数 225
8.3.8 把字符串的一部分替换成另一个字符串 226
8.3.9 把字符串填充到字符串中 226
8.3.10 在小写和大写之间进行转化 227
8.3.11 移除前导空格和尾部空格 228
8.3.12 重复一个表达式n次 228
8.3.13 重复一个空格n次 229
8.3.14 逆序输出表达式 229
8.3.15 返回表达式的一块 229
8.4 处理null 230
8.4.1 用另一个值替换null值 230
8.4.2 使用isnull进行灵活的搜索 230
8.4.3 返回表达式列表中第一个非null值 232
8.4.4 当两个表达式相等的时候返回null值,否则返回第一个表达式 232
8.5 日期函数 233
8.5.1 返回当前日期和时间 233
8.5.2 在时区间进行转换 234
8.5.3 增加或减少日期值 235
8.5.4 找出两个日期的差 236
8.5.5 显示日期一部分的字符串值 237
8.5.6 使用datepart显示日期一部分的整数值 237
8.5.7 使用year、month和day显示日期一部分的整数值 238
8.6 类型转换 238
8.6.1 转换数据类型 238
8.6.2 将日期转换为文本形式 239
8.6.3 以字符串字面量表示二进制数据 240
8.6.4 计算表达式返回的数据类型 241
8.7 排名函数 242
8.7.1 生成递增行号 242
8.7.2 根据排名返回行 244
8.7.3 根据无间隔排名返回行 245
8.7.4 使用ntile 246
8.8 使用系统函数检测服务器、数据库以及连接级别的配置 246
8.8.1 确定每周的第一天 246
8.8.2 查看当前会话使用的语言 247
8.8.3 查看和设置当前连接锁超时设置 247
8.8.4 显示当前存储过程上下文的嵌套级别 248
8.8.5 返回当前sql server实例名和sql server版本 248
8.8.6 返回当前连接的会话id(spid) 249
8.8.7 返回打开事务的数量 249
8.8.8 获取之前语句影响的行数 250
8.8.9 获取系统统计信息 250
8.8.10 显示数据库和sql server设置 251
8.8.11 返回当前数据库id和名称 252
8.8.12 返回数据库对象名和id 253
8.8.13 返回当前用户会话的应用程序和主机 253
8.8.14 获取当前用户和登录名上下文 253
8.8.15 查看用户连接选项 254
8.9 identity和uniqueidentifier函数 255
8.9.1 返回最后一个标识值 255
8.9.2 返回标识列的种子和增量值 256
8.9.3 创建新的uniqueidentifier值 256
第9章 条件处理、流控制和游标 258
9.1 条件处理 258
9.1.1 使用case来计算单个输入表达式 258
9.1.2 使用case来计算布尔表达式 260
9.1.3 使用if...else 261
9.2 流控制 262
9.2.1 使用return 263
9.2.2 使用while 264
9.2.3 使用goto 266
9.2.4 使用waitfor 267
9.3 游标 268
第10章 存储过程 273
10.1 存储过程基础 273
10.1.1 创建基本的存储过程 274
10.1.2 创建带参数的存储过程 275
10.1.3 使用output参数 277
10.1.4 修改存储过程 278
10.1.5 删除存储过程 279
10.1.6 在sql server启动时自动执行存储过程 279
10.1.7 报告存储过程元数据 281
10.1.8 为存储过程建立文档 281
10.2 存储过程安全 282
10.2.1 加密存储过程 282
10.2.2 使用execute as来指定过程的安全上下文 283
10.3 重新编译和缓存 286
10.3.1 每次存储过程执行时重新编译 286
10.3.2 清空过程缓存 287
第11章 用户定义函数和类型 289
11.1 udf基础 289
11.1.1 创建标量用户定义函数 290
11.1.2 创建内联用户定义函数 294
11.1.3 创建多语句用户定义函数 296
11.1.4 修改用户定义函数 299
11.1.5 查看udf元数据 300
11.1.6 移除用户定义函数 301
11.2 从udf获益 301
11.2.1 维护可重用的代码 302
11.2.2 交叉引用的自然键值 303
11.2.3 使用多语句udf替代视图 306
11.3 udt基础知识 308
11.3.1 创建和使用用户定义类型 308
11.3.2 找出使用用户定义类型的列和参数 310
11.3.3 删除用户定义类型 311
11.3.4 传入表值参数 312
第12章 触发器 315
12.1 dml触发器 316
12.1.1 创建after dml触发器 316
12.1.2 创建instead of dml 触发器 319
12.1.3 在dml触发器中处理事务 322
12.1.4 根据修改的列控制dml触发器 324
12.1.5 查看dml触发器元数据 325
12.2 ddl触发器 326
12.2.1 创建审核数据库级别的事件的ddl触发器 326
12.2.2 创建审核服务器级别的事件的ddl触发器 328
12.2.3 使用登录触发器 329
12.2.4 查看ddl触发器元数据 331
12.3 管理触发器 332
12.3.1 修改触发器 332
12.3.2 启用和禁止表触发器 333
12.3.3 限制触发器嵌套 334
12.3.4 控制触发器递归 335
12.3.5 设置触发器触发次序 336
12.3.6 删除触发器 338
第13章 clr集成 339
13.1 clr概述 339
13.2 什么时候使用(不使用)程序集 340
13.3 clr对象概述 341
13.4 创建clr数据库对象 341
13.4.1 启用sql server的clr支持 342
13.4.2 为clr存储过程写程序集 342
13.4.3 把程序集编译成dll文件 345
13.4.4 把程序集载入sql server 345
13.4.5 创建clr存储过程 346
13.4.6 创建clr标量用户定义函数 348
13.4.7 创建clr触发器 350
13.5 管理程序集 352
13.5.1 查看程序集元数据 352
13.5.2 修改程序集权限 352
13.5.3 从数据库移除程序集 353
第14章 xml、分层和空间数据 354
14.1 使用原生xml 354
14.1.1 创建xml数据类型列 354
14.1.2 插入xml数据到列 355
14.1.3 使用架构验证xml数据 356
14.1.4 获取xml数据 358
14.1.5 修改xml数据 361
14.1.6 xml索引 362
14.2 在xml文档与关系型数据之间进行转换 363
14.2.1 将关系型数据格式化为xml 363
14.2.2 将xml转换为关系型 366
14.3 使用原生分层数据 368
14.3.1 存储分层数据 368
14.3.2 返回指定的祖先 370
14.3.3 返回子节点 371
14.3.4 返回节点的深度 371
14.3.5 返回根节点 372
14.3.6 确定节点是否为当前节点的子节点 372
14.3.7 更改节点位置 372
14.4 原生空间数据 373
14.4.1 存储空间数据 373
14.4.2 查询空间数据 376
第15章 提示 380
15.1 使用联结提示 380
15.2 使用查询提示 382
15.3 使用表提示 384
15.3.1 不锁定执行查询 385
15.3.2 强制seek覆盖scan 385
第16章 错误处理 388
16.1 系统定义和用户定义的错误消息 388
16.1.1 查看系统错误信息 388
16.1.2 创建用户定义错误消息 389
16.1.3 删除用户定义错误消息 391
16.2 手动引发错误 391
16.3 捕获和处理应用程序错误 393
16.3.1 旧风格的错误处理 394
16.3.2 使用try...catch进行错误处理 396
16.3.3 不重编写存储过程来应用try...catch 398
16.3.4 嵌套错误处理 398
第17章 主体 401
17.1 windows级别的主体 401
17.1.1 创建windows登录名 402
17.1.2 查看windows登录名 403
17.1.3 修改windows登录名 403
17.1.4 删除windows登录名 404
17.1.5 拒绝windows用户或用户组的sql server访问 405
17.2 sql server级别的主体 405
17.2.1 创建sql server登录名 407
17.2.2 查看sql server登录名 407
17.2.3 修改sql server登录名 408
17.2.4 管理登录名的密码 409
17.2.5 删除sql登录名 409
17.2.6 管理服务器角色成员 410
17.2.7 报告固定服务器角色信息 411
17.3 数据库级别的主体 412
17.3.1 创建数据库用户 413
17.3.2 报告数据库用户信息 414
17.3.3 修改数据库用户 414
17.3.4 从数据库删除数据库用户 415
17.3.5 修复孤立的数据库用户 415
17.3.6 报告固定数据库角色信息 416
17.3.7 管理固定数据库角色成员 417
17.3.8 管理用户定义的数据库角色 418
17.3.9 管理应用程序角色 420
第18章 安全对象、权限和审核 423
18.1 权限总览 424
18.2 服务器范围的安全对象和权限 426
18.2.1 管理服务器权限 428
18.2.2 查询服务器权限 429
18.3 数据库范围的安全对象和权限 430
18.3.1 管理数据库权限 431
18.3.2 查询数据库权限 432
18.4 架构范围的安全对象和权限 434
18.4.1 管理架构 436
18.4.2 管理架构的权限 437
18.5 对象的权限 438
18.6 管理权限访问安全对象范围 440
18.6.1 检测当前连接的安全对象的权限 440
18.6.2 通过安全对象范围报告主体的权限 441
18.6.3 改变安全对象所有权 445
18.6.4 允许sql登录名访问非sql server的资源 446
18.7 对安全对象的主体审核sql实例和数据库级别活动 447
18.7.1 定义审核数据源 447
18.7.2 捕获sql实例范围的事件 450
18.7.3 捕获数据库范围的事件 452
18.7.4 查询捕获的审核数据 455
18.7.5 管理、修改和移除审核对象 458
第19章 加密 462
19.1 通过通行短语加密 462
19.2 主密钥 464
19.2.1 备份及还原服务主密钥 465
19.2.2 创建、重新生成以及删除数据库主密钥 466
19.2.3 备份及还原数据库主密钥 467
19.2.4 从数据库主密钥删除服务主密钥加密 468
19.3 非对称密钥加密 469
19.3.1 创建非对称密钥 469
19.3.2 查看当前数据库中的非对称密钥 470
19.3.3 修改非对称密钥的私钥密码 470
19.3.4 使用非对称密钥对数据进行加密和解密 471
19.3.5 删除非对称密钥 473
19.4 对称密钥加密 473
19.4.1 创建对称密钥 474
19.4.2 查看当前数据库中的对称密钥 475
19.4.3 改变对称密钥加密方式 475
19.4.4 使用对称密钥进行加密和解密 476
19.4.5 删除对称密钥 479
19.5 证书加密 479
19.5.1 创建数据库证书 479
19.5.2 查看数据库中的证书 480
19.5.3 备份和还原证书 480
19.5.4 管理证书的私钥 482
19.5.5 使用证书加密和解密 483
19.5.6 通过对称密钥自动打开和解密 484
19.6 透明数据加密 486
19.6.1 启用透明数据加密 486
19.6.2 管理和移除tde 487
第20章 service broker 489
20.1 示例场景:在线书店 489
20.2 创建基本的service broker应用程序 490
20.2.1 启用数据库的service broker 活动 491
20.2.2 创建加密用的数据库主密钥 491
20.2.3 管理消息类型 492
20.2.4 创建约定 493
20.2.5 创建队列 494
20.2.6 创建服务 496
20.2.7 启动对话 497
20.2.8 查询队列中传入的消息 499
20.2.9 检索并响应消息 499
20.2.10 结束会话 501
20.2.11 设定service broker会话的优先级 503
20.3 创建用来处理消息的存储过程 505
20.4 远程服务器service broker的实现 507
20.4.1 启用传输安全模式 510
20.4.2 启用对话安全模式 512
20.4.3 创建路由和远程服务绑定 514
20.5 事件通知 517
第21章 配置和查看sql server的选项 520
第22章 创建和配置数据库 524
22.1 创建、修改和删除数据库 524
22.1.1 使用默认配置创建数据库 524
22.1.2 查看数据库信息 525
22.1.3 使用文件选项创建数据库 526
22.1.4 使用用户定义文件组创建数据库 528
22.1.5 设置数据库用户访问 530
22.1.6 重命名数据库 532
22.1.7 删除数据库 533
22.1.8 分离数据库 533
22.1.9 附加数据库 535
22.2 配置数据库选项 535
22.2.1 查看数据库选项 536
22.2.2 配置ansi sql选项 536
22.2.3 配置自动选项 538
22.2.4 创建或修改允许外部访问的数据库 539
22.2.5 使用非服务器默认排序规则创建或改变数据库 540
22.2.6 配置游标选项 541
22.2.7 启用日期相关性优化 542
22.2.8 修改数据库参数化行为 543
22.2.9 为事务启用读取一致性 546
22.2.10 配置数据库恢复模式 547
22.2.11 配置页验证 548
22.3 控制数据库访问和拥有关系 550
22.3.1 修改数据库状态为联机、离线或紧急状态 550
22.3.2 修改数据库拥有者 551
22.4 管理数据库文件和文件组 552
22.4.1 为既有的数据库添加数据文件或日志文件 552
22.4.2 从数据库删除数据或日志文件 553
22.4.3 重新分配数据或事务日志文件 554
22.4.4 修改文件的逻辑名称 555
22.4.5 增加数据库文件的大小和修改它的增长选项 556
22.4.6 为既有的数据库添加文件组 557
22.4.7 设置默认文件组 557
22.4.8 删除文件组 558
22.4.9 使数据库或文件组为只读 559
22.5 查看和管理数据库空间使用 560
22.5.1 查看数据库空间使用情况 560
22.5.2 收缩数据库或数据库文件 561
第23章 数据库完整性和优化 565
23.1 数据库检查 565
23.1.1 使用dbcc checkalloc检查磁盘空间分配结构的一致性 565
23.1.2 使用dbcc checkdb检查所有数据库的分配和结构完整性 567
23.2 表和约束 569
23.2.1 使用dbcc checkfilegroup检查文件组中所有表的分配和结构完整性 569
23.2.2 使用dbcc checktable检查表和索引视图的数据完整性 570
23.2.3 使用dbcc checkconstraints 检查表的完整性 573
23.2.4 使用dbcc checkcatalog检查系统表的一致性 574
23.3 索引维护 575
23.3.1 重建索引 575
23.3.2 索引碎片整理 577
23.3.3 重建堆 578
第24章 维护数据库对象和对象依赖关系 579
24.1 数据库对象维护 579
24.1.1 修改用户创建的数据库对象的名称 579
24.1.2 修改对象的架构 581
24.2 对象依赖关系 581
24.2.1 标识对象依赖关系 581
24.2.2 标识引用和被引用的实体 583
24.2.3 查看对象定义 585
第25章 数据库镜像 587
25.1 上下文中的数据库镜像 587
25.2 数据库镜像体系结构 588
25.3 设置数据库镜像 589
25.3.1 创建镜像端点 590
25.3.2 备份和还原主体数据库 593
25.3.3 创建数据库镜像会话 595
25.4 设置总结 597
25.5 运行数据库镜像 598
25.5.1 改变运行模式 598
25.5.2 进行故障转移 599
25.5.3 暂停或继续镜像会话 600
25.5.4 停止镜像会话和删除端点 600
25.6 镜像和配置选项 601
25.6.1 监视镜像状态 601
25.6.2 配置连接超时时限 601
第26章 数据库快照 603
26.1 快照基础 603
26.1.1 创建和查询数据库快照 603
26.1.2 删除数据库快照 605
26.1.3 从数据库快照恢复数据 605
第27章 链接服务器和分布式查询 608
27.1 链接服务器基础 608
27.1.1 为另一sql server实例创建链接服务器 609
27.1.2 配置链接服务器属性 610
27.1.3 查看链接服务器信息 611
27.1.4 删除链接服务器 611
27.2 链接服务器登录名 612
27.2.1 添加链接服务器登录名映射 612
27.2.2 查看链接登录名 613
27.2.3 删除链接服务器登录名映射 613
27.3 执行分布式查询 614
27.3.1 在链接服务器上执行分布式查询 614
27.3.2 创建和使用引用4部分组成的链接服务器名的别名 615
27.3.3 使用openquery执行分布式查询 616
27.3.4 使用openrowset执行临时的查询 617
27.3.5 使用openrowset bulk选项从文件中读取数据 618
第28章 查询性能调优 621
28.1 查询性能技巧 622
28.2 捕捉和评估查询性能 623
28.2.1 使用sys.dm_exec_requests 捕捉执行的查询 623
28.2.2 使用t-sql命令查看评估的查询执行计划 624
28.2.3 查看执行运行时信息 627
28.2.4 查看性能统计信息和缓存的查询计划 629
28.2.5 基于查询或计划模式查看聚合的性能统计信息 630
28.2.6 标识出最大瓶颈 632
28.2.7 通过数据库和文件标识出i/o争用 633
28.3 索引调优 634
28.3.1 显示索引碎片 635
28.3.2 显示索引使用情况 637
28.4 统计信息 638
28.4.1 手动创建统计信息 639
28.4.2 行子集上创建统计信息 640
28.4.3 更新统计信息 640
28.4.4 生成及更新所有表的统计信息 641
28.4.5 查看详细的统计信息 642
28.4.6 删除统计信息 643
28.5 杂项技术 643
28.5.1 使用动态sql的替代方法 644
28.5.2 强制sql server使用查询计划 646
28.5.3 不修改应用程序的sql去应用提示 648
28.5.4 从缓存创建计划指南 651
28.5.5 检查计划指南的有效性 653
28.5.6 使用计划指南将非参数化查询参数化 653
28.5.7 限制查询资源消耗竞争 656
第29章 备份与恢复 662
29.1 创建备份和恢复计划 662
29.2 生成备份 663
29.2.1 执行基本的完全备份 665
29.2.2 压缩备份 666
29.2.3 命名和描述备份和媒体 668
29.2.4 配置备份保持期 669
29.2.5 条带化备份集 670
29.2.6 使用命名的备份设备 670
29.2.7 镜像备份集 672
29.2.8 执行事务日志备份 673
29.2.9 不破坏备份序列创建备份 674
29.2.10 执行差异备份 675
29.2.11 备份单个文件或文件组 675
29.2.12 执行部分备份 677
29.2.13 查看备份元数据 678
29.3 还原数据库 679
29.3.1 从完全备份还原数据库 679
29.3.2 从事务日志备份还原数据库 682
29.3.3 从差异备份还原数据库 684
29.3.4 还原文件或文件组 685
29.3.5 执行部分(partial)还原 686
29.3.6 还原页面 687
29.3.7 用多种恢复路径识别数据库 688
索引 691
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

这本书在数据集成和迁移方面的介绍,对于需要处理不同数据源之间交互的读者来说,具有很高的参考价值。在实际工作场景中,我们常常需要将数据从其他数据库系统迁移到 SQL Server,或者将 SQL Server 中的数据导出到其他系统。本书在这方面的内容,为我们提供了行之有效的方法和工具。它详细介绍了 SQL Server 2008 提供的 SSIS (SQL Server Integration Services) 工具,并演示了如何利用 SSIS 来设计和执行数据转换和数据迁移任务。书中通过具体的案例,讲解了如何连接不同的数据源,如何进行数据清洗、转换和加载,以及如何处理数据迁移过程中的错误。此外,书中还介绍了一些其他的数据库交互和数据导入/导出的方法,例如 BCP 工具、BULK INSERT 语句等。这些内容让我能够更灵活地处理各种数据集成场景,提高了工作效率。

评分

本书对 SQL Server 2008 中 XML 和 JSON 数据处理能力的阐述,展现了该数据库系统在处理非结构化数据方面的进步。虽然 SQL Server 2008 相比于后续版本在 JSON 支持上可能略显不足,但书中对 XML 的深入讲解,依然非常宝贵。它详细介绍了如何在 SQL Server 2008 中存储、查询和操作 XML 数据,包括如何使用 `xml` 数据类型,如何使用 `XQuery` 和 `XPath` 来查询 XML 文档,以及如何将 XML 数据转换为关系型数据。书中通过丰富的示例,展示了如何利用 SQL Server 的内置函数来处理复杂的 XML 结构。这对于那些需要与 XML 数据进行交互的应用程序来说,提供了非常实用的指导。随着数据格式日益多样化,掌握如何在关系型数据库中有效地处理 XML 数据,对于现代数据处理而言依然至关重要。

评分

对于初学者来说,本书在“从零开始”的引导方面做得非常出色,尤其是在数据库对象的理解和管理上。很多初学者往往对数据库、表、字段、视图、存储过程、函数等概念感到模糊。这本书从最基础的数据库概念入手,用通俗易懂的语言解释了这些基本构成元素的作用和关系。它详细讲解了如何使用 SQL Server Management Studio (SSMS) 这个强大的图形化工具来创建和管理这些数据库对象。书中通过大量的截图和操作演示,指导读者如何右键点击、选择菜单、填写对话框,一步步完成创建数据库、创建表的任务。它还讲解了如何为表添加约束,如主键、外键、唯一约束、检查约束等,这些对于保证数据的完整性和一致性至关重要。此外,书中对于视图和存储过程的介绍,也让初学者能够初步了解如何通过这些对象来简化数据访问和封装业务逻辑,为后续学习更高级的概念打下了坚实的基础。

评分

这本书在并发控制和事务管理方面的讲解,可以说是将 T-SQL 的精髓展现得淋漓尽致。在多人多任务同时访问数据库的环境下,如何保证数据的一致性和完整性,是系统稳定运行的关键。书中对于事务的概念、ACID 特性,以及 SQL Server 2008 在这些方面的实现原理,都进行了非常详尽的阐述。让我印象深刻的是,它没有停留在理论层面,而是通过生动具体的代码示例,演示了如何使用 `BEGIN TRANSACTION`、`COMMIT TRANSACTION`、`ROLLBACK TRANSACTION` 等语句来管理事务,以及如何处理事务中的死锁问题。书中还探讨了 SQL Server 2008 的隔离级别,并解释了不同隔离级别对并发性能和数据一致性的影响,指导读者如何根据实际需求选择合适的隔离级别。通过对这部分内容的学习,我对于如何编写健壮的 T-SQL 代码,如何避免数据冲突,以及如何提高并发处理能力有了更深刻的理解。这对于我开发高性能、高可靠性的数据库应用程序至关重要。

评分

这本书的价值并不仅仅体现在入门教学上,对于已经有一定 SQL Server 基础的读者来说,它同样提供了宝贵的进阶内容。我尤其推崇书中关于性能调优的部分,这往往是许多数据库技术书籍中容易被忽视或者讲解不够深入的环节。作者在这一章节花费了大量篇幅,系统地讲解了 SQL Server 2008 的性能瓶颈分析方法,包括如何识别和诊断查询缓慢的原因,例如不合理的索引、糟糕的查询计划、资源争用等。书中详细介绍了诸如执行计划分析、SQL Profiler 工具的使用、DMV (动态管理视图) 的查询技巧等实用的性能调优手段。通过书中提供的具体案例,我学习到了如何分析一个复杂的 T-SQL 语句的执行过程,找出其中的性能“黑洞”,并针对性地进行优化,例如添加缺失的索引、重写查询逻辑、调整数据库配置参数等。这些内容对于我解决实际工作中遇到的数据库性能问题起到了至关重要的作用,让我能够更有效地提升数据库的响应速度和吞吐量,从而满足业务不断增长的需求。而且,书中不仅仅是“是什么”,更侧重于“为什么”和“怎么做”,让我能够真正理解性能调优的底层原理,而不是简单地套用模板。

评分

贯穿整本书的,是作者对 SQL Server 2008 实际应用场景的深刻洞察和对读者学习路径的精心设计。这本书最大的成功之处在于,它并没有局限于对某个技术点的孤立讲解,而是将各种技术点有机地串联起来,形成了一个完整的数据库解决方案的学习过程。从数据库的设计、开发,到性能调优、安全加固、高可用性保障,再到数据集成和非结构化数据处理,本书几乎涵盖了一个数据库系统生命周期中的各个重要环节。而且,书中始终围绕着“实战”二字,用大量贴近实际工作的案例来解释理论,引导读者在实践中巩固所学。这种“理论+实践”的学习模式,让我在学习过程中始终保持着高度的兴趣和学习动力。这本书让我不仅掌握了 SQL Server 2008 的技术知识,更重要的是培养了我独立解决数据库相关问题的能力。它的内容深度和广度,以及清晰的逻辑结构,都让我觉得物超所值,强烈推荐给所有希望深入了解 SQL Server 2008 的读者。

评分

本书对 SQL Server 2008 的高级特性,例如 AlwaysOn 可用性组(尽管在 2008 版本中可能尚未完全成熟,但书中会涉及相关的概念和前置技术)、复制、以及集群等高可用性解决方案的介绍,是我在阅读过程中感到最为振奋的部分。在大型企业级应用中,保证数据库服务的连续性和可用性是至关重要的。书中详细介绍了 SQL Server 2008 提供的多种高可用性技术,并分析了它们的实现原理、配置方法以及各自的优缺点。例如,对于复制技术,书中详细讲解了事务复制、快照复制和合并复制的区别,以及如何在不同业务场景下选择合适的复制拓扑。对于集群,书中也给出了详细的部署和管理指南。虽然 2008 版本的高可用性方案可能不如后续版本那样完善,但本书已经为读者构建了一个非常扎实的基础认知,使我能够理解这些技术的演进方向,并为将来升级到新版本打下基础。通过学习这些内容,我对如何构建一个能够抵御单点故障、保障业务连续性的数据库系统有了更全面的认识。

评分

在数据安全和备份恢复方面,这本书提供了非常全面和实用的指导。在如今数据安全日益重要的时代,如何保障数据库的稳定运行和数据不丢失,是每个数据库管理员和开发人员必须面对的问题。本书在这方面的内容,我认为是其最大的亮点之一。书中详细介绍了 SQL Server 2008 的各种备份策略,包括完整备份、差异备份、事务日志备份等,并且深入讲解了各种备份策略的优缺点以及在不同场景下的适用性。更重要的是,它还详细演示了如何配置 SQL Server 的自动备份计划,以及如何进行数据库的完整恢复、差异恢复和事务日志恢复。我特别喜欢书中对于灾难恢复场景的探讨,它模拟了各种可能发生的故障,例如硬件损坏、误删除数据等,然后一步步指导读者如何利用之前备份的数据进行快速有效的恢复。这让我深刻理解了备份和恢复的重要性,并且掌握了应对突发情况的实际操作技能。书中还涉及了 SQL Server 的安全特性,例如用户权限管理、角色分配、加密等,让我能够更好地保护数据库免受未经授权的访问和数据泄露的风险。

评分

在数据库开发方面,这本书提供了丰富的 T-SQL 编程技巧和最佳实践。许多时候,我们不仅仅是数据库管理员,更是需要编写 T-SQL 来实现业务逻辑的开发人员。这本书恰好满足了这一需求。书中详细讲解了 T-SQL 的各种数据操作语句,包括 `SELECT`、`INSERT`、`UPDATE`、`DELETE`,以及更复杂的查询技巧,例如各种 JOIN 的用法、子查询、公用表表达式 (CTE)、窗口函数等。更让我受益匪浅的是,书中不仅提供了基础语句的讲解,还深入探讨了如何编写高效、可读性强的 T-SQL 代码。例如,它讲解了如何利用存储过程、函数、触发器等数据库对象来封装业务逻辑,如何进行错误处理,以及如何优化 SQL 语句的性能。通过书中的案例,我学习到了很多实用的编程技巧,例如如何避免游标的使用,如何利用集合化的操作来提高效率,以及如何编写能够适应不断变化的数据需求的灵活的 T-SQL 代码。这些内容极大地提升了我编写 T-SQL 的能力,让我能够更自信地处理复杂的业务需求。

评分

初次接触 SQL Server 2008,我曾像许多新手一样,在浩瀚的官方文档和零散的网络教程中迷失方向,对那些晦涩的概念和繁琐的命令感到无从下手。就在我几近放弃之际,偶然翻阅了这本《SQL Server 2008实战》。这本书的出现,无疑是我学习 SQL Server 道路上的灯塔。它没有一开始就堆砌那些高深的理论,而是从最基本、最贴近实际应用的角度切入,详细讲解了如何搭建 SQL Server 2008 的开发与管理环境,包括安装、配置以及常用的客户端工具介绍。书中对于数据库的创建、表的设计、字段的数据类型选择,以及如何利用索引优化查询性能等基础知识,都进行了深入浅出的阐述。让我印象深刻的是,它并没有止步于理论的讲解,而是通过一系列精心设计的案例,引导我一步步实践,从创建第一个数据库到编写简单的 T-SQL 查询语句,每一个步骤都清晰明了,仿佛一位经验丰富的导师在手把手地教导。通过这些案例,我不仅理解了知识点,更重要的是学会了如何将其运用到实际工作中,为后续更复杂的学习打下了坚实的基础。这本书的语言风格也非常友好,避免了过多的专业术语,即使是初学者也能轻松理解。它更像是一位耐心细致的朋友,循序渐进地带领你走进 SQL Server 的世界,让你在实践中不断成长,克服最初的恐惧和迷茫。

评分

毕业论文资料。

评分

看不下去 浪费了

评分

毕业论文资料。

评分

毕业论文资料。

评分

工作手边书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有