SQL Server 2008学习笔记:日常维护、深入管理、性能优化

SQL Server 2008学习笔记:日常维护、深入管理、性能优化
作 者: 吴戈
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: SQL
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》作者简介

内容简介

SQL Server 2008是Microsoft公司在数据库领域中非常重要的产品,是关系型数据库的代表产品之一,很多大型数据库应用系统都采用SQL Server作为后台数据库。《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》设计了大量的实验,介绍了数据库管理员和开发人员常用的管理、维护和优化SQL Server 2008数据库技术。通过阅读《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》,读者可以了解SQL Server 2008的体系结构、安装过程、数据库管理和配置、数据库安全、数据库日常维护、Transact-SQL语言等数据库管理员的必备常识,还可以掌握SQL Server 2008的多种高级应用,包括使用最新推出的空间数据技术、使用Reporting Services设计统计报表、用全文搜索技术对数据库中的二进制文件数据进行搜索以及对SQL Server数据库进行性能监测、分析和优化等。《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》内容丰富、注重实用,理论讲解与大量实验相结合,特别适用于SQL Server数据库管理员和应用程序开发人员,以及对相关技术感兴趣的读者,也可以作为大中专院校或培训机构的相关课程教材。

图书目录

第一篇 日常应用 1

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

1.1 基础知识 4

1.1.1 SQL Server 2008产品概况 4

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

1.2 应用情景 6

安装SQL Server 2008数据库 6

查看和配置SQL Server服务 14

配置Windows防火墙允许访问SQL Server 2008服务器 15

使用SQL Server Management Studio 16

使用SQL Server Business Intelligence Development Studio 19

SQL Server配置管理器 20

osql实用工具 21

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

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

使用SET STATISTICS IO语句 41

使用SET STATISTICS TIME语句 42

创建同义词 43

删除同义词 44

从系统视图sys.synonyms 中查询同义词信息 44

创建用户定义数据类型 45

删除用户定义数据类型 47

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

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

练习使用日期和时间函数 50

练习使用数学函数 51

使用SET DATEFORMAT设置日期和时间格式 51

练习使用字符串函数 52

练习使用IF…ELSE语句 53

练习使用WHILE语句 54

练习使用WAITFOR语句 55

练习使用GOTO语句 55

练习使用TRY…CATCH语句 55

查看错误消息 56

使用RAISERROR语句生成错误消息 57

使用sp_addmessage存储过程添加用户定义错误 58

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

使用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

在SQL Server Management Studio中创建数据库 64

在SQL Server Management Studio中查看数据库信息 65

使用SELECT语句查看数据库信息 66

使用sp_helpdb查看数据库信息 67

使用sp_spaceused查看数据库空间使用信息 69

使用简单的CREATE DATABASE语句创建数据库 70

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

在SQL Server Management Studio中创建和使用文件组 72

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

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

向数据库中添加文件组 75

修改文件组属性 76

删除文件组 76

向数据库中添加文件 76

修改数据库中的文件 77

删除数据库中的文件 78

从系统视图sys.database_files中获取数据文件的信息 79

在SQL Server Management Studio 中扩充数据或事务日志空间 80

在SQL Server Management Studio 中收缩数据或事务日志空间 82

使用DBCC SHRINKDATABASE语句收缩数据库 83

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

设置自动收缩数据库选项 84

重命名数据库 85

删除数据库 86

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

移动用户数据库 87

第4章 表和视图 89

4.1 基础知识 90

4.1.1 表 90

4.1.2 表约束 90

4.1.3 视图 91

4.2 应用情景 92

创建表 92

查看和管理表中的数据 96

查看表的磁盘空间信息 97

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

重命名表 99

修改表的列名 99

向表中添加列 100

修改列属性 100

删除表中的列 101

删除表 101

创建主键约束 102

修改主键约束 104

删除主键约束 104

创建、修改和删除唯一性约束 105

从sys.key_constraints获取约束信息 106

创建检查约束 107

修改检查约束 109

删除检查约束 109

从INFORMATION_SCHEMA.CHECK_CONSTRAINTS获取检查约束信息 109

创建和使用默认约束 110

创建和使用外键约束 111

从sys.foreign_keys获取表中的外键约束 114

从sys.foreign_key_columns获取外键约束的列信息 115

从INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS获取外键约束信息 116

从INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE获取约束信息 117

从INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE获取表中的约束 118

从INFORMATION_SCHEMA.TABLE_CONSTRAINTS获取约束的基本信息 119

从INFORMATION_SCHEMA.KEY_COLUMN_USAGE获取键约束列的信息 120

创建视图 121

修改视图 125

删除视图 125

从INFORMATION_SCHEMA.TABLES中获取表和视图信息 126

从INFORMATION_SCHEMA.VIEWS中获取视图信息 127

从INFORMATION_SCHEMA.COLUMNS中获取列信息 128

从INFORMATION_SCHEMA.VIEW_COLUMN_USAGE获取视图中列的信息 130

从sys.columns中获取列信息 130

从INFORMATION_SCHEMA.VIEW_TABLE_USAGE获取视图中包含表的信息 133

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

第5章 规则和索引 135

5.1 基础知识 136

5.1.1 规则 136

5.1.2 索引 136

5.2 应用情景 137

创建规则 138

查看规则 138

绑定规则 139

解除绑定规则 139

删除规则 140

在SQL Server Management Studio中查看索引信息 140

使用sp_helpindex存储过程 141

从系统视图sys.indexes中查询索引信息 142

从系统视图sys.index_columns中查询索引信息 143

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

创建索引 146

创建带包含列的索引 148

修改索引 148

删除索引 149

从系统视图sys.dm_db_index_usage_stats中查询索引操作的信息 149

在SQL Server Management Studio中查看统计信息 151

使用系统视图sys.stats查看统计信息 153

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

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

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

创建统计信息 156

修改统计信息 160

删除统计信息 161

使用索引优化数据库查询效率 162

无法使用索引的SELECT语句 164

重新组织和重新生成索引 165

禁用索引 168

使用索引视图 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

创建登录名 177

修改登录名 180

删除登录名 180

获取尝试登录的次数 181

创建用户 181

修改用户 183

删除用户 183

获取当前登录的用户名 183

创建角色 184

管理角色中的用户 186

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

修改角色 188

删除角色 189

创建架构 190

修改架构 192

删除架构 193

从系统视图INFORMATION_SCHEMA.SCHEMATA中查询架构信息 193

设置权限 194

从系统视图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

SQL Server对大容量内存的支持 206

手动配置内存选项 207

监测SQL Server内存使用情况 210

监测SQL Server磁盘活动情况 213

获取磁盘读写情况 215

获取数据库文件的I/O统计信息 215

获取I/O工作情况 216

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

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

获取CPU的工作情况 218

线程管理 219

获取网络数据包统计信息 220

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

8.1 基础知识 222

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

8.1.2 服务器配置选项 223

8.2 应用情景 224

创建服务器组 224

注册服务器 225

启动、暂停和停止SQL Server 227

配置服务器属性 229

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

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

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

配置网络连接 233

配置客户端网络 235

配置ODBC数据源 236

测试客户端的配置 238

第9章 维护数据库 239

9.1 基础知识 240

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

9.1.2 还原数据库的类型 242

9.1.3 数据库快照 242

9.2 应用情景 243

将表中数据导出到文本文件 244

将表中数据导出到Access数据库 249

从文本文件向SQL Server数据库中导入数据 251

从Access数据库中导入数据 255

分离数据库 257

附加数据库 259

在SQL Server Management Studio中创建数据库备份 261

使用BACKUP DATABASE语句备份整个数据库 263

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

使用存储过程sp_addumpdevice创建逻辑备份设备 264

从系统视图sys.backup_devices中查询备份设备信息 264

实现差异备份 265

部分备份 266

备份指定的文件组或文件 266

仅复制数据库备份 267

在SQL Server Management Studio中还原数据库备份 267

使用RESTORED DATABASE语句还原数据库备份 271

使用RESTORED LOG语句还原数据库日志 271

创建数据库快照 272

查看数据库快照 273

恢复到数据库快照 274

删除数据库快照 274

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

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

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

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

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

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

10.1 基础知识 279

10.1.1 本章的演示数据 279

10.1.2 SELECT语句的基本语法 279

10.2 应用情景 281

最简单的SELECT语句 281

指定要查询的列 281

使用DISTINCT关键字 282

使用TOP n [PERCENT]关键字 283

改变显示的列标题 284

设置查询条件 285

在查询条件中使用BETWEEN关键字 286

在查询条件中使用IN关键字 286

实现模糊查询 287

排序结果集 289

对多列进行排序 290

使用分组统计 291

生成汇总行 293

连接查询 294

在连接查询中对空值的判断 298

一个简单的子查询 299

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

IN关键字与返回多值的子查询 301

EXISTS关键字与子查询 302

使用UNION关键字的合并查询 303

使用CAST和CONVERT函数进行类型转换 304

保存查询结果 306

插入数据语句 307

在插入数据时利用默认值 308

修改数据语句 308

修改数据时不允许设置标识列的值 309

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

修改数据时不能违反检查约束 310

修改数据时不能与绑定到列的规则冲突 310

删除数据语句 310

第二篇 深入管理 313

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

11.1 基础知识 316

11.1.1 安装Reporting Services 316

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

11.2 应用情景 323

创建和设计报表 324

在报表中对数据进行排序 332

在报表中添加分组 333

向报表中添加总计 335

使用简单的参数 336

设置可用值的参数查询 338

在报表中添加饼图 341

在报表中添加条形图 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

启动事务 355

提交事务 356

回滚事务 356

定义保存点 357

使用SET XACT_ABORT语句 358

嵌套事务 360

使用DBCC OPENTRAN查看当前的活动事务 362

显示锁活动情况 362

设置事务隔离级别选项 365

设置锁超时时间 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

创建存储过程 376

执行不带参数的存储过程 377

带参数的存储过程 378

存储过程的返回值 379

修改和重命名存储过程 380

删除存储过程 382

从INFORMATION_SCHEMA.ROUTINE_COLUMNS中获取存储过程信息 382

系统存储过程 383

创建标量函数 385

创建内联表值函数 386

创建多语句表值函数 387

修改和重命名用户定义函数 389

删除用户定义函数 390

在SQL Server Management Studio中创建触发器 390

使用CREATE TRIGGER语句创建触发器 391

修改触发器 394

使用sp_rename重命名触发器 396

删除触发器 396

从sys.triggers中获取触发器的信息 396

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

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

禁用和启用触发器 399

第14章 游标 401

14.1 基础知识 402

14.1.1 什么是游标 402

14.1.2 游标的分类 402

14.2 应用情景 404

声明游标 404

打开游标 406

读取游标数据 406

关闭游标 408

获取游标状态 409

删除游标 410

使用存储过程sp_cursor_lis获取游标属性 411

使用存储过程sp_describe_cursor获取游标属性 413

使用存储过程sp_describe_cursor_columns获取游标属性 414

使用存储过程sp_describe_cursor_tables获取游标的基表 416

修改游标结果集中的行 418

删除游标结果集中的行 418

第15章 全文搜索 420

15.1 基础知识 421

15.1.1 全文搜索的基本概念 421

15.1.2 全文搜索的体系结构 422

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

15.2 应用情景 423

在SQL Server Management Studio中创建全文目录 423

使用CRAETE FULLTEXT CATALOG语句创建全文目录 424

修改全文目录 425

删除全文目录 426

在表Employees中添加全文搜索列 426

使用全文索引向导创建全文索引 427

使用CRAETE FULLTEXT INDEX语句创建全文索引 432

启用和禁用全文索引 432

删除全文索引 432

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

从sys.fulltext_indexes中查询全文索引的情况 433

从sys.fulltext_index_columns中查询全文索引的情况 434

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

使用CONTAINS谓词执行全文搜索 436

使用FREETEXT谓词执行全文搜索 438

启用FILESTREAM 440

创建启用FILESTREAM的数据库 440

创建保存FILESTREAM数据的表 441

使用Transact-SQL管理FILESTREAM数据 442

使用Visual C#语言管理FILESTREAM数据 443

在保存文件数据的列中实现全文搜索 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

在创建表时定义 geometry类型的列 462

向表中插入几何数据 462

从表中获取几何数据 463

获取geometry实例中包含的点 464

获取geometry实例的维度信息 465

检查是否为空 466

判断geometry实例是否简单 467

返回geometry实例的边界 467

检查geometry实例的闭合性 468

确定两个实例是否包含相同的点集 469

确定两个实例是否不相接 469

确定两个实例是否相交 470

确定两个实例是否接触 470

确定两个实例是否重叠 470

确定两个实例是否交叉 471

确定一个实例是否在另外一个实例的内部 471

确定一个实例是否完全包含另外一个实例 471

确定两个几何图形中点之间的最短距离 472

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

17.1 基础知识 474

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

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

17.2 应用情景 476

使用SQL Server Profiler记录数据库的跟踪数据 476

筛选跟踪数据 480

重播跟踪 481

实用SQL Server Profiler定位和分析问题 484

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

数据库引擎优化顾问中的优化选项 491

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

使用dta实用工具 493

ReadTrace实用工具 494

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

控制SELECT语句中行和列的数量 510

慎用DISTINCT关键字 513

慎用UNION关键字 515

判断表中是否存在记录 518

连接查询的优化 518

使用INSERT INTO…SELECT语句优化批量插入操作 520

优化修改和删除语句 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

使用向导创建分区表 532

查询普通表与分区表的比较 538

使用CREATE PARTITION FUNCTION语句创建分区函数 539

使用DROP PARTITION FUNCTION语句删除分区函数 541

使用CREATE PARTITION SCHEME语句创建分区方案 541

使用DROP PARTITION SCHEME语句删除分区方案 542

创建分区表 542

创建分区索引 543

查看分区表明细信息 544

拆分和合并分区 546

分区中的数据移动 546

创建分区视图 548

在分区视图中修改数据 553

从系统表sys.data_spaces中获取数据空间信息 554