《SQL SERVER 2008学习笔记 日常维护、深入管理、性能优化》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:吴戈,朱勇,赵婉芳编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115211798
  • 页数:555 页
图书介绍:本书从头至尾以案例的形式介绍数据库管理员在日常维护工作中遇到的各种问题,包括常用的操作,深入的功能以及高级议题。

第一篇 日常应用 1

第1章 安装及常用工具使用 3

1.1 基础知识 4

1.1.1 SQL Server 2008产品概况 4

1.1.2 安装SQL Server 2008的软、硬件需求 4

1.2 应用情景 6

应用情景1 安装SQL Server 2008数据库 6

应用情景2 查看和配置SQL Server服务 14

应用情景3 配置Windows防火墙允许访问SQL Server 2008服务器 15

应用情景4 使用SQL Server Management Studio 16

应用情景5 使用SQL Server Business Intelligence Development Studio 19

应用情景6 SQL Server配置管理器 20

应用情景7 osql实用工具 21

应用情景8 sqlcmd实用工具 22

第2章 Transact—SQL语言 24

2.1 基础知识 25

2.1.1 Transact-SQL的语法元素 25

2.1.2 数据库对象的命名 26

2.1.3 同义词 27

2.1.4 数据类型 27

2.1.5 常量 31

2.1.6 变量 32

2.1.7 运算符 33

2.1.8 常用函数 35

2.1.9 流程控制语句 38

2.1.10 Transact-SQL语句的解析、编译和执行 40

2.2 应用情景 40

应用情景9 使用PRINT语句向客户端返回用户定义的消息 40

应用情景10 使用SET STATISTICS IO语句 41

应用情景11 使用SET STATISTICS TIME语句 42

应用情景12 创建同义词 43

应用情景13 删除同义词 44

应用情景14 从系统视图sys.synonyms中查询同义词信息 44

应用情景15 创建用户定义数据类型 45

应用情景16 删除用户定义数据类型 47

应用情景17 从INFORMATION_SCHEMA.DOMAINS中获取用户定义数据类型信息 48

应用情景18 查看用户定义数据类型的使用情况 49

应用情景19 练习使用日期和时间函数 50

应用情景20 练习使用数学函数 51

应用情景21 使用SET DATEFORMAT设置日期和时间格式 51

应用情景22 练习使用字符串函数 52

应用情景23 练习使用IF...ELSE语句 53

应用情景24 练习使用WHILE语句 54

应用情景25 练习使用WAITFOR语句 55

应用情景26 练习使用GOTO语句 55

应用情景27 练习使用TRY...CATCH语句 55

应用情景28 查看错误消息 56

应用情景29 使用RAISERROR语句生成错误消息 57

应用情景30 使用sp_addmessage存储过程添加用户定义错误 58

应用情景31 使用sp_altermessage存储过程修改用户定义错误消息 59

应用情景32 使用sp_dropmessage存储过程删除用户定义错误消息 59

第3章 数据库管理 60

3.1 基础知识 61

3.1.1 系统数据库 61

3.1.2 数据库文件 61

3.1.3 文件组 62

3.1.4 页和区 63

3.2 应用情景 63

应用情景33 在SQL Server Management Studio中创建数据库 64

应用情景34 在SQL Server Management Studio中查看数据库信息 65

应用情景35 使用SELECT语句查看数据库信息 66

应用情景36 使用sp_helpdb查看数据库信息 67

应用情景37 使用sp_spaceused查看数据库空间使用信息 69

应用情景38 使用简单的CREATE DATABASE语句创建数据库 70

应用情景39 使用CREATE DATABASE语句在创建数据库时指定数据文件 71

应用情景40 在SQL Server Management Studio中创建和使用文件组 72

应用情景41 使用CREATE DATABASE语句在创建数据库时指定文件组 73

应用情景42 使用CREATE DATABASE语句在创建数据库时指定事务日志文件 74

应用情景43 向数据库中添加文件组 75

应用情景44 修改文件组属性 76

应用情景45 删除文件组 76

应用情景46 向数据库中添加文件 76

应用情景47 修改数据库中的文件 77

应用情景48 删除数据库中的文件 78

应用情景49 从系统视图sys.database_files中获取数据文件的信息 79

应用情景50 在SQL Server Management Studio中扩充数据或事务日志空间 80

应用情景51 在SQL Server Management Studio中收缩数据或事务日志空间 82

应用情景52 使用DBCC SHRINKDATABASE语句收缩数据库 83

应用情景53 使用DBCC SHRINKFILE语句收缩指定的数据库文件 84

应用情景54 设置自动收缩数据库选项 84

应用情景55 重命名数据库 85

应用情景56 删除数据库 86

应用情景57 查看数据库磁盘使用情况 87

应用情景58 移动用户数据库 87

第4章 表和视图 89

4.1 基础知识 90

4.1.1 表 90

4.1.2 表约束 90

4.1.3 视图 91

4.2 应用情景 92

应用情景59 创建表 92

应用情景60 查看和管理表中的数据 96

应用情景61 查看表的磁盘空间信息 97

应用情景62 使用DBCC CHECKIDENT命令检查和设置表的标识值 97

应用情景63 重命名表 99

应用情景64 修改表的列名 99

应用情景65 向表中添加列 100

应用情景66 修改列属性 100

应用情景67 删除表中的列 101

应用情景68 删除表 101

应用情景69 创建主键约束 102

应用情景70 修改主键约束 104

应用情景71 删除主键约束 104

应用情景72 创建、修改和删除唯一性约束 105

应用情景73 从sys.key_constraints获取约束信息 106

应用情景74 创建检查约束 107

应用情景75 修改检查约束 109

应用情景76 删除检查约束 109

应用情景77 从INFORMATION_SCHEMA.CHECK_CONSTRAINTS获取检查约束信息 109

应用情景78 创建和使用默认约束 110

应用情景79 创建和使用外键约束 111

应用情景80 从sys.foreign_keys获取表中的外键约束 114

应用情景81 从sys.foreign_key_columns获取外键约束的列信息 115

应用情景82 从INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS获取外键约束信息 116

应用情景83 从INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE获取约束信息 117

应用情景84 从INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE获取表中的约束 118

应用情景85 从INFORMATION_SCHEMA.TABLE_CONSTRAINTS获取约束的基本信息 119

应用情景86 从INFORMATION_SCHEMA.KEY_COLUMN_USAGE获取键约束列的信息 120

应用情景87 创建视图 121

应用情景88 修改视图 125

应用情景89 删除视图 125

应用情景90 从INFORMATION_SCHEMA.TABLES中获取表和视图信息 126

应用情景91 从INFORMATION_SCHEMA.VIEWS中获取视图信息 127

应用情景92 从INFORMATION_SCHEMA.COLUMNS中获取列信息 128

应用情景93 从INFORMATION_SCHEMA.VIEW_COLUMN_USAGE获取视图中列的信息 130

应用情景94 从sys.columns中获取列信息 130

应用情景95 从INFORMATION_SCHEMA.VIEW_TABLE_USAGE获取视图中包含表的信息 133

应用情景96 从系统表sys.objects中获取所有数据库对象的信息 134

第5章 规则和索引 135

5.1 基础知识 136

5.1.1 规则 136

5.1.2 索引 136

5.2 应用情景 137

应用情景97 创建规则 138

应用情景98 查看规则 138

应用情景99 绑定规则 139

应用情景100 解除绑定规则 139

应用情景101 删除规则 140

应用情景102 在SQL Server Management Studio中查看索引信息 140

应用情景103 使用sp_helpindex存储过程 141

应用情景104 从系统视图sys.indexes中查询索引信息 142

应用情景105 从系统视图sys.index_columns中查询索引信息 143

应用情景106 从系统视图sys.sysindexkeys中查询索引的键或列信息 145

应用情景107 创建索引 146

应用情景108 创建带包含列的索引 148

应用情景109 修改索引 148

应用情景110 删除索引 149

应用情景111 从系统视图sys.dm_db_index_usage_stats中查询索引操作的信息 149

应用情景112 在SQL Server Management Studio中查看统计信息 151

应用情景113 使用系统视图sys.stats查看统计信息 153

应用情景114 使用系统视图sys.stats_columns查看统计信息中列的信息 154

应用情景115 使用DBCC SHOW_STATISTICS命令查看统计信息的明细信息 155

应用情景116 使用sp_autostats存储过程查看索引自动创建的统计信息 156

应用情景117 创建统计信息 156

应用情景118 修改统计信息 160

应用情景119 删除统计信息 161

应用情景120 使用索引优化数据库查询效率 162

应用情景121 无法使用索引的SELECT语句 164

应用情景122 重新组织和重新生成索引 165

应用情景123 禁用索引 168

应用情景124 使用索引视图 169

第6章 数据库安全管理 172

6.1 基础知识 173

6.1.1 SQL Server登录 173

6.1.2 SQL Server系统用户 174

6.1.3 角色的概念 174

6.1.4 权限概述 176

6.2 应用情景 177

应用情景125 创建登录名 177

应用情景126 修改登录名 180

应用情景127 删除登录名 180

应用情景128 获取尝试登录的次数 181

应用情景129 创建用户 181

应用情景130 修改用户 183

应用情景131 删除用户 183

应用情景132 获取当前登录的用户名 183

应用情景133 创建角色 184

应用情景134 管理角色中的用户 186

应用情景135 判断当前用户是否属于指定角色或Windows组 188

应用情景136 修改角色 188

应用情景137 删除角色 189

应用情景138 创建架构 190

应用情景139 修改架构 192

应用情景140 删除架构 193

应用情景141 从系统视图INFORMATION_SCHEMA.SCHEMATA中查询架构信息 193

应用情景142 设置权限 194

应用情景143 从系统视图sys.sysusers中查询用户信息 200

第7章 SQL Server硬件管理和配置 202

7.1 基础知识 203

7.1.1 Windows内存管理 203

7.1.2 优化Windows内存性能 204

7.1.3 优化SQL Server服务器的磁盘性能 205

7.2 应用情景 206

应用情景144 SQL Server对大容量内存的支持 206

应用情景145 手动配置内存选项 207

应用情景146 监测SQL Server内存使用情况 210

应用情景147 监测SQL Server磁盘活动情况 213

应用情景148 获取磁盘读写情况 215

应用情景149 获取数据库文件的I/O统计信息 215

应用情景150 获取I/O工作情况 216

应用情景151 使用系统监测器来监测CPU活动情况 217

应用情景152 使用SQL Server函数查看Server SQL CPU活动情况 217

应用情景153 获取CPU的工作情况 218

应用情景154 线程管理 219

应用情景155 获取网络数据包统计信息 220

第8章 服务器与客户端配置 221

8.1 基础知识 222

8.1.1 SQL Server服务器与客户端结构 222

8.1.2 服务器配置选项 223

8.2 应用情景 224

应用情景156 创建服务器组 224

应用情景157 注册服务器 225

应用情景158 启动、暂停和停止SQL Server 227

应用情景159 配置服务器属性 229

应用情景160 从系统视图sys.configurations中查询服务器配置选项信息 231

应用情景161 使用系统存储过程sp_configure查询服务器配置选项信息 232

应用情景162 使用系统存储过程sp_configure修改服务器配置选项 233

应用情景163 配置网络连接 233

应用情景164 配置客户端网络 235

应用情景165 配置ODBC数据源 236

应用情景166 测试客户端的配置 238

第9章 维护数据库 239

9.1 基础知识 240

9.1.1 备份数据库的类型和模式 240

9.1.2 还原数据库的类型 242

9.1.3 数据库快照 242

9.2 应用情景 243

应用情景167 将表中数据导出到文本文件 244

应用情景168 将表中数据导出到Access数据库 249

应用情景169 从文本文件向SQL Server数据库中导入数据 251

应用情景170 从Access数据库中导入数据 255

应用情景171 分离数据库 257

应用情景172 附加数据库 259

应用情景173 在SQL Server Management Studio中创建数据库备份 261

应用情景174 使用BACKUP DATABASE语句备份整个数据库 263

应用情景175 使用BACKUP LOG语句备份数据库中的日志 264

应用情景176 使用存储过程sp_addumpdevice创建逻辑备份设备 264

应用情景177 从系统视图sys.backup_devices中查询备份设备信息 264

应用情景178 实现差异备份 265

应用情景179 部分备份 266

应用情景180 备份指定的文件组或文件 266

应用情景181 仅复制数据库备份 267

应用情景182 在SQL Server Management Studio中还原数据库备份 267

应用情景183 使用RESTORED DATABASE语句还原数据库备份 271

应用情景184 使用RESTORED LOG语句还原数据库日志 271

应用情景185 创建数据库快照 272

应用情景186 查看数据库快照 273

应用情景187 恢复到数据库快照 274

应用情景188 删除数据库快照 274

应用情景189 使用DBCC CHECKALLOC命令检查磁盘空间分配结构的一致性 274

应用情景190 使用DBCC CHECKTABLE命令检查表或索引视图的完整性 275

应用情景191 使用DBCC CHECKCATALOG命令检查数据库内系统表的一致性 276

应用情景192 使用DBCC CHECKDB命令检数据库对象的结构和逻辑完整性 276

应用情景193 使用DBCC SQLPERF命令监视日志空间使用情况 277

第10章 常用数据操纵语言(DML) 278

10.1 基础知识 279

10.1.1 本章的演示数据 279

10.1.2 SELECT语句的基本语法 279

10.2 应用情景 281

应用情景194 最简单的SELECT语句 281

应用情景195 指定要查询的列 281

应用情景196 使用DISTINCT关键字 282

应用情景197 使用TOP n[PERCENT]关键字 283

应用情景198 改变显示的列标题 284

应用情景199 设置查询条件 285

应用情景200 在查询条件中使用BETWEEN关键字 286

应用情景201 在查询条件中使用IN关键字 286

应用情景202 实现模糊查询 287

应用情景203 排序结果集 289

应用情景204 对多列进行排序 290

应用情景205 使用分组统计 291

应用情景206 生成汇总行 293

应用情景207 连接查询 294

应用情景208 在连接查询中对空值的判断 298

应用情景209 一个简单的子查询 299

应用情景210 在子查询中使用聚合函数返回单值 300

应用情景211 IN关键字与返回多值的子查询 301

应用情景212 EXISTS关键字与子查询 302

应用情景213 使用UNION关键字的合并查询 303

应用情景214 使用CAST和CONVERT函数进行类型转换 304

应用情景215 保存查询结果 306

应用情景216 插入数据语句 307

应用情景217 在插入数据时利用默认值 308

应用情景218 修改数据语句 308

应用情景219 修改数据时不允许设置标识列的值 309

应用情景220 修改数据时不允许在惟一性约束列中使用相同的数据 309

应用情景221 修改数据时不能违反检查约束 310

应用情景222 修改数据时不能与绑定到列的规则冲突 310

应用情景223 删除数据语句 310

第二篇 深入管理 313

第11章 使用Reporting Services设计报表 315

11.1 基础知识 316

11.1.1 安装Reporting Services 316

11.1.2 检测组件是否安装成功 319

11.2 应用情景 323

应用情景224 创建和设计报表 324

应用情景225 在报表中对数据进行排序 332

应用情景226 在报表中添加分组 333

应用情景227 向报表中添加总计 335

应用情景228 使用简单的参数 336

应用情景229 设置可用值的参数查询 338

应用情景230 在报表中添加饼图 341

应用情景231 在报表中添加条形图 344

第12章 事务与锁 347

12.1 基础知识 348

12.1.1 事务的概念和特性 348

12.1.2 事务的分类 349

12.1.3 事务的并发 349

12.1.4 锁定机制 349

12.1.5 锁的兼容性 350

12.1.6 事务中不允许使用的SQL语句 351

12.1.7 锁的粒度和层次结构 352

12.1.8 产生死锁的原因 352

12.1.9 尽量减少死锁 354

12.2 应用情景 355

应用情景232 启动事务 355

应用情景233 提交事务 356

应用情景234 回滚事务 356

应用情景235 定义保存点 357

应用情景236 使用SET XACT_ABORT语句 358

应用情景237 嵌套事务 360

应用情景238 使用DBCC OPENTRAN查看当前的活动事务 362

应用情景239 显示锁活动情况 362

应用情景240 设置事务隔离级别选项 365

应用情景241 设置锁超时时间 371

第13章 存储过程、函数和触发器 372

13.1 背景知识 373

13.1.1 什么是存储过程 373

13.1.2 什么是用户定义函数 373

13.1.3 触发器的基本概念 374

13.1.4 inserted和deleted表 375

13.2 应用情景 375

应用情景242 创建存储过程 376

应用情景243 执行不带参数的存储过程 377

应用情景244 带参数的存储过程 378

应用情景245 存储过程的返回值 379

应用情景246 修改和重命名存储过程 380

应用情景247 删除存储过程 382

应用情景248 从INFORMATION_SCHEMA.ROUTINE_COLUMNS中获取存储过程信息 382

应用情景249 系统存储过程 383

应用情景250 创建标量函数 385

应用情景251 创建内联表值函数 386

应用情景252 创建多语句表值函数 387

应用情景253 修改和重命名用户定义函数 389

应用情景254 删除用户定义函数 390

应用情景255 在SQL Server Management Studio中创建触发器 390

应用情景256 使用CREATE TRIGGER语句创建触发器 391

应用情景257 修改触发器 394

应用情景258 使用sp_rename重命名触发器 396

应用情景259 删除触发器 396

应用情景260 从sys.triggers中获取触发器的信息 396

应用情景261 使用存储过程sp_helptext查看触发器的定义文本 398

应用情景262 使用存储过程sp_helptrigger查看触发器的属性 398

应用情景263 禁用和启用触发器 399

第14章 游标 401

14.1 基础知识 402

14.1.1 什么是游标 402

14.1.2 游标的分类 402

14.2 应用情景 404

应用情景264 声明游标 404

应用情景265 打开游标 406

应用情景266 读取游标数据 406

应用情景267 关闭游标 408

应用情景268 获取游标状态 409

应用情景269 删除游标 410

应用情景270 使用存储过程sp_cursor_lis获取游标属性 411

应用情景271 使用存储过程sp_describe_cursor获取游标属性 413

应用情景272 使用存储过程sp_describe_cursor_columns获取游标属性 414

应用情景273 使用存储过程sp_describe_cursor_tables获取游标的基表 416

应用情景274 修改游标结果集中的行 418

应用情景275 删除游标结果集中的行 418

第15章 全文搜索 420

15.1 基础知识 421

15.1.1 全文搜索的基本概念 421

15.1.2 全文搜索的体系结构 422

15.1.3 使用FILESTREAM技术保存大对象数据 423

15.2 应用情景 423

应用情景276 在SQL Server Management Studio中创建全文目录 423

应用情景277 使用CRAETE FULLTEXT CATALOG语句创建全文目录 424

应用情景278 修改全文目录 425

应用情景279 删除全文目录 426

应用情景280 在表Employees中添加全文搜索列 426

应用情景281 使用全文索引向导创建全文索引 427

应用情景282 使用CRAETE FULLTEXT INDEX语句创建全文索引 432

应用情景283 启用和禁用全文索引 432

应用情景284 删除全文索引 432

应用情景285 查询全文目录的使用情况 433

应用情景286 从sys.fulltext_indexes中查询全文索引的情况 433

应用情景287 从sys.fulltext_index_columns中查询全文索引的情况 434

应用情景288 设置用于全文搜索的FDHOST启动器服务账户 435

应用情景289 使用CONTAINS谓词执行全文搜索 436

应用情景290 使用FREETEXT谓词执行全文搜索 438

应用情景291 启用FILESTREAM 440

应用情景292 创建启用FILESTREAM的数据库 440

应用情景293 创建保存FILESTREAM数据的表 441

应用情景294 使用Transact-SQL管理FILESTREAM数据 442

应用情景295 使用Visual C#语言管理FILESTREAM数据 443

应用情景296 在保存文件数据的列中实现全文搜索 450

第三篇 系统优化 451

第16章 使用空间数据 455

16.1 基础知识 456

16.1.1 空间数据类型 456

16.1.2 Point类型 456

16.1.3 MultiPoint类型 457

16.1.4 LineString类型 458

16.1.5 MultiLineString类型 458

16.1.6 Polygon类型 459

16.1.7 MultiPolygon类型 460

16.1.8 GeometryCollection类型 461

16.2 应用情景 462

应用情景297 在创建表时定义geometry类型的列 462

应用情景298 向表中插入几何数据 462

应用情景299 从表中获取几何数据 463

应用情景300 获取geometry实例中包含的点 464

应用情景301 获取geometry实例的维度信息 465

应用情景302 检查是否为空 466

应用情景303 判断geometry实例是否简单 467

应用情景304 返回geometry实例的边界 467

应用情景305 检查geometry实例的闭合性 468

应用情景306 确定两个实例是否包含相同的点集 469

应用情景307 确定两个实例是否不相接 469

应用情景308 确定两个实例是否相交 470

应用情景309 确定两个实例是否接触 470

应用情景310 确定两个实例是否重叠 470

应用情景311 确定两个实例是否交叉 471

应用情景312 确定一个实例是否在另外一个实例的内部 471

应用情景313 确定一个实例是否完全包含另外一个实例 471

应用情景314 确定两个几何图形中点之间的最短距离 472

第17章 常用性能监测和优化工具 473

17.1 基础知识 474

17.1.1 常用性能监测和优化工具 474

17.1.2 下载和安装RML分析工具 474

17.2 应用情景 476

应用情景315 使用SQL Server Profiler记录数据库的跟踪数据 476

应用情景316 筛选跟踪数据 480

应用情景317 重播跟踪 481

应用情景318 实用SQL Server Profiler定位和分析问题 484

应用情景319 使用数据库引擎优化顾问分析数据库性能 485

应用情景320 数据库引擎优化顾问中的优化选项 491

应用情景321 数据库引擎优化顾问的应用建议 492

应用情景322 使用dta实用工具 493

应用情景323 ReadTrace实用工具 494

应用情景324 OSTRESS实用工具 501

第18章 对SQL语句进行分析和优化 503

18.1 基础知识 504

18.1.1 影响查询语句执行性能的常见因素 504

18.1.2 如何定位导致查询运行慢的原因 504

18.1.3 使用SET STATISTICS IO语句检查查询所产生的I/O操作 505

18.1.4 使用SET STATISTICS TIME语句检查查询使用的时间和CPU使用情况 506

18.1.5 查看执行计划 507

18.1.6 准备演示数据 509

18.2 应用情景 510

应用情景325 控制SELECT语句中行和列的数量 510

应用情景326 慎用DISTINCT关键字 513

应用情景327 慎用UNION关键字 515

应用情景328 判断表中是否存在记录 518

应用情景329 连接查询的优化 518

应用情景330 使用INSERT INTO...SELECT语句优化批量插入操作 520

应用情景331 优化修改和删除语句 522

第19章 数据库分区技术 523

19.1 基础知识 524

19.1.1 分区技术的分类 524

19.1.2 分区表 525

19.1.3 确定分区依据列和分区数 527

19.1.4 创建文件组 528

19.1.5 设计分区视图 531

19.2 应用情景 532

应用情景332 使用向导创建分区表 532

应用情景333 查询普通表与分区表的比较 538

应用情景334 使用CREATE PARTITION FUNCTION语句创建分区函数 539

应用情景335 使用DROP PARTITION FUNCTION语句删除分区函数 541

应用情景336 使用CREATE PARTITION SCHEME语句创建分区方案 541

应用情景337 使用DROP PARTITION SCHEME语句删除分区方案 542

应用情景338 创建分区表 542

应用情景339 创建分区索引 543

应用情景340 查看分区表明细信息 544

应用情景341 拆分和合并分区 546

应用情景342 分区中的数据移动 546

应用情景343 创建分区视图 548

应用情景344 在分区视图中修改数据 553

应用情景345 从系统表sys.data_spaces中获取数据空间信息 554